ConditionInConstantSet

Used for optimised IN(...) queries where the contents of the IN list are all constant and of the same type.

Checking using a HashSet is has time complexity O(1), instead of O(n) for checking using an array.

Methods
ConditionInConstantSet(Session session, Expression left, ArrayList valueList)
Create a new IN(..) condition.
ConditionInConstantSet(Session session, Expression left, ArrayList valueList)
Create a new IN(..) condition.
Parameters:
session - the session
left - the expression before IN
valueList - the value list (at least two elements)
void createIndexConditions(Session session, TableFilter filter)
void createIndexConditions(Session session, TableFilter filter)
Expression getAdditional(Session session, Comparison other)
Add an additional element if possible.
Expression getAdditional(Session session, Comparison other)
Add an additional element if possible. Example: given two conditions A IN(1, 2) OR A=3, the constant 3 is added: A IN(1, 2, 3).
Parameters:
session - the session
other - the second condition
Returns:
null if the condition was not added, or the new condition
int getCost()
int getCost()
String getSQL()
String getSQL()
Value getValue(Session session)
Value getValue(Session session)
boolean isEverything(ExpressionVisitor visitor)
boolean isEverything(ExpressionVisitor visitor)
void mapColumns(ColumnResolver resolver, int level)
void mapColumns(ColumnResolver resolver, int level)
Expression optimize(Session session)
Expression optimize(Session session)
void setEvaluatable(TableFilter tableFilter, boolean b)
void setEvaluatable(TableFilter tableFilter, boolean b)
void updateAggregate(Session session)
void updateAggregate(Session session)