| Modifier and Type | Field and Description |
|---|---|
| public static final int | BIGGER
The comparison type meaning > as in ID>1. |
| public static final int | BIGGER_EQUAL
The comparison type meaning >= as in ID>=1. |
| pack-priv static final String[] | |
| private int | |
| public static final int | EQUAL
The comparison type meaning = as in ID=1. |
| public static final int | EQUAL_NULL_SAFE
The comparison type meaning ID IS NOT DISTINCT FROM 1. |
| public static final int | FALSE
This is a pseudo comparison type that is only used for index conditions. |
| public static final int | IN_ARRAY
This is a pseudo comparison type that is only used for index conditions. |
| public static final int | IN_LIST
This is a pseudo comparison type that is only used for index conditions. |
| public static final int | IN_QUERY
This is a pseudo comparison type that is only used for index conditions. |
| private Expression | |
| public static final int | NOT_EQUAL
The comparison type meaning <> as in ID<>1. |
| public static final int | NOT_EQUAL_NULL_SAFE
The comparison type meaning ID IS DISTINCT FROM 1. |
| private Expression | |
| public static final int | SMALLER
The comparison type meaning < as in ID<1. |
| public static final int | SMALLER_EQUAL
The comparison type meaning <= as in ID<=1. |
| public static final int | SPATIAL_INTERSECTS
This is a comparison type that is only used for spatial index conditions (operator "&&"). |
| private final boolean |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| pack-priv static Value | Returns: result of comparison, either TRUE, FALSE, or NULLthe session session, Value the first value l, Value the second value r, int the compare type compareType)Compare two values. |
| public void | createIndexConditions(SessionLocal
the session session, TableFilter the table filter filter)Overrides org. Create index conditions if possible and attach them to the table filter. |
| pack-priv static void | |
| private static void | createIndexConditions(TableFilter filter, ExpressionList left, ExpressionList right, int compareType)
|
| private static void | createIndexConditions(TableFilter filter, ExpressionList left, ValueExpression right, int compareType)
|
| pack-priv Expression | Returns: null or the third condition for indexesthe session session, Comparison the second condition other)Get an additional condition if possible. |
| private static ConditionIn | |
| public int | getCost()
Implements abstract org. Estimate the cost to process the expression. |
| pack-priv Expression | Returns: null if no match, the other expression if there is a matchthe expression that should match match)Get the other expression if this is an equals comparison and the other expression matches. |
| pack-priv static int | |
| public Expression | getNotIfPossible(SessionLocal
the session session)Overrides org. If it is possible, return the negated expression. |
| private static int | |
| public Expression | getSubexpression(int
0-based index index)Overrides org. Returns subexpression with specified index. |
| public int | getSubexpressionCount()
Overrides org. Returns count of subexpressions. |
| public StringBuilder | getUnenclosedSQL(StringBuilder
string builder builder, int formatting flags sqlFlags)Implements abstract org. Get the SQL statement of this expression. |
| public Value | getValue(SessionLocal
the session session)Implements abstract org. Return the resulting value for the current row. |
| public StringBuilder | getWhenSQL(StringBuilder
string builder builder, int formatting flags sqlFlags)Overrides org. Appends the SQL statement of this when operand to the specified builder. |
| public boolean | getWhenValue(SessionLocal
the session session, Value value on the left side left)Overrides org. Return the resulting value of when operand for the current row. |
| public boolean | isEverything(ExpressionVisitor
the visitor visitor)Implements abstract org. Check if this expression and all sub-expressions can fulfill a criteria. |
| public boolean | isWhenConditionOperand()
Overrides org. Returns whether this expression is a right side of condition in a when operand. |
| public void | mapColumns(ColumnResolver
the column resolver resolver, int the subquery nesting level level, int current state for nesting checks, initial value is
state)MAP_INITIALImplements abstract org. Map the columns of the resolver to expression columns. |
| public boolean | needParentheses()
Overrides org. Returns whether this expressions needs to be wrapped in parentheses when it is used as an argument of other expressions. |
| public Expression | optimize(SessionLocal
the session session)Implements abstract org. Try to optimize the expression. |
| pack-priv Expression | Returns: null or the joined IN conditionthe session session, Comparison the second condition other)Replace the OR condition with IN condition if possible. |
| public void | setEvaluatable(TableFilter
the table filter tableFilter, boolean true if the table filter can return value b)Implements abstract org. Tell the expression columns whether the table filter can return values now. |
| public void | updateAggregate(SessionLocal
the session session, int select stage stage)Implements abstract org. Update an aggregate value. |
| BIGGER | back to summary |
|---|---|
| public static final int BIGGER The comparison type meaning > as in ID>1. | |
| BIGGER_EQUAL | back to summary |
|---|---|
| public static final int BIGGER_EQUAL The comparison type meaning >= as in ID>=1. | |
| COMPARE_TYPES | back to summary |
|---|---|
| pack-priv static final String[] COMPARE_TYPES | |
| compareType | back to summary |
|---|---|
| private int compareType | |
| EQUAL | back to summary |
|---|---|
| public static final int EQUAL The comparison type meaning = as in ID=1. | |
| EQUAL_NULL_SAFE | back to summary |
|---|---|
| public static final int EQUAL_NULL_SAFE The comparison type meaning ID IS NOT DISTINCT FROM 1. | |
| FALSE | back to summary |
|---|---|
| public static final int FALSE This is a pseudo comparison type that is only used for index conditions. It means the comparison will always yield FALSE. Example: 1=0. | |
| IN_ARRAY | back to summary |
|---|---|
| public static final int IN_ARRAY This is a pseudo comparison type that is only used for index conditions. It means equals any value of an ARRAY. Example: ARRAY[1, 2, 3]. | |
| IN_LIST | back to summary |
|---|---|
| public static final int IN_LIST This is a pseudo comparison type that is only used for index conditions. It means equals any value of a list. Example: IN(1, 2, 3). | |
| IN_QUERY | back to summary |
|---|---|
| public static final int IN_QUERY This is a pseudo comparison type that is only used for index conditions. It means equals any value of a list. Example: IN(SELECT ...). | |
| left | back to summary |
|---|---|
| private Expression left | |
| NOT_EQUAL | back to summary |
|---|---|
| public static final int NOT_EQUAL The comparison type meaning <> as in ID<>1. | |
| NOT_EQUAL_NULL_SAFE | back to summary |
|---|---|
| public static final int NOT_EQUAL_NULL_SAFE The comparison type meaning ID IS DISTINCT FROM 1. | |
| right | back to summary |
|---|---|
| private Expression right | |
| SMALLER | back to summary |
|---|---|
| public static final int SMALLER The comparison type meaning < as in ID<1. | |
| SMALLER_EQUAL | back to summary |
|---|---|
| public static final int SMALLER_EQUAL The comparison type meaning <= as in ID<=1. | |
| SPATIAL_INTERSECTS | back to summary |
|---|---|
| public static final int SPATIAL_INTERSECTS This is a comparison type that is only used for spatial index conditions (operator "&&"). | |
| whenOperand | back to summary |
|---|---|
| private final boolean whenOperand | |
| Comparison | back to summary |
|---|---|
| public Comparison(int compareType, Expression left, Expression right, boolean whenOperand) | |
| compare | back to summary |
|---|---|
| pack-priv static Value compare(SessionLocal session, Value l, Value r, int compareType) Compare two values.
| |
| createIndexConditions | back to summary |
|---|---|
| public void createIndexConditions(SessionLocal session, TableFilter filter) Overrides org. Doc from org. Create index conditions if possible and attach them to the table filter.
| |
| createIndexConditions | back to summary |
|---|---|
| pack-priv static void createIndexConditions(TableFilter filter, Expression left, Expression right, int compareType) | |
| createIndexConditions | back to summary |
|---|---|
| private static void createIndexConditions(TableFilter filter, ExpressionList left, ExpressionList right, int compareType) | |
| createIndexConditions | back to summary |
|---|---|
| private static void createIndexConditions(TableFilter filter, ExpressionList left, ValueExpression right, int compareType) | |
| getAdditionalAnd | back to summary |
|---|---|
| pack-priv Expression getAdditionalAnd(SessionLocal session, Comparison other) Get an additional condition if possible. Example: given two conditions A=B AND B=C, the new condition A=C is returned.
| |
| getConditionIn | back to summary |
|---|---|
| private static ConditionIn getConditionIn(Expression left, Expression value1, Expression value2) | |
| getCost | back to summary |
|---|---|
| public int getCost() Implements abstract org. Doc from org. Estimate the cost to process the expression. Used when optimizing the query, to calculate the query plan with the lowest estimated cost.
| |
| getIfEquals | back to summary |
|---|---|
| pack-priv Expression getIfEquals(Expression match) Get the other expression if this is an equals comparison and the other expression matches.
| |
| getNotCompareType | back to summary |
|---|---|
| pack-priv static int getNotCompareType(int type) | |
| getNotIfPossible | back to summary |
|---|---|
| public Expression getNotIfPossible(SessionLocal session) Overrides org. Doc from org. If it is possible, return the negated expression. This is used to optimize NOT expressions: NOT ID>10 can be converted to ID<=10. Returns null if negating is not possible.
| |
| getReversedCompareType | back to summary |
|---|---|
| private static int getReversedCompareType(int type) | |
| getSubexpression | back to summary |
|---|---|
| public Expression getSubexpression(int index) Overrides org. Doc from org. Returns subexpression with specified index.
| |
| getSubexpressionCount | back to summary |
|---|---|
| public int getSubexpressionCount() Overrides org. Doc from org. Returns count of subexpressions.
| |
| getUnenclosedSQL | back to summary |
|---|---|
| public StringBuilder getUnenclosedSQL(StringBuilder builder, int sqlFlags) Implements abstract org. Doc from org. Get the SQL statement of this expression. This may not always be the original SQL statement, especially after optimization. Enclosing '(' and ')' are never appended.
| |
| getValue | back to summary |
|---|---|
| public Value getValue(SessionLocal session) Implements abstract org. Doc from org. Return the resulting value for the current row.
| |
| getWhenSQL | back to summary |
|---|---|
| public StringBuilder getWhenSQL(StringBuilder builder, int sqlFlags) Overrides org. Doc from org. Appends the SQL statement of this when operand to the specified builder.
| |
| getWhenValue | back to summary |
|---|---|
| public boolean getWhenValue(SessionLocal session, Value left) Overrides org. Doc from org. Return the resulting value of when operand for the current row.
| |
| isEverything | back to summary |
|---|---|
| public boolean isEverything(ExpressionVisitor visitor) Implements abstract org. Doc from org. Check if this expression and all sub-expressions can fulfill a criteria. If any part returns false, the result is false.
| |
| isWhenConditionOperand | back to summary |
|---|---|
| public boolean isWhenConditionOperand() Overrides org. Doc from org. Returns whether this expression is a right side of condition in a when operand.
| |
| mapColumns | back to summary |
|---|---|
| public void mapColumns(ColumnResolver resolver, int level, int state) Implements abstract org. Doc from org. Map the columns of the resolver to expression columns.
| |
| needParentheses | back to summary |
|---|---|
| public boolean needParentheses() Overrides org. Doc from org. Returns whether this expressions needs to be wrapped in parentheses when it is used as an argument of other expressions.
| |
| optimize | back to summary |
|---|---|
| public Expression optimize(SessionLocal session) Implements abstract org. Doc from org. Try to optimize the expression.
| |
| optimizeOr | back to summary |
|---|---|
| pack-priv Expression optimizeOr(SessionLocal session, Comparison other) Replace the OR condition with IN condition if possible. Example: given the two conditions A=1 OR A=2, the new condition A IN(1, 2) is returned.
| |
| setEvaluatable | back to summary |
|---|---|
| public void setEvaluatable(TableFilter tableFilter, boolean b) Implements abstract org. Doc from org. Tell the expression columns whether the table filter can return values now. This is used when optimizing the query.
| |
| updateAggregate | back to summary |
|---|---|
| public void updateAggregate(SessionLocal session, int stage) Implements abstract org. Doc from org. Update an aggregate value. This method is called at statement execution time. It is usually called once for each row, but if the expression is used multiple times (for example in the column list, and as part of the HAVING expression) it is called multiple times - the row counter needs to be used to make sure the internal state is only updated once.
| |