Top Description Inners Fields Constructors Methods
org.hsqldb

public Class QueryExpression

extends Object
implements RangeGroup
Class Inheritance
All Implemented Interfaces
org.hsqldb.RangeGroup
Known Direct Subclasses
org.hsqldb.QuerySpecification
Imports
org.hsqldb.HsqlNameManager.HsqlName, .ParserDQL.CompileContext, org.hsqldb.error.Error, .ErrorCode, org.hsqldb.index.Index, org.hsqldb.lib.ArrayListIdentity, .ArrayUtil, .List, .OrderedHashMap, .OrderedHashSet, .OrderedIntHashSet, .Set, org.hsqldb.map.ValuePool, org.hsqldb.navigator.RowSetNavigatorData, .RowSetNavigatorDataTable, org.hsqldb.persist.PersistentStore, org.hsqldb.result.Result, .ResultMetaData, org.hsqldb.types.Type, .Types

Implementation of an SQL query expression
Author
Fred Toussi (fredt@users dot sourceforge.net)
Since
1.9.0
Version
2.7.4

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class

Field Summary

Modifier and TypeField and Description
pack-priv boolean
pack-priv boolean[]
pack-priv int
pack-priv ParserDQL.CompileContext
public static final int
public static final int
public Index
public Index
public static final int
public static final int
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv QueryExpression
pack-priv boolean
public Index
pack-priv TableDerived[]
public static final int
public Index
pack-priv int
pack-priv TableDerived
pack-priv QueryExpression.RecursiveQuerySettings
pack-priv TableDerived
pack-priv ResultMetaData
public TableBase
pack-priv QueryExpression
public Index
public SortAndSlice
public static final int
public static final int
public static final int
pack-priv int[]
pack-priv Type[]
private boolean
private OrderedHashSet<String>
private int
pack-priv List<Expression>
pack-priv View

Constructor Summary

AccessConstructor and Description
pack-priv
public
QueryExpression(ParserDQL.CompileContext compileContext, QueryExpression leftQueryExpression)

Method Summary

Modifier and TypeMethod and Description
public void
pack-priv void
pack-priv void
addUnion(QueryExpression queryExpression, int unionType)

private void
public boolean
public OrderedHashSet<Expression>
public void
pack-priv OrderedHashSet<RangeVariable>
pack-priv OrderedHashSet<RangeVariable>
pack-priv void
pack-priv void
public String
describe(Session session, int blanks)

public Table
public int[]
pack-priv void
public Expression
public int
pack-priv String[]
public OrderedHashMap<String, ColumnSchema>
public Type[]
public QuerySpecification
public ResultMetaData
public RangeVariable[]
pack-priv Result
getResult(Session session, int maxRows)

public HsqlNameManager.HsqlName[]
pack-priv Result
public TableBase
public Object[]
public OrderedHashSet<TableDerived>
private OrderedHashMap<String, ColumnSchema>
public List<Expression>
public Object
getValue(Session session)

public Object[]
getValues(Session session)

public boolean
pack-priv boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public void
public void
replaceExpressions(OrderedHashSet<Expression> expressions, int resultRangePosition)

non-working temp code for replacing aggregate functions with simple column

public void
public void
resolve(Session session)

public void
resolve(Session session, RangeGroup[] rangeGroups, Type[] targetTypes)

pack-priv void
resolveColumnReferencesInUnionOrderBy()

Only simple column reference or column position allowed

public void
resolveReferences(Session session, RangeGroup[] rangeGroups)

public void
pack-priv void
pack-priv void
pack-priv void
pack-priv void
public void
public void
public void
public void
public void
public void
public void
setReturningResult()

Not for views.

pack-priv void
setReturningResultSet()

Sets the scope to SESSION for the QueryExpression object that creates the table

public void
public void
setTableColumnNames(OrderedHashMap<String, ColumnSchema> list)

Used in views after full type resolution

public void
public void
public void
setView(View view)

Used prior to type resolution

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

acceptsSequencesback to summary
pack-priv boolean acceptsSequences
accessibleColumnsback to summary
pack-priv boolean[] accessibleColumns
columnCountback to summary
pack-priv int columnCount
compileContextback to summary
pack-priv ParserDQL.CompileContext compileContext
EXCEPTback to summary
public static final int EXCEPT
EXCEPT_ALLback to summary
public static final int EXCEPT_ALL
fullIndexback to summary
public Index fullIndex
idIndexback to summary
public Index idIndex
INTERSECTback to summary
public static final int INTERSECT
INTERSECT_ALLback to summary
public static final int INTERSECT_ALL
isBaseMergeableback to summary
pack-priv boolean isBaseMergeable
isCheckableback to summary
pack-priv boolean isCheckable
isCorrelatedback to summary
pack-priv boolean isCorrelated
isFullOrderback to summary
pack-priv boolean isFullOrder
isInsertableback to summary
pack-priv boolean isInsertable
isMergeableback to summary
pack-priv boolean isMergeable
isPartOneResolvedback to summary
pack-priv boolean isPartOneResolved
isPartTwoResolvedback to summary
pack-priv boolean isPartTwoResolved
isRecursiveback to summary
pack-priv boolean isRecursive
isReferencesResolvedback to summary
pack-priv boolean isReferencesResolved
isResolvedback to summary
pack-priv boolean isResolved
isSingleRowback to summary
pack-priv boolean isSingleRow
isTableback to summary
pack-priv boolean isTable
isTopLevelback to summary
pack-priv boolean isTopLevel
isUpdatableback to summary
pack-priv boolean isUpdatable
isValueListback to summary
pack-priv boolean isValueList
leftQueryExpressionback to summary
pack-priv QueryExpression leftQueryExpression
lowerCaseResultIdentifierback to summary
pack-priv boolean lowerCaseResultIdentifier
mainIndexback to summary
public Index mainIndex
materialiseListback to summary
pack-priv TableDerived[] materialiseList
NOUNIONback to summary
public static final int NOUNION
orderIndexback to summary
public Index orderIndex
persistenceScopeback to summary
pack-priv int persistenceScope
recursiveResultTableback to summary
pack-priv TableDerived recursiveResultTable
recursiveSettingsback to summary
pack-priv QueryExpression.RecursiveQuerySettings recursiveSettings
recursiveWorkTableback to summary
pack-priv TableDerived recursiveWorkTable
resultMetaDataback to summary
pack-priv ResultMetaData resultMetaData
resultTableback to summary
public TableBase resultTable
rightQueryExpressionback to summary
pack-priv QueryExpression rightQueryExpression
rowNumIndexback to summary
public Index rowNumIndex
sortAndSliceback to summary
public SortAndSlice sortAndSlice
UNIONback to summary
public static final int UNION
UNION_ALLback to summary
public static final int UNION_ALL
UNION_TERMback to summary
public static final int UNION_TERM
unionColumnMapback to summary
pack-priv int[] unionColumnMap
unionColumnTypesback to summary
pack-priv Type[] unionColumnTypes
unionCorrespondingback to summary
private boolean unionCorresponding
unionCorrespondingColumnsback to summary
private OrderedHashSet<String> unionCorrespondingColumns
unionTypeback to summary
private int unionType
unresolvedExpressionsback to summary
pack-priv List<Expression> unresolvedExpressions
viewback to summary
pack-priv View view

Constructor Detail

QueryExpressionback to summary
pack-priv QueryExpression(ParserDQL.CompileContext compileContext)
QueryExpressionback to summary
public QueryExpression(ParserDQL.CompileContext compileContext, QueryExpression leftQueryExpression)

Method Detail

addExtraConditionsback to summary
public void addExtraConditions(Expression e)
addSortAndSliceback to summary
pack-priv void addSortAndSlice(SortAndSlice sortAndSlice)
addUnionback to summary
pack-priv void addUnion(QueryExpression queryExpression, int unionType)
addUnresolvedExpressionsback to summary
private void addUnresolvedExpressions(List<Expression> expressions)
areColumnsResolvedback to summary
public boolean areColumnsResolved()
collectAllExpressionsback to summary
public OrderedHashSet<Expression> collectAllExpressions(OrderedHashSet<Expression> set, OrderedIntHashSet typeSet, OrderedIntHashSet stopAtTypeSet)
collectObjectNamesback to summary
public void collectObjectNames(Set<HsqlNameManager.HsqlName> set)
collectRangeVariablesback to summary
pack-priv OrderedHashSet<RangeVariable> collectRangeVariables(RangeVariable[] rangeVars, OrderedHashSet<RangeVariable> set)
collectRangeVariablesback to summary
pack-priv OrderedHashSet<RangeVariable> collectRangeVariables(OrderedHashSet<RangeVariable> set)
createResultTableback to summary
pack-priv void createResultTable(Session session)
createTableback to summary
pack-priv void createTable(Session session)
describeback to summary
public String describe(Session session, int blanks)
getBaseTableback to summary
public Table getBaseTable()
getBaseTableColumnMapback to summary
public int[] getBaseTableColumnMap()
getBaseTableNamesback to summary
pack-priv void getBaseTableNames(OrderedHashSet<HsqlNameManager.HsqlName> set)
getCheckConditionback to summary
public Expression getCheckCondition()
getColumnCountback to summary
public int getColumnCount()
getColumnNamesback to summary
pack-priv String[] getColumnNames()
getColumnsback to summary
public OrderedHashMap<String, ColumnSchema> getColumns()
getColumnTypesback to summary
public Type[] getColumnTypes()
getMainSelectback to summary
public QuerySpecification getMainSelect()
getMetaDataback to summary
public ResultMetaData getMetaData()
getRangeVariablesback to summary
public RangeVariable[] getRangeVariables()

Implements org.hsqldb.RangeGroup.getRangeVariables.

getResultback to summary
pack-priv Result getResult(Session session, int maxRows)
getResultColumnNamesback to summary
public HsqlNameManager.HsqlName[] getResultColumnNames()
getResultRecursiveback to summary
pack-priv Result getResultRecursive(Session session)
getResultTableback to summary
public TableBase getResultTable()
getSingleRowValuesback to summary
public Object[] getSingleRowValues(Session session)
getSubqueriesback to summary
public OrderedHashSet<TableDerived> getSubqueries()
getUnionColumnsback to summary
private OrderedHashMap<String, ColumnSchema> getUnionColumns()
getUnresolvedExpressionsback to summary
public List<Expression> getUnresolvedExpressions()
getValueback to summary
public Object getValue(Session session)
getValuesback to summary
public Object[] getValues(Session session)
hasReferenceback to summary
public boolean hasReference(RangeVariable range)
isEquivalentback to summary
pack-priv boolean isEquivalent(QueryExpression other)
isInsertableback to summary
public boolean isInsertable()
isRecursiveback to summary
public boolean isRecursive()
isSingleColumnback to summary
public boolean isSingleColumn()
isUpdatableback to summary
public boolean isUpdatable()
isVariableback to summary
public boolean isVariable()

Implements org.hsqldb.RangeGroup.isVariable.

replaceColumnReferencesback to summary
public void replaceColumnReferences(Session session, RangeVariable range, Expression[] list)
replaceExpressionsback to summary
public void replaceExpressions(OrderedHashSet<Expression> expressions, int resultRangePosition)

non-working temp code for replacing aggregate functions with simple column

replaceRangeVariablesback to summary
public void replaceRangeVariables(RangeVariable[] ranges, RangeVariable[] newRanges)
resolveback to summary
public void resolve(Session session)
resolveback to summary
public void resolve(Session session, RangeGroup[] rangeGroups, Type[] targetTypes)
resolveColumnReferencesInUnionOrderByback to summary
pack-priv void resolveColumnReferencesInUnionOrderBy()

Only simple column reference or column position allowed

resolveReferencesback to summary
public void resolveReferences(Session session, RangeGroup[] rangeGroups)
resolveTypesback to summary
public void resolveTypes(Session session)
resolveTypesPartOneback to summary
pack-priv void resolveTypesPartOne(Session session)
resolveTypesPartThreeback to summary
pack-priv void resolveTypesPartThree(Session session)
resolveTypesPartTwoback to summary
pack-priv void resolveTypesPartTwo(Session session)
resolveTypesPartTwoRecursiveback to summary
pack-priv void resolveTypesPartTwoRecursive(Session session)
setAsExistsback to summary
public void setAsExists()
setColumnsDefinedback to summary
public void setColumnsDefined()
setCorrelatedback to summary
public void setCorrelated()

Implements org.hsqldb.RangeGroup.setCorrelated.

setFullOrderback to summary
public void setFullOrder()
setLowerCaseResultIdentiferback to summary
public void setLowerCaseResultIdentifer()
setRecursiveQuerySettingsback to summary
public void setRecursiveQuerySettings(QueryExpression.RecursiveQuerySettings settings)
setReturningResultback to summary
public void setReturningResult()

Not for views. Only used on root node.

setReturningResultSetback to summary
pack-priv void setReturningResultSet()

Sets the scope to SESSION for the QueryExpression object that creates the table

setSingleRowback to summary
public void setSingleRow()
setTableColumnNamesback to summary
public void setTableColumnNames(OrderedHashMap<String, ColumnSchema> list)

Used in views after full type resolution

setUnionCorresopondingback to summary
public void setUnionCorresoponding()
setUnionCorrespondingColumnsback to summary
public void setUnionCorrespondingColumns(OrderedHashSet<String> names)
setViewback to summary
public void setView(View view)

Used prior to type resolution

org.hsqldb back to summary

pack-priv Class QueryExpression.RecursiveQuerySettings

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv static final int
pack-priv int
pack-priv ColumnSchema
pack-priv int[]
pack-priv ColumnSchema
pack-priv String
pack-priv ColumnSchema
pack-priv static final int
pack-priv static final int
pack-priv String
pack-priv static final int
pack-priv ColumnSchema
pack-priv SortAndSlice
pack-priv int

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

breadthFirstback to summary
pack-priv static final int breadthFirst
cycleback to summary
pack-priv int cycle
cycleColumnFirstback to summary
pack-priv ColumnSchema cycleColumnFirst
cycleColumnListback to summary
pack-priv int[] cycleColumnList
cycleMarkColumnback to summary
pack-priv ColumnSchema cycleMarkColumn
cycleMarkValueback to summary
pack-priv String cycleMarkValue
cyclePathColumnback to summary
pack-priv ColumnSchema cyclePathColumn
depthFirstback to summary
pack-priv static final int depthFirst
findCycleback to summary
pack-priv static final int findCycle
noCycleMarkValueback to summary
pack-priv String noCycleMarkValue
noneback to summary
pack-priv static final int none
searchOrderSetColumnback to summary
pack-priv ColumnSchema searchOrderSetColumn
searchOrderSortback to summary
pack-priv SortAndSlice searchOrderSort
searchOrderTypeback to summary
pack-priv int searchOrderType

Constructor Detail

RecursiveQuerySettingsback to summary
pack-priv RecursiveQuerySettings()