## org.h2.command.dml
Class SelectUnion

    java.lang.Object
      org.h2.command.Prepared
          org.h2.command.dml.Query
              org.h2.command.dml.SelectUnion

    public class SelectUnion

extends Query

Represents a union SELECT statement.

Field Summary
`static int` `EXCEPT` The type of an EXCEPT statement.
`static int` `INTERSECT` The type of an INTERSECT statement.
`static int` `UNION` The type of a UNION statement.
`static int` `UNION_ALL` The type of a UNION ALL statement.

Fields inherited from class org.h2.command.dml.Query
`distinct, limitExpr, offsetExpr, randomAccessResult, sampleSizeExpr`

Fields inherited from class org.h2.command.Prepared
`create, parameters, prepareAlways, session, sqlStatement`

Constructor Summary
`SelectUnion(Session session, Query query)`

Method Summary
`void` `addGlobalCondition(Parameter param, int columnId, int comparisonType)` Add a condition to the query.
`boolean` `allowGlobalConditions()` Check whether adding condition to the query is allowed.
`void` `fireBeforeSelectTriggers()` Call the before triggers on all tables.
`int` `getColumnCount()` Get the column count of this query.
`double` `getCost()` Calculate the cost to execute this query.
`LocalResult` `getEmptyResult()`
`java.util.ArrayList<Expression>` `getExpressions()` The the list of select expressions.
`Query` `getLeft()`
`java.lang.String` `getPlanSQL()` Get the SQL statement with the execution plan.
`Query` `getRight()`
`java.util.HashSet<Table>` `getTables()` Get all tables that are involved in this query.
`int` `getType()` Get the command type as defined in CommandInterface
`int` `getUnionType()`
`void` `init()` Initialize the query.
`boolean` `isEverything(ExpressionVisitor visitor)` Check if this expression and all sub-expressions can fulfill a criteria.
`boolean` `isReadOnly()` Check if this command is read only.
`void` `mapColumns(ColumnResolver resolver, int level)` Map the columns to the given column resolver.
`void` `prepare()` Prepare this statement.
`LocalResult` `query(int limit, ResultTarget target)` Execute the query, writing the result to the target result.
`ResultInterface` `queryMeta()` Get an empty result set containing the meta data.
`protected LocalResult` `queryWithoutCache(int maxRows, ResultTarget target)` Execute the query without checking the cache.
`void` `setEvaluatable(TableFilter tableFilter, boolean b)` Change the evaluatable flag.
`void` `setForUpdate(boolean forUpdate)` Set the 'for update' flag.
`void` `setOrder(java.util.ArrayList<SelectOrderBy> order)` Set the order by list.
`void` `setRight(Query select)`
`void` `setSQL(java.lang.String sql)` Set the SQL statement.
`void` `setUnionType(int type)`
`void` `updateAggregate(Session s)` Update all aggregate function values.

Methods inherited from class org.h2.command.dml.Query
`disableCache, getCostAsExpression, getLimit, getMaxDataModificationId, getOffset, getParameterValues, isDistinct, isQuery, isTransactional, prepareOrder, query, setDistinct, setLimit, setOffset, setRandomAccessResult, setSampleSize`

Methods inherited from class org.h2.command.Prepared
`checkCanceled, checkParameters, getCurrentObjectId, getCurrentRowNumber, getObjectId, getParameters, getSQL, getSQL, getSQL, isCacheable, needRecompile, setCommand, setCurrentRowNumber, setObjectId, setParameterList, setPrepareAlways, setRow, setSession, toString, update`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### UNION

    public static final int UNION

  The type of a UNION statement.

  See Also:
    Constant Field Values

### UNION_ALL

    public static final int UNION_ALL

  The type of a UNION ALL statement.

  See Also:
    Constant Field Values

### EXCEPT

    public static final int EXCEPT

  The type of an EXCEPT statement.

  See Also:
    Constant Field Values

### INTERSECT

    public static final int INTERSECT

  The type of an INTERSECT statement.

  See Also:
    Constant Field Values

Constructor Detail

### SelectUnion

    public SelectUnion(Session session,
                       Query query)

Method Detail

### setUnionType

    public void setUnionType(int type)

### getUnionType

    public int getUnionType()

### setRight

    public void setRight(Query select)

### getLeft

    public Query getLeft()

### getRight

    public Query getRight()

### setSQL

    public void setSQL(java.lang.String sql)

  Description copied from class: `Prepared`
  Set the SQL statement.

  Overrides:
    `setSQL` in class `Prepared`
  Parameters:
    `sql` - the SQL statement

### setOrder

    public void setOrder(java.util.ArrayList<SelectOrderBy> order)

  Description copied from class: `Query`
  Set the order by list.

  Specified by:
    `setOrder` in class `Query`
  Parameters:
    `order` - the order by list

### queryMeta

    public ResultInterface queryMeta()

  Description copied from class: `Prepared`
  Get an empty result set containing the meta data.

  Specified by:
    `queryMeta` in class `Prepared`
  Returns:
    the result set

### getEmptyResult

    public LocalResult getEmptyResult()

### queryWithoutCache

    protected LocalResult queryWithoutCache(int maxRows,
                                            ResultTarget target)

  Description copied from class: `Query`
  Execute 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:
    `queryWithoutCache` in class `Query`
  Parameters:
    `maxRows` - the limit as specified in the JDBC method call
    `target` - the target to write results to
  Returns:
    the result

### init

    public void init()

  Description copied from class: `Query`
  Initialize the query.

  Specified by:
    `init` in class `Query`

### prepare

    public void prepare()

  Description copied from class: `Prepared`
  Prepare this statement.

  Overrides:
    `prepare` in class `Prepared`

### getCost

    public double getCost()

  Description copied from class: `Query`
  Calculate the cost to execute this query.

  Specified by:
    `getCost` in class `Query`
  Returns:
    the cost

### getTables

    public java.util.HashSet<Table> getTables()

  Description copied from class: `Query`
  Get all tables that are involved in this query.

  Specified by:
    `getTables` in class `Query`
  Returns:
    the set of tables

### getExpressions

    public java.util.ArrayList<Expression> getExpressions()

  Description copied from class: `Query`
  The the list of select expressions. This may include invisible expressions such as order by expressions.

  Specified by:
    `getExpressions` in class `Query`
  Returns:
    the list of expressions

### setForUpdate

    public void setForUpdate(boolean forUpdate)

  Description copied from class: `Query`
  Set the 'for update' flag.

  Specified by:
    `setForUpdate` in class `Query`
  Parameters:
    `forUpdate` - the new setting

### getColumnCount

    public int getColumnCount()

  Description copied from class: `Query`
  Get the column count of this query.

  Specified by:
    `getColumnCount` in class `Query`
  Returns:
    the column count

### mapColumns

    public void mapColumns(ColumnResolver resolver,
                           int level)

  Description copied from class: `Query`
  Map the columns to the given column resolver.

  Specified by:
    `mapColumns` in class `Query`
  Parameters:
    `resolver` - the resolver
    `level` - the subquery level (0 is the top level query, 1 is the first subquery level)

### setEvaluatable

    public void setEvaluatable(TableFilter tableFilter,
                               boolean b)

  Description copied from class: `Query`
  Change the evaluatable flag. This is used when building the execution plan.

  Specified by:
    `setEvaluatable` in class `Query`
  Parameters:
    `tableFilter` - the table filter
    `b` - the new value

### addGlobalCondition

    public void addGlobalCondition(Parameter param,
                                   int columnId,
                                   int comparisonType)

  Description copied from class: `Query`
  Add a condition to the query. This is used for views.

  Specified by:
    `addGlobalCondition` in class `Query`
  Parameters:
    `param` - the parameter
    `columnId` - the column index (0 meaning the first column)
    `comparisonType` - the comparison type

### getPlanSQL

    public java.lang.String getPlanSQL()

  Description copied from class: `Prepared`
  Get the SQL statement with the execution plan.

  Overrides:
    `getPlanSQL` in class `Prepared`
  Returns:
    the execution plan

### query

    public LocalResult query(int limit,
                             ResultTarget target)

  Description copied from class: `Query`
  Execute the query, writing the result to the target result.

  Parameters:
    `limit` - the maximum number of rows to return
    `target` - the target result (null will return the result)
  Returns:
    the result set (if the target is not set).

### isEverything

    public boolean isEverything(ExpressionVisitor visitor)

  Description copied from class: `Query`
  Check if this expression and all sub-expressions can fulfill a criteria. If any part returns false, the result is false.

  Specified by:
    `isEverything` in class `Query`
  Parameters:
    `visitor` - the visitor
  Returns:
    if the criteria can be fulfilled

### isReadOnly

    public boolean isReadOnly()

  Description copied from class: `Prepared`
  Check if this command is read only.

  Overrides:
    `isReadOnly` in class `Prepared`
  Returns:
    true if it is

### updateAggregate

    public void updateAggregate(Session s)

  Description copied from class: `Query`
  Update all aggregate function values.

  Specified by:
    `updateAggregate` in class `Query`
  Parameters:
    `s` - the session

### fireBeforeSelectTriggers

    public void fireBeforeSelectTriggers()

  Description copied from class: `Query`
  Call the before triggers on all tables.

  Specified by:
    `fireBeforeSelectTriggers` in class `Query`

### getType

    public int getType()

  Description copied from class: `Prepared`
  Get the command type as defined in CommandInterface

  Specified by:
    `getType` in class `Prepared`
  Returns:
    the statement type

### allowGlobalConditions

    public boolean allowGlobalConditions()

  Description copied from class: `Query`
  Check 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:
    `allowGlobalConditions` in class `Query`
  Returns:
    true if adding global conditions is allowed