|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectorg.h2.command.Prepared
org.h2.command.dml.Query
org.h2.command.dml.Select
public class Select
This class represents a simple SELECT statement. For each select statement, visibleColumnCount <= distinctColumnCount <= expressionCount. The expression list count could include ORDER BY and GROUP BY expressions that are not in the select list. The call sequence is init(), mapColumns() if it's a subquery, prepare().
| Field Summary |
|---|
| 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 | |
|---|---|
Select(Session session)
|
|
| Method Summary | |
|---|---|
void |
addCondition(Expression cond)
Add a condition to the list of conditions. |
void |
addGlobalCondition(Parameter param,
int columnId,
int comparisonType)
Add a condition to the query. |
void |
addTableFilter(TableFilter filter,
boolean isTop)
Add a table 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. |
java.util.HashMap<Expression,java.lang.Object> |
getCurrentGroup()
|
int |
getCurrentGroupRowId()
|
java.util.ArrayList<Expression> |
getExpressions()
The the list of select expressions. |
java.lang.String |
getPlanSQL()
Get the SQL statement with the execution plan. |
java.util.HashSet<Table> |
getTables()
Get all tables that are involved in this query. |
java.util.ArrayList<TableFilter> |
getTopFilters()
|
TableFilter |
getTopTableFilter()
|
int |
getType()
Get the command type as defined in CommandInterface |
void |
init()
Initialize the query. |
boolean |
isCacheable()
|
boolean |
isEverything(ExpressionVisitor visitor)
Check if this expression and all sub-expressions can fulfill a criteria. |
boolean |
isQuickAggregateQuery()
Check if this is an aggregate query with direct lookup, for example a query of the type SELECT COUNT(*) FROM TEST or SELECT MAX(ID) FROM TEST. |
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 |
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 |
setExpressions(java.util.ArrayList<Expression> expressions)
|
void |
setForUpdate(boolean b)
Set the 'for update' flag. |
void |
setGroupBy(java.util.ArrayList<Expression> group)
|
void |
setGroupQuery()
Called if this query contains aggregate functions. |
void |
setHaving(Expression having)
|
void |
setOrder(java.util.ArrayList<SelectOrderBy> order)
Set the order by list. |
void |
updateAggregate(Session s)
Update all aggregate function values. |
| Methods inherited from class org.h2.command.dml.Query |
|---|
getCostAsExpression, getMaxDataModificationId, getParameterValues, isQuery, isTransactional, prepareOrder, query, setLimit, setOffset, setSampleSize |
| Methods inherited from class org.h2.command.Prepared |
|---|
checkCanceled, checkParameters, getCurrentObjectId, getCurrentRowNumber, getObjectId, getParameters, getSQL, getSQL, getSQL, needRecompile, setCommand, setCurrentRowNumber, setObjectId, setParameterList, setPrepareAlways, setRow, setSession, setSQL, toString, update |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public Select(Session session)
| Method Detail |
|---|
public void addTableFilter(TableFilter filter,
boolean isTop)
filter - the table to addisTop - if the table can be the first table in the query planpublic java.util.ArrayList<TableFilter> getTopFilters()
public void setExpressions(java.util.ArrayList<Expression> expressions)
public void setGroupQuery()
public void setGroupBy(java.util.ArrayList<Expression> group)
public java.util.HashMap<Expression,java.lang.Object> getCurrentGroup()
public int getCurrentGroupRowId()
public void setOrder(java.util.ArrayList<SelectOrderBy> order)
Query
setOrder in class Queryorder - the order by listpublic void addCondition(Expression cond)
cond - the condition to addpublic ResultInterface queryMeta()
Prepared
queryMeta in class Prepared
protected LocalResult queryWithoutCache(int maxRows,
ResultTarget target)
Query
queryWithoutCache in class QuerymaxRows - the limit as specified in the JDBC method calltarget - the target to write results to
public void init()
Query
init in class Querypublic void prepare()
Prepared
prepare in class Preparedpublic double getCost()
Query
getCost in class Querypublic java.util.HashSet<Table> getTables()
Query
getTables in class Querypublic void fireBeforeSelectTriggers()
Query
fireBeforeSelectTriggers in class Querypublic java.lang.String getPlanSQL()
Prepared
getPlanSQL in class Preparedpublic void setDistinct(boolean b)
Query
setDistinct in class Queryb - the new valuepublic void setHaving(Expression having)
public int getColumnCount()
Query
getColumnCount in class Querypublic TableFilter getTopTableFilter()
public java.util.ArrayList<Expression> getExpressions()
Query
getExpressions in class Querypublic void setForUpdate(boolean b)
Query
setForUpdate in class Queryb - the new setting
public void mapColumns(ColumnResolver resolver,
int level)
Query
mapColumns in class Queryresolver - the resolverlevel - the subquery level (0 is the top level query, 1 is the first
subquery level)
public void setEvaluatable(TableFilter tableFilter,
boolean b)
Query
setEvaluatable in class QuerytableFilter - the table filterb - the new valuepublic boolean isQuickAggregateQuery()
public void addGlobalCondition(Parameter param,
int columnId,
int comparisonType)
Query
addGlobalCondition in class Queryparam - the parametercolumnId - the column index (0 meaning the first column)comparisonType - the comparison typepublic void updateAggregate(Session s)
Query
updateAggregate in class Querys - the sessionpublic boolean isEverything(ExpressionVisitor visitor)
Query
isEverything in class Queryvisitor - the visitor
public boolean isReadOnly()
Prepared
isReadOnly in class Preparedpublic boolean isCacheable()
isCacheable in class Preparedpublic int getType()
Prepared
getType in class Prepared
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||