public final class ExpressionColumn extends Expression
AUTO_PARENTHESES, MAP_IN_AGGREGATE, MAP_IN_WINDOW, MAP_INITIAL, WITH_PARENTHESES, WITHOUT_PARENTHESESADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS| Constructor and Description |
|---|
ExpressionColumn(Database database,
Column column)
Creates a new column reference for metadata of queries; should not be
used as normal expression.
|
ExpressionColumn(Database database,
java.lang.String schemaName,
java.lang.String tableAlias)
Creates a new instance of column reference for
_ROWID_ column as
normal expression. |
ExpressionColumn(Database database,
java.lang.String schemaName,
java.lang.String tableAlias,
java.lang.String columnName)
Creates a new instance of column reference for regular columns as normal
expression.
|
ExpressionColumn(Database database,
java.lang.String schemaName,
java.lang.String tableAlias,
java.lang.String columnName,
boolean quotedName)
Creates a new instance of column reference for regular columns as normal
expression.
|
| Modifier and Type | Method and Description |
|---|---|
void |
createIndexConditions(SessionLocal session,
TableFilter filter)
Create index conditions if possible and attach them to the table filter.
|
java.lang.String |
getAlias(SessionLocal session,
int columnIndex)
Get the alias name of a column or SQL expression
if it is not an aliased expression.
|
Column |
getColumn() |
DbException |
getColumnException(int code)
Get exception to throw, with column and table info added
|
java.lang.String |
getColumnName(SessionLocal session,
int columnIndex)
Get the column name or alias name of this expression.
|
java.lang.String |
getColumnNameForView(SessionLocal session,
int columnIndex)
Get the column name of this expression for a view.
|
int |
getCost()
Estimate the cost to process the expression.
|
Expression |
getNotIfPossible(SessionLocal session)
If it is possible, return the negated expression.
|
int |
getNullable()
Check whether this expression is a column and can store NULL.
|
java.lang.String |
getOriginalColumnName() |
java.lang.String |
getOriginalTableAliasName() |
java.lang.String |
getSchemaName()
Get the schema name, or null
|
TableFilter |
getTableFilter() |
java.lang.String |
getTableName()
Get the table name, or null
|
TypeInfo |
getType()
Returns the data type.
|
java.lang.StringBuilder |
getUnenclosedSQL(java.lang.StringBuilder builder,
int sqlFlags)
Get the SQL statement of this expression.
|
Value |
getValue(SessionLocal 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.
|
boolean |
isIdentity()
Check if this is an identity column.
|
void |
mapColumns(ColumnResolver resolver,
int level,
int state)
Map the columns of the resolver to expression columns.
|
Expression |
optimize(SessionLocal 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(SessionLocal session,
int stage)
Update an aggregate value.
|
addFilterConditions, getBooleanValue, getEnclosedSQL, getNonAliasExpression, getSQL, getSQL, getSQL, getSQL, getSubexpression, getSubexpressionCount, getTableAlias, getWhenSQL, getWhenValue, isConstant, isNullConstant, isValueSet, isWhenConditionOperand, needParentheses, optimizeCondition, toString, writeExpressions, writeExpressionsclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetTraceSQLpublic ExpressionColumn(Database database, Column column)
database - the databasecolumn - the columnpublic ExpressionColumn(Database database, java.lang.String schemaName, java.lang.String tableAlias, java.lang.String columnName)
database - the databaseschemaName - the schema name, or nulltableAlias - the table alias name, table name, or nullcolumnName - the column namepublic ExpressionColumn(Database database, java.lang.String schemaName, java.lang.String tableAlias, java.lang.String columnName, boolean quotedName)
database - the databaseschemaName - the schema name, or nulltableAlias - the table alias name, table name, or nullcolumnName - the column namequotedName - whether name was quotedpublic ExpressionColumn(Database database, java.lang.String schemaName, java.lang.String tableAlias)
_ROWID_ column as
normal expression.database - the databaseschemaName - the schema name, or nulltableAlias - the table alias name, table name, or nullpublic java.lang.StringBuilder getUnenclosedSQL(java.lang.StringBuilder builder,
int sqlFlags)
ExpressiongetUnenclosedSQL in class Expressionbuilder - string buildersqlFlags - formatting flagspublic TableFilter getTableFilter()
public void mapColumns(ColumnResolver resolver, int level, int state)
ExpressionmapColumns in class Expressionresolver - the column resolverlevel - the subquery nesting levelstate - current state for nesting checks, initial value is
Expression.MAP_INITIALpublic Expression optimize(SessionLocal session)
Expressionoptimize in class Expressionsession - the sessionpublic DbException getColumnException(int code)
code - SQL error codepublic void updateAggregate(SessionLocal session, int stage)
ExpressionupdateAggregate in class Expressionsession - the sessionstage - select stagepublic Value getValue(SessionLocal session)
ExpressiongetValue in class Expressionsession - the sessionpublic TypeInfo getType()
ExpressiongetType in interface TypedgetType in class Expressionpublic void setEvaluatable(TableFilter tableFilter, boolean b)
ExpressionsetEvaluatable in class ExpressiontableFilter - the table filterb - true if the table filter can return valuepublic Column getColumn()
public java.lang.String getOriginalColumnName()
public java.lang.String getOriginalTableAliasName()
public java.lang.String getColumnName(SessionLocal session, int columnIndex)
ExpressiongetColumnName in class Expressionsession - the sessioncolumnIndex - 0-based column indexpublic java.lang.String getSchemaName()
ExpressiongetSchemaName in class Expressionpublic java.lang.String getTableName()
ExpressiongetTableName in class Expressionpublic java.lang.String getAlias(SessionLocal session, int columnIndex)
ExpressiongetAlias in class Expressionsession - the sessioncolumnIndex - 0-based column indexpublic java.lang.String getColumnNameForView(SessionLocal session, int columnIndex)
ExpressiongetColumnNameForView in class Expressionsession - the sessioncolumnIndex - 0-based column indexpublic boolean isIdentity()
ExpressionisIdentity in class Expressionpublic int getNullable()
ExpressiongetNullable in class Expressionpublic boolean isEverything(ExpressionVisitor visitor)
ExpressionisEverything in class Expressionvisitor - the visitorpublic int getCost()
ExpressiongetCost in class Expressionpublic void createIndexConditions(SessionLocal session, TableFilter filter)
ExpressioncreateIndexConditions in class Expressionsession - the sessionfilter - the table filterpublic Expression getNotIfPossible(SessionLocal session)
ExpressiongetNotIfPossible in class Expressionsession - the session