org.h2.command.dml
Class SelectUnion

java.lang.Object
  extended by org.h2.command.Prepared
      extended by org.h2.command.dml.Query
          extended by 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
limitExpr, offsetExpr, sampleSize
 
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.
 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.
 ResultInterface 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 setDistinct(boolean b)
          Set the distinct flag.
 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
getMaxDataModificationId, getParameterValues, isEverything, isQuery, isTransactional, prepareOrder, query, setLimit, setOffset, 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

setDistinct

public void setDistinct(boolean b)
Description copied from class: Query
Set the distinct flag.

Specified by:
setDistinct in class Query
Parameters:
b - the new value

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 ResultInterface query(int limit,
                             ResultTarget target)
Description copied from class: Query
Execute the query, writing the result to the target result.

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