Top Fields Constructors Methods
org.hsqldb

public Class ExpressionLogical

extends Expression
Class Inheritance
Known Direct Subclasses
org.hsqldb.ExpressionPeriodOp, org.hsqldb.ExpressionLike
Imports
org.hsqldb.error.Error, .ErrorCode, org.hsqldb.index.Index, org.hsqldb.lib.List, .OrderedIntHashSet, org.hsqldb.navigator.RowIterator, org.hsqldb.persist.PersistentStore, org.hsqldb.types.ArrayType, .DTIType, .DateTimeType, .Type, .Types

Authors
Campbell Burnet (campbell-burnet@users dot sourceforge.net), Fred Toussi (fredt@users dot sourceforge.net)
Since
1.9.0
Version
2.7.4

Field Summary

Modifier and TypeField and Description
pack-priv boolean
pack-priv boolean
Inherited from org.hsqldb.Expression:
aliasBINARYcollationcolumnIndexdataTypeemptyArrayEXPR_FALSEEXPR_TRUEexprSubTypegroupingTypeisColumnConditionisColumnEqualisCorrelatedisDistinctAggregateisSingleColumnConditionisSingleColumnEqualisSingleColumnNotNullisSingleColumnNullLEFTnodeDataTypesnodesnoOptimisationnullabilityopTypeparameterIndexrangeGrouprangeGroupsresultTableColumnIndexRIGHTtableTERNARYTHIRDUNARYvalueData

Constructor Summary

AccessConstructor and Description
pack-priv
ExpressionLogical(int type)

For LIKE

pack-priv
ExpressionLogical(boolean b)

For boolean constants

pack-priv
ExpressionLogical(RangeVariable leftRangeVar, int colIndexLeft, RangeVariable rightRangeVar, int colIndexRight)

pack-priv
ExpressionLogical(Expression left, Expression right)

Creates an equality expression

pack-priv
ExpressionLogical(int type, Expression left, Expression right)

Creates a binary operation expression

pack-priv
ExpressionLogical(int type, Expression left, Expression right, Expression end)

Creates a modified LIKE comparison

pack-priv
ExpressionLogical(int type, Expression e)

Creates a unary operation expression

pack-priv
ExpressionLogical(ColumnSchema column)

Creates a column not null expression for check constraints

Method Summary

Modifier and TypeMethod and Description
public void
pack-priv static Expression
private void
changeToRowExpression(int nodeIndex)

pack-priv void
private Boolean
compareValues(Session session, Object left, Object right)

For MATCH SIMPLE and FULL expressions, nulls in left are handled prior to calling this method

private Boolean
compareValues(Session session, Object[] leftData, Object[] rightData)

private boolean
convertDateTime(Session session)

for compatibility, convert a datetime character string to a datetime value for comparison

pack-priv boolean
pack-priv double
costFactor(Session session, RangeVariable rangeVar, int operation)

Overrides org.hsqldb.Expression.costFactor.

pack-priv double
pack-priv double
protected String
describe(Session session, int blanks)

Overrides org.hsqldb.Expression.describe.

pack-priv void
distributeOr()

Converts an OR containing an AND to an AND

private Boolean
pack-priv Expression
pack-priv void
public String
getSQL()

Overrides org.hsqldb.Expression.getSQL.

For use with CHECK constraints.

public Object
pack-priv boolean
public boolean
pack-priv boolean
isSimpleBound()

Called only on comparison expressions after reordering which have a COLUMN left leaf

private Boolean
matchValues(Session session, Object[] leftData, Object[] rightData)

For MATCH SIMPLE and FULL expressions, nulls in left are handled prior to calling this method

pack-priv static ExpressionLogical
newNotNullCondition(Expression e)

Creates a NOT NULL condition

pack-priv static Expression
pack-priv boolean
private void
public void
pack-priv void
private void
private void
pack-priv void
pack-priv void
public void
public void
pack-priv void
swapCondition()

Swap the condition with its complement

private Boolean
private Boolean
private Boolean
testInCondition(Session session)

Returns the result of testing a VALUE_LIST expression

private Boolean
private Boolean
Inherited from org.hsqldb.Expression:
checkValidCheckConstraintcollectAllExpressionscollectAllSubqueriescollectObjectNamescollectRangeVariablescollectRangeVariablesconvertToTypecountNullsduplicateequalsequalsequalsequalsgetAggregatedValuegetAliasgetCheckSelectgetColumngetColumnIndexgetColumnNamegetConditiongetConstantValueNoCheckgetContextSQLgetDataTypegetDegreegetLeftNodegetNodeDataTypegetNodeDataTypesgetNullabilitygetRangeVariablegetResultgetRightNodegetRowValuegetSimpleNamegetSubqueriesgetSubTypegetTablegetTypegetUnkeyedColumnsgetValuegetValueClassNamehasAggregatehasConditionhashCodehasNonDeterministicFunctionhasReferencehasReferenceinsertValuesIntoSubqueryTableisComposedOfisComposedOfisCorrelatedisDistinctAggregateisDynamicParamisFalseisSelfAggregateisTrueisUnresolvedParammaterialiseprepareTablereplaceAliasInOrderByreplaceColumnReferencesreplaceExpressionsreplaceNodereplaceRangeVariablesresetColumnReferencesresolveCheckOrGenExpressionresolveColumnReferencesresolveColumnReferencesresolveColumnSetresolveColumnSetresolveGrantFiltersetAggregatesetAliassetAsConstantValuesetAsConstantValuesetAttributesAsColumnsetCollationsetConditionsetCorrelatedReferencessetDataTypesetLeftNodesetRightNodeswapLeftAndRightNodestestConditionupdateAggregatingValueupdateAggregatingValue

Field Detail

isQuantifiedback to summary
pack-priv boolean isQuantified
isTerminalback to summary
pack-priv boolean isTerminal

Constructor Detail

ExpressionLogicalback to summary
pack-priv ExpressionLogical(int type)

For LIKE

ExpressionLogicalback to summary
pack-priv ExpressionLogical(boolean b)

For boolean constants

ExpressionLogicalback to summary
pack-priv ExpressionLogical(RangeVariable leftRangeVar, int colIndexLeft, RangeVariable rightRangeVar, int colIndexRight)
ExpressionLogicalback to summary
pack-priv ExpressionLogical(Expression left, Expression right)

Creates an equality expression

ExpressionLogicalback to summary
pack-priv ExpressionLogical(int type, Expression left, Expression right)

Creates a binary operation expression

ExpressionLogicalback to summary
pack-priv ExpressionLogical(int type, Expression left, Expression right, Expression end)

Creates a modified LIKE comparison

ExpressionLogicalback to summary
pack-priv ExpressionLogical(int type, Expression e)

Creates a unary operation expression

ExpressionLogicalback to summary
pack-priv ExpressionLogical(ColumnSchema column)

Creates a column not null expression for check constraints

Method Detail

addLeftColumnsForAllAnyback to summary
public void addLeftColumnsForAllAny(RangeVariable range, OrderedIntHashSet set)
andExpressionsback to summary
pack-priv static Expression andExpressions(Expression e1, Expression e2)
changeToRowExpressionback to summary
private void changeToRowExpression(int nodeIndex)
checkRowComparisonback to summary
pack-priv void checkRowComparison()
compareValuesback to summary
private Boolean compareValues(Session session, Object left, Object right)

For MATCH SIMPLE and FULL expressions, nulls in left are handled prior to calling this method

compareValuesback to summary
private Boolean compareValues(Session session, Object[] leftData, Object[] rightData)
convertDateTimeback to summary
private boolean convertDateTime(Session session)

for compatibility, convert a datetime character string to a datetime value for comparison

convertToSmallerback to summary
pack-priv boolean convertToSmaller()
costFactorback to summary
pack-priv double costFactor(Session session, RangeVariable rangeVar, int operation)

Overrides org.hsqldb.Expression.costFactor.

costFactorColumnsback to summary
pack-priv double costFactorColumns(Session session, RangeVariable rangeVar)
costFactorUnaryColumnback to summary
pack-priv double costFactorUnaryColumn(Session session, RangeVariable rangeVar)
describeback to summary
protected String describe(Session session, int blanks)

Overrides org.hsqldb.Expression.describe.

distributeOrback to summary
pack-priv void distributeOr()

Converts an OR containing an AND to an AND

getAllAnyValueback to summary
private Boolean getAllAnyValue(Session session, Object[] data, TableDerived td)
getIndexableExpressionback to summary
pack-priv Expression getIndexableExpression(RangeVariable rangeVar)

Overrides org.hsqldb.Expression.getIndexableExpression.

getJoinRangeVariablesback to summary
pack-priv void getJoinRangeVariables(RangeVariable[] ranges, List<RangeVariable> list)

Overrides org.hsqldb.Expression.getJoinRangeVariables.

getSQLback to summary
public String getSQL()

Overrides org.hsqldb.Expression.getSQL.

Doc from org.hsqldb.Expression.getSQL.

For use with CHECK constraints. Under development. Currently supports a subset of expressions and is suitable for CHECK search conditions that refer only to the inserted/updated row. For full DDL reporting of VIEW select queries and CHECK search conditions, future improvements here are dependent upon improvements to SELECT query parsing, so that it is performed in a number of passes. An early pass should result in the query turned into an Expression tree that contains the information in the original SQL without any alterations, and with tables and columns all resolved. This Expression can then be preserved for future use. Table and column names that are not user-defined aliases should be kept as the HsqlName structures so that table or column renaming is reflected in the precompiled query.

getValueback to summary
public Object getValue(Session session)

Overrides org.hsqldb.Expression.getValue.

isConditionRangeVariableback to summary
pack-priv boolean isConditionRangeVariable(RangeVariable range)

Overrides org.hsqldb.Expression.isConditionRangeVariable.

isIndexableback to summary
public boolean isIndexable(RangeVariable rangeVar)

Overrides org.hsqldb.Expression.isIndexable.

isSimpleBoundback to summary
pack-priv boolean isSimpleBound()

Called only on comparison expressions after reordering which have a COLUMN left leaf

matchValuesback to summary
private Boolean matchValues(Session session, Object[] leftData, Object[] rightData)

For MATCH SIMPLE and FULL expressions, nulls in left are handled prior to calling this method

newNotNullConditionback to summary
pack-priv static ExpressionLogical newNotNullCondition(Expression e)

Creates a NOT NULL condition

orExpressionsback to summary
pack-priv static Expression orExpressions(Expression e1, Expression e2)
reorderComparisonback to summary
pack-priv boolean reorderComparison(Session session, Expression parent)
resolveRowTypesback to summary
private void resolveRowTypes()
resolveTypesback to summary
public void resolveTypes(Session session, Expression parent)

Overrides org.hsqldb.Expression.resolveTypes.

resolveTypesForAllAnyback to summary
pack-priv void resolveTypesForAllAny(Session session)
resolveTypesForComparisonback to summary
private void resolveTypesForComparison(Session session, Expression parent)
resolveTypesForLogicalOpback to summary
private void resolveTypesForLogicalOp()
resolveTypesForOverlapsback to summary
pack-priv void resolveTypesForOverlaps()
setEqualityModeback to summary
pack-priv void setEqualityMode()
setNoOptimisationback to summary
public void setNoOptimisation()

Overrides org.hsqldb.Expression.setNoOptimisation.

setSubTypeback to summary
public void setSubType(int type)

Overrides org.hsqldb.Expression.setSubType.

swapConditionback to summary
pack-priv void swapCondition()

Swap the condition with its complement

testAllAnyConditionback to summary
private Boolean testAllAnyCondition(Session session)
testExistsConditionback to summary
private Boolean testExistsCondition(Session session)
testInConditionback to summary
private Boolean testInCondition(Session session)

Returns the result of testing a VALUE_LIST expression

testMatchConditionback to summary
private Boolean testMatchCondition(Session session)
testNotDistinctConditionback to summary
private Boolean testNotDistinctCondition(Session session)