private Boolean getAnyAllValue(Session paramSession, Object paramObject, SubQuery paramSubQuery)
throws HsqlException
{
boolean bool = paramSubQuery.table.isEmpty(paramSession);
Index localIndex = paramSubQuery.table.getPrimaryIndex();
RowIterator localRowIterator = localIndex.findFirstRowNotNull(paramSession);
Row localRow1 = localRowIterator.next();
int i;
Row localRow2;
Object localObject1;
Object localObject2;
int j;
int k;
switch (this.eArg2.exprType)
{
case 33:
if (bool)
return Boolean.FALSE;
if (localRow1 == null)
return null;
i = Column.compareToTypeRange(paramObject, this.eArg2.eArg.getDataType());
if (i != 0)
switch (this.exprType)
{
case 21:
return Boolean.FALSE;
case 26:
return Boolean.TRUE;
case 22:
case 23:
return i > 0 ? Boolean.TRUE : Boolean.FALSE;
case 24:
case 25:
return i < 0 ? Boolean.TRUE : Boolean.FALSE;
}
paramObject = Column.convertObject(paramObject, this.eArg2.eArg.getDataType());
if (this.exprType == 21)
{
localRowIterator = localIndex.findFirstRow(paramSession, paramObject, 21);
return localRowIterator.hasNext() ? Boolean.TRUE : Boolean.FALSE;
}
localRow2 = localIndex.lastRow(paramSession);
localObject1 = localRow1.getData()[0];
localObject2 = localRow2.getData()[0];
j = Column.compare(paramSession.database.collation, paramObject, localObject1, this.eArg.getDataType());
k = Column.compare(paramSession.database.collation, paramObject, localObject2, this.eArg.getDataType());
switch (this.exprType)
{
case 26:
return (j == 0) && (k == 0) ? Boolean.FALSE : Boolean.TRUE;
case 23:
return j > 0 ? Boolean.TRUE : Boolean.FALSE;
case 22:
return j >= 0 ? Boolean.TRUE : Boolean.FALSE;
case 24:
return k < 0 ? Boolean.TRUE : Boolean.FALSE;
case 25:
return k <= 0 ? Boolean.TRUE : Boolean.FALSE;
}
break;
case 32:
if (bool)
return Boolean.TRUE;
if (localRow1 == null)
return null;
i = Column.compareToTypeRange(paramObject, this.eArg2.eArg.getDataType());
if (i != 0)
switch (this.exprType)
{
case 21:
return Boolean.FALSE;
case 26:
return Boolean.TRUE;
case 22:
case 23:
return i > 0 ? Boolean.TRUE : Boolean.FALSE;
case 24:
case 25:
return i < 0 ? Boolean.TRUE : Boolean.FALSE;
}
paramObject = Column.convertObject(paramObject, this.eArg2.eArg.getDataType());
if ((this.exprType == 21) || (this.exprType == 26))
{
localRowIterator = localIndex.findFirstRow(paramSession, paramObject, 21);
if (this.exprType == 21)
return (localRowIterator.hasNext()) && (paramSubQuery.table.getRowCount(paramSession) == 1) ? Boolean.TRUE : Boolean.FALSE;
return localRowIterator.hasNext() ? Boolean.FALSE : Boolean.TRUE;
}
localRow2 = localIndex.lastRow(paramSession);
localObject1 = localRow1.getData()[0];
localObject2 = localRow2.getData()[0];
paramObject = Column.convertObject(paramObject, this.eArg2.eArg.getDataType());