Class SelectUnion
java.lang.Object
org.h2.command.Prepared
org.h2.command.query.Query
org.h2.command.query.SelectUnion
Represents a union SELECT statement.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final classLazy execution for this union.static enumNested classes/interfaces inherited from class Query
Query.OffsetFetch -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean(package private) final QueryThe left hand side of the union (the first subquery).(package private) final QueryThe right hand side of the union (the second subquery).private final SelectUnion.UnionTypeFields inherited from class Query
checkInit, distinct, expressionArray, expressions, fetchExpr, fetchPercent, isPrepared, offsetExpr, orderList, randomAccessResult, resultColumnCount, sort, visibleColumnCount, withTiesFields inherited from class Prepared
create, parameters, prepareAlways, session, sqlStatement, sqlTokens -
Constructor Summary
ConstructorsConstructorDescriptionSelectUnion(SessionLocal session, SelectUnion.UnionType unionType, Query query, Query right) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddGlobalCondition(Parameter param, int columnId, int comparisonType) Add a condition to the query.booleanCheck whether adding condition to the query is allowed.private Value[]private LocalResultcreateLocalResult(int columnCount) voidCall the before triggers on all tables.doublegetCost()Calculate the cost to execute this query.getLeft()getPlanSQL(int sqlFlags) Get the SQL statement with the execution plan.getRight()Get all tables that are involved in this query.voidinit()Initialize the query.booleanCheck if this query will always return the same value and has no side effects.booleanisEverything(ExpressionVisitor visitor) Check if this expression and all sub-expressions can fulfill a criteria.booleanisUnion()Check if this is a UNION query.voidmapColumns(ColumnResolver resolver, int level) Map the columns to the given column resolver.voidprepare()Prepare this statement.protected ResultInterfacequeryWithoutCache(long maxRows, ResultTarget target) Execute the query without checking the cache.voidsetEvaluatable(TableFilter tableFilter, boolean b) Change the evaluatable flag.voidsetForUpdate(boolean forUpdate) Set the 'for update' flag.voidupdateAggregate(SessionLocal s, int stage) Update all aggregate function values.Methods inherited from class Query
addParameter, appendEndOfQueryToSQL, cleanupOrder, collectDependencies, convertToDistinct, disableCache, exists, finishResult, getColumnCount, getCostAsExpression, getExpressions, getFetch, getIfSingleRow, getMaxDataModificationId, getOffset, getOffsetFetch, getRowDataType, getType, hasOrder, initExpression, initOrder, isAnyDistinct, isFetchPercent, isNeverLazy, isQuery, isRandomAccessResult, isReadOnly, isStandardDistinct, isTransactional, isWithTies, prepareOrder, query, query, queryMeta, setDistinctIfPossible, setFetch, setFetchPercent, setNeverLazy, setOffset, setOrder, setRandomAccessResult, setWithTies, toTableMethods inherited from class Prepared
checkCanceled, checkParameters, getCteCleanups, getCurrentRowNumber, getObjectId, getParameters, getPersistedObjectId, getSession, getSimpleSQL, getSQL, getSQLTokens, isCacheable, needRecompile, setCommand, setCteCleanups, setCurrentRowNumber, setParameterList, setPersistedObjectId, setPrepareAlways, setRow, setSession, setSQL, toString, update
-
Field Details
-
unionType
-
left
The left hand side of the union (the first subquery). -
right
The right hand side of the union (the second subquery). -
isForUpdate
private boolean isForUpdate
-
-
Constructor Details
-
SelectUnion
-
-
Method Details
-
isUnion
-
getUnionType
-
getLeft
-
getRight
-
convert
-
getEmptyResult
-
queryWithoutCache
Description copied from class:QueryExecute the query without checking the cache. If a target is specified, the results are written to it, and the method returns null. If no target is specified, a new LocalResult is created and returned.- Specified by:
queryWithoutCachein classQuery- Parameters:
maxRows- the limit as specified in the JDBC method calltarget- the target to write results to- Returns:
- the result
-
createLocalResult
-
init
-
prepare
-
getCost
-
getTables
-
setForUpdate
public void setForUpdate(boolean forUpdate) Description copied from class:QuerySet the 'for update' flag.- Specified by:
setForUpdatein classQuery- Parameters:
forUpdate- the new setting
-
mapColumns
Description copied from class:QueryMap the columns to the given column resolver.- Specified by:
mapColumnsin classQuery- Parameters:
resolver- the resolverlevel- the subquery level (0 is the top level query, 1 is the first subquery level)
-
setEvaluatable
Description copied from class:QueryChange the evaluatable flag. This is used when building the execution plan.- Specified by:
setEvaluatablein classQuery- Parameters:
tableFilter- the table filterb- the new value
-
addGlobalCondition
Description copied from class:QueryAdd a condition to the query. This is used for views.- Specified by:
addGlobalConditionin classQuery- Parameters:
param- the parametercolumnId- the column index (0 meaning the first column)comparisonType- the comparison type
-
getPlanSQL
Description copied from class:PreparedGet the SQL statement with the execution plan.- Overrides:
getPlanSQLin classPrepared- Parameters:
sqlFlags- formatting flags- Returns:
- the execution plan
-
isEverything
Description copied from class:QueryCheck if this expression and all sub-expressions can fulfill a criteria. If any part returns false, the result is false.- Specified by:
isEverythingin classQuery- Parameters:
visitor- the visitor- Returns:
- if the criteria can be fulfilled
-
updateAggregate
Description copied from class:QueryUpdate all aggregate function values.- Specified by:
updateAggregatein classQuery- Parameters:
s- the sessionstage- select stage
-
fireBeforeSelectTriggers
public void fireBeforeSelectTriggers()Description copied from class:QueryCall the before triggers on all tables.- Specified by:
fireBeforeSelectTriggersin classQuery
-
allowGlobalConditions
public boolean allowGlobalConditions()Description copied from class:QueryCheck whether adding condition to the query is allowed. This is not allowed for views that have an order by and a limit, as it would affect the returned results.- Specified by:
allowGlobalConditionsin classQuery- Returns:
- true if adding global conditions is allowed
-
isConstantQuery
public boolean isConstantQuery()Description copied from class:QueryCheck if this query will always return the same value and has no side effects.- Overrides:
isConstantQueryin classQuery- Returns:
- if this query will always return the same value and has no side effects.
-