public class Comparison extends Expression
Modifier and Type | Field and Description |
---|---|
static int |
BIGGER
The comparison type meaning > as in ID>1.
|
static int |
BIGGER_EQUAL
The comparison type meaning >= as in ID>=1.
|
static int |
EQUAL
The comparison type meaning = as in ID=1.
|
static int |
EQUAL_NULL_SAFE
The comparison type meaning ID IS 1 (ID IS NOT DISTINCT FROM 1).
|
static int |
FALSE
This is a pseudo comparison type that is only used for index conditions.
|
static int |
IN_LIST
This is a pseudo comparison type that is only used for index conditions.
|
static int |
IN_QUERY
This is a pseudo comparison type that is only used for index conditions.
|
static int |
IS_NOT_NULL
The comparison type meaning IS NOT NULL as in NAME IS NOT NULL.
|
static int |
IS_NULL
The comparison type meaning IS NULL as in NAME IS NULL.
|
static int |
NOT_EQUAL
The comparison type meaning <> as in ID<>1.
|
static int |
NOT_EQUAL_NULL_SAFE
The comparison type meaning ID IS NOT 1 (ID IS DISTINCT FROM 1).
|
static int |
NULL_SAFE
This is a flag meaning the comparison is null safe (meaning never returns
NULL even if one operand is NULL).
|
static int |
SMALLER
The comparison type meaning < as in ID<1.
|
static int |
SMALLER_EQUAL
The comparison type meaning <= as in ID<=1.
|
Constructor and Description |
---|
Comparison(Session session,
int compareType,
Expression left,
Expression right) |
Modifier and Type | Method and Description |
---|---|
void |
addFilterConditions(TableFilter filter,
boolean outerJoin)
Add conditions to a table filter if they can be evaluated.
|
void |
createIndexConditions(Session session,
TableFilter filter)
Create index conditions if possible and attach them to the table filter.
|
int |
getCost()
Estimate the cost to process the expression.
|
int |
getDisplaySize()
Get the display size of this expression.
|
Expression |
getExpression(boolean getLeft)
Get the left or the right sub-expression of this condition.
|
Expression |
getNotIfPossible(Session session)
If it is possible, return the negated expression.
|
long |
getPrecision()
Get the precision of this expression.
|
int |
getScale()
Get the scale of this expression.
|
String |
getSQL()
Get the SQL statement of this expression.
|
int |
getType()
Return the data type.
|
Value |
getValue(Session session)
Return the resulting value for the current row.
|
boolean |
isEverything(ExpressionVisitor visitor)
Check if this expression and all sub-expressions can fulfill a criteria.
|
void |
mapColumns(ColumnResolver resolver,
int level)
Map the columns of the resolver to expression columns.
|
Expression |
optimize(Session session)
Try to optimize the expression.
|
void |
setEvaluatable(TableFilter tableFilter,
boolean b)
Tell the expression columns whether the table filter can return values now.
|
void |
updateAggregate(Session session)
Update an aggregate value.
|
getAlias, getBooleanValue, getColumnName, getExpressionColumns, getExpressionColumns, getNonAliasExpression, getNullable, getSchemaName, getTableAlias, getTableName, isAutoIncrement, isConstant, isValueSet, isWildcard, toString
public static final int NULL_SAFE
public static final int EQUAL
public static final int EQUAL_NULL_SAFE
public static final int BIGGER_EQUAL
public static final int BIGGER
public static final int SMALLER_EQUAL
public static final int SMALLER
public static final int NOT_EQUAL
public static final int NOT_EQUAL_NULL_SAFE
public static final int IS_NULL
public static final int IS_NOT_NULL
public static final int FALSE
public static final int IN_LIST
public static final int IN_QUERY
public Comparison(Session session, int compareType, Expression left, Expression right)
public String getSQL()
Expression
getSQL
in class Expression
public Expression optimize(Session session)
Expression
optimize
in class Expression
session
- the sessionpublic Value getValue(Session session)
Expression
getValue
in class Expression
session
- the sessionpublic Expression getNotIfPossible(Session session)
Expression
getNotIfPossible
in class Expression
session
- the sessionpublic void createIndexConditions(Session session, TableFilter filter)
Expression
createIndexConditions
in class Expression
session
- the sessionfilter
- the table filterpublic void setEvaluatable(TableFilter tableFilter, boolean b)
Expression
setEvaluatable
in class Expression
tableFilter
- the table filterb
- true if the table filter can return valuepublic void updateAggregate(Session session)
Expression
updateAggregate
in class Expression
session
- the sessionpublic void addFilterConditions(TableFilter filter, boolean outerJoin)
Expression
addFilterConditions
in class Expression
filter
- the table filterouterJoin
- if the expression is part of an outer joinpublic void mapColumns(ColumnResolver resolver, int level)
Expression
mapColumns
in class Expression
resolver
- the column resolverlevel
- the subquery nesting levelpublic boolean isEverything(ExpressionVisitor visitor)
Expression
isEverything
in class Expression
visitor
- the visitorpublic int getCost()
Expression
getCost
in class Expression
public Expression getExpression(boolean getLeft)
getLeft
- true to get the left sub-expression, false to get the right
sub-expression.public int getType()
Expression
getType
in class Expression
public int getScale()
Expression
getScale
in class Expression
public long getPrecision()
Expression
getPrecision
in class Expression
public int getDisplaySize()
Expression
getDisplaySize
in class Expression
Copyright © 2012 JBoss by Red Hat. All Rights Reserved.