Top Description Fields Constructors Methods
org.hsqldb

public Class ExpressionColumn

extends Expression
Class Inheritance
Imports
org.hsqldb.HsqlNameManager.HsqlName, .HsqlNameManager.SimpleName, org.hsqldb.error.Error, .ErrorCode, org.hsqldb.index.Index, org.hsqldb.lib.ArrayListIdentity, .List, .OrderedHashMap, .OrderedHashSet, .Set, org.hsqldb.map.ValuePool, org.hsqldb.navigator.RangeIterator, org.hsqldb.persist.PersistentStore, org.hsqldb.types.Type

Implementation of column, variable, parameter, etc. access operations.
Author
Fred Toussi (fredt@users dot sourceforge.net)
Since
1.9.0
Version
2.7.3

Field Summary

Modifier and TypeField and Description
pack-priv ColumnSchema
pack-priv String
public static final OrderedHashMap<String, ColumnSchema>
pack-priv static final String[]
public static final ExpressionColumn[]
public static final int
public static final int
public static final int
pack-priv boolean
pack-priv boolean
pack-priv int
pack-priv RangeVariable
pack-priv static final HsqlNameManager.SimpleName
pack-priv String
pack-priv NumberSequence
pack-priv String
Inherited from org.hsqldb.Expression:
aliasBINARYcollationcolumnIndexdataTypeEXPR_FALSEEXPR_TRUEexprSubTypegroupingTypeisColumnConditionisColumnEqualisCorrelatedisDistinctAggregateisSingleColumnConditionisSingleColumnEqualisSingleColumnNotNullisSingleColumnNullLEFTnodeDataTypesnodesnoOptimisationnullabilityopTypeparameterIndexrangeGrouprangeGroupsresultTableColumnIndexRIGHTtableTERNARYTHIRDUNARYvalueData

Constructor Summary

AccessConstructor and Description
pack-priv
ExpressionColumn(String schema, String table, String column)

Creates a OpTypes.COLUMN expression

pack-priv
ExpressionColumn(String column)

Column reference in MySQL INSERT

pack-priv
pack-priv
pack-priv
ExpressionColumn(RangeVariable rangeVar, int index)

pack-priv
ExpressionColumn(Expression e, int colIndex, int rangePosition)

Creates a temporary OpTypes.SIMPLE_COLUMN expression

pack-priv
ExpressionColumn(int type)

pack-priv
ExpressionColumn(int type, int columnIndex)

For diagnostics vars

pack-priv
pack-priv
ExpressionColumn(Expression groups)

for GROUPING function

pack-priv
ExpressionColumn(String schema, String table)

Creates an OpCodes.ASTERISK expression

pack-priv
ExpressionColumn(NumberSequence sequence, int opType)

Creates a OpTypes.SEQUENCE expression

Method Summary

Modifier and TypeMethod and Description
public static void
pack-priv void
pack-priv OrderedHashSet<RangeVariable>
collectRangeVariables(OrderedHashSet<RangeVariable> set)

Overrides org.hsqldb.Expression.collectRangeVariables.

collects all range variables in expression tree

pack-priv OrderedHashSet<RangeVariable>
pack-priv double
costFactor(Session session, RangeVariable range, int operation)

Overrides org.hsqldb.Expression.costFactor.

For normal tables only.

protected String
describe(Session session, int blanks)

Overrides org.hsqldb.Expression.describe.

public Expression
pack-priv boolean
equals(Expression other)

Overrides org.hsqldb.Expression.equals.

SIMPLE_COLUMN expressions are now (2.4.0) always ExpressionColumn

pack-priv String
getAlias()

Overrides org.hsqldb.Expression.getAlias.

Get the column alias

public ColumnSchema
pack-priv String
getColumnName()

Overrides org.hsqldb.Expression.getColumnName.

Returns the name of a column as string

private Object
pack-priv void
public byte
pack-priv RangeVariable
getRangeVariable()

Overrides org.hsqldb.Expression.getRangeVariable.

Returns the range variable for a COLUMN or PERIOD expression

pack-priv String
pack-priv HsqlNameManager.SimpleName
public String
getSQL()

Overrides org.hsqldb.Expression.getSQL.

For use with CHECK constraints.

pack-priv String

Returns:

table name
getTableName
()

Returns the table name used in query

public OrderedHashSet<Expression>
public Object
pack-priv boolean
hasReference(RangeVariable range)

Overrides org.hsqldb.Expression.hasReference.

return true if given RangeVariable is used in expression tree

pack-priv boolean
public boolean
public boolean
pack-priv Expression
replaceAliasInOrderBy(Session session, List<Expression> columns, int length)

Overrides org.hsqldb.Expression.replaceAliasInOrderBy.

return the expression for an alias used in an ORDER BY clause

pack-priv Expression
pack-priv void
pack-priv void
pack-priv boolean
resolveColumnReference(RangeVariable rangeVar, boolean outer)

public List<Expression>
resolveColumnReferences(Session session, RangeGroup rangeGroup, int rangeCount, RangeGroup[] rangeGroups, List<Expression> unresolvedSet, boolean acceptsSequences)

Overrides org.hsqldb.Expression.resolveColumnReferences.

private boolean
resolveCorrelated(RangeGroup rangeGroup, RangeGroup[] rangeGroups)

pack-priv boolean
public void
pack-priv void
pack-priv void
pack-priv void
Inherited from org.hsqldb.Expression:
checkValidCheckConstraintcollectAllExpressionscollectAllSubqueriesconvertToTypecountNullsequalsequalsequalsgetAggregatedValuegetCheckSelectgetColumnIndexgetConditiongetConstantValueNoCheckgetContextSQLgetDataTypegetDegreegetIndexableExpressiongetLeftNodegetNodeDataTypegetNodeDataTypesgetResultgetRightNodegetRowValuegetSubqueriesgetSubTypegetTablegetTypegetValuegetValueClassNamehasAggregatehasConditionhashCodehasNonDeterministicFunctionhasReferenceinsertValuesIntoSubqueryTableisComposedOfisComposedOfisConditionRangeVariableisCorrelatedisDistinctAggregateisFalseisSelfAggregateisTruematerialiseprepareTablereplaceExpressionsreplaceNoderesolveCheckOrGenExpressionresolveColumnReferencesresolveColumnSetresolveColumnSetresolveGrantFiltersetAggregatesetAliassetAsConstantValuesetAsConstantValuesetCollationsetConditionsetCorrelatedReferencessetDataTypesetLeftNodesetNoOptimisationsetRightNodesetSubTypeswapLeftAndRightNodestestConditionupdateAggregatingValueupdateAggregatingValue

Field Detail

columnback to summary
pack-priv ColumnSchema column
columnNameback to summary
pack-priv String columnName
diagnosticsListback to summary
public static final OrderedHashMap<String, ColumnSchema> diagnosticsList
diagnosticsVariableTokensback to summary
pack-priv static final String[] diagnosticsVariableTokens
emptyArrayback to summary
public static final ExpressionColumn[] emptyArray

Hides org.hsqldb.Expression.emptyArray.

idx_moreback to summary
public static final int idx_more
idx_numberback to summary
public static final int idx_number
idx_row_countback to summary
public static final int idx_row_count
isParamback to summary
pack-priv boolean isParam
isUpdateColumnback to summary
pack-priv boolean isUpdateColumn
rangePositionback to summary
pack-priv int rangePosition
rangeVariableback to summary
pack-priv RangeVariable rangeVariable
rownumNameback to summary
pack-priv static final HsqlNameManager.SimpleName rownumName
schemaback to summary
pack-priv String schema
sequenceback to summary
pack-priv NumberSequence sequence
tableNameback to summary
pack-priv String tableName

Constructor Detail

ExpressionColumnback to summary
pack-priv ExpressionColumn(String schema, String table, String column)

Creates a OpTypes.COLUMN expression

ExpressionColumnback to summary
pack-priv ExpressionColumn(String column)

Column reference in MySQL INSERT

ExpressionColumnback to summary
pack-priv ExpressionColumn(ColumnSchema column)
ExpressionColumnback to summary
pack-priv ExpressionColumn(RangeVariable rangeVar, ColumnSchema column)
ExpressionColumnback to summary
pack-priv ExpressionColumn(RangeVariable rangeVar, int index)
ExpressionColumnback to summary
pack-priv ExpressionColumn(Expression e, int colIndex, int rangePosition)

Creates a temporary OpTypes.SIMPLE_COLUMN expression

ExpressionColumnback to summary
pack-priv ExpressionColumn(int type)
ExpressionColumnback to summary
pack-priv ExpressionColumn(int type, int columnIndex)

For diagnostics vars

ExpressionColumnback to summary
pack-priv ExpressionColumn(Expression[] nodes, String name)
ExpressionColumnback to summary
pack-priv ExpressionColumn(Expression groups)

for GROUPING function

ExpressionColumnback to summary
pack-priv ExpressionColumn(String schema, String table)

Creates an OpCodes.ASTERISK expression

ExpressionColumnback to summary
pack-priv ExpressionColumn(NumberSequence sequence, int opType)

Creates a OpTypes.SEQUENCE expression

Method Detail

checkColumnsResolvedback to summary
public static void checkColumnsResolved(List<Expression> set)
collectObjectNamesback to summary
pack-priv void collectObjectNames(Set<HsqlNameManager.HsqlName> set)

Overrides org.hsqldb.Expression.collectObjectNames.

Doc from org.hsqldb.Expression.collectObjectNames.

collects all schema objects

collectRangeVariablesback to summary
pack-priv OrderedHashSet<RangeVariable> collectRangeVariables(OrderedHashSet<RangeVariable> set)

Overrides org.hsqldb.Expression.collectRangeVariables.

collects all range variables in expression tree

collectRangeVariablesback to summary
pack-priv OrderedHashSet<RangeVariable> collectRangeVariables(RangeVariable[] rangeVariables, OrderedHashSet<RangeVariable> set)

Overrides org.hsqldb.Expression.collectRangeVariables.

costFactorback to summary
pack-priv double costFactor(Session session, RangeVariable range, int operation)

Overrides org.hsqldb.Expression.costFactor.

For normal tables only. We don't want to create an index on each column that is checked.

describeback to summary
protected String describe(Session session, int blanks)

Overrides org.hsqldb.Expression.describe.

duplicateback to summary
public Expression duplicate()

Overrides org.hsqldb.Expression.duplicate.

equalsback to summary
pack-priv boolean equals(Expression other)

Overrides org.hsqldb.Expression.equals.

SIMPLE_COLUMN expressions are now (2.4.0) always ExpressionColumn

getAliasback to summary
pack-priv String getAlias()

Overrides org.hsqldb.Expression.getAlias.

Doc from org.hsqldb.Expression.getAlias.

Get the column alias

getColumnback to summary
public ColumnSchema getColumn()

Overrides org.hsqldb.Expression.getColumn.

getColumnNameback to summary
pack-priv String getColumnName()

Overrides org.hsqldb.Expression.getColumnName.

Doc from org.hsqldb.Expression.getColumnName.

Returns the name of a column as string

getDiagnosticsVariableback to summary
private Object getDiagnosticsVariable(Session session)
getJoinRangeVariablesback to summary
pack-priv void getJoinRangeVariables(RangeVariable[] ranges, List<RangeVariable> list)

Overrides org.hsqldb.Expression.getJoinRangeVariables.

getNullabilityback to summary
public byte getNullability()

Overrides org.hsqldb.Expression.getNullability.

getRangeVariableback to summary
pack-priv RangeVariable getRangeVariable()

Overrides org.hsqldb.Expression.getRangeVariable.

Doc from org.hsqldb.Expression.getRangeVariable.

Returns the range variable for a COLUMN or PERIOD expression

getSchemaNameback to summary
pack-priv String getSchemaName()
getSimpleNameback to summary
pack-priv HsqlNameManager.SimpleName getSimpleName()

Overrides org.hsqldb.Expression.getSimpleName.

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.

getTableNameback to summary
pack-priv String getTableName()

Returns the table name used in query

Returns:String

table name

getUnkeyedColumnsback to summary
public OrderedHashSet<Expression> getUnkeyedColumns(OrderedHashSet<Expression> unresolvedSet)

Overrides org.hsqldb.Expression.getUnkeyedColumns.

getValueback to summary
public Object getValue(Session session)

Overrides org.hsqldb.Expression.getValue.

hasReferenceback to summary
pack-priv boolean hasReference(RangeVariable range)

Overrides org.hsqldb.Expression.hasReference.

return true if given RangeVariable is used in expression tree

isDynamicParamback to summary
pack-priv boolean isDynamicParam()

Overrides org.hsqldb.Expression.isDynamicParam.

isIndexableback to summary
public boolean isIndexable(RangeVariable range)

Overrides org.hsqldb.Expression.isIndexable.

isUnresolvedParamback to summary
public boolean isUnresolvedParam()

Overrides org.hsqldb.Expression.isUnresolvedParam.

replaceAliasInOrderByback to summary
pack-priv Expression replaceAliasInOrderBy(Session session, List<Expression> columns, int length)

Overrides org.hsqldb.Expression.replaceAliasInOrderBy.

Doc from org.hsqldb.Expression.replaceAliasInOrderBy.

return the expression for an alias used in an ORDER BY clause

replaceColumnReferencesback to summary
pack-priv Expression replaceColumnReferences(Session session, RangeVariable range, Expression[] list)

Overrides org.hsqldb.Expression.replaceColumnReferences.

replaceRangeVariablesback to summary
pack-priv void replaceRangeVariables(RangeVariable[] ranges, RangeVariable[] newRanges)

Overrides org.hsqldb.Expression.replaceRangeVariables.

resetColumnReferencesback to summary
pack-priv void resetColumnReferences()

Overrides org.hsqldb.Expression.resetColumnReferences.

resolveColumnReferenceback to summary
pack-priv boolean resolveColumnReference(RangeVariable rangeVar, boolean outer)
resolveColumnReferencesback to summary
public List<Expression> resolveColumnReferences(Session session, RangeGroup rangeGroup, int rangeCount, RangeGroup[] rangeGroups, List<Expression> unresolvedSet, boolean acceptsSequences)

Overrides org.hsqldb.Expression.resolveColumnReferences.

resolveCorrelatedback to summary
private boolean resolveCorrelated(RangeGroup rangeGroup, RangeGroup[] rangeGroups)
resolvesDuplicateColumnReferenceback to summary
pack-priv boolean resolvesDuplicateColumnReference(RangeVariable rangeVar)
resolveTypesback to summary
public void resolveTypes(Session session, Expression parent)

Overrides org.hsqldb.Expression.resolveTypes.

setAttributesAsColumnback to summary
pack-priv void setAttributesAsColumn(RangeVariable range, int i)
setAttributesAsColumnback to summary
pack-priv void setAttributesAsColumn(ColumnSchema column)

Overrides org.hsqldb.Expression.setAttributesAsColumn.

setAutoAttributesAsColumnback to summary
pack-priv void setAutoAttributesAsColumn(RangeVariable range, int i)