public abstract class Query extends Prepared
create, parameters, prepareAlways, session, sqlStatement| Modifier and Type | Method and Description |
|---|---|
abstract void |
addGlobalCondition(Parameter param,
int columnId,
int comparisonType)
Add a condition to the query.
|
abstract boolean |
allowGlobalConditions()
Check whether adding condition to the query is allowed.
|
void |
disableCache()
Disable caching of result sets.
|
abstract void |
fireBeforeSelectTriggers()
Call the before triggers on all tables.
|
abstract int |
getColumnCount()
Get the column count of this query.
|
abstract double |
getCost()
Calculate the cost to execute this query.
|
int |
getCostAsExpression()
Calculate the cost when used as a subquery.
|
java.util.ArrayList<Expression> |
getExpressions()
The the list of select expressions.
|
Expression |
getLimit() |
long |
getMaxDataModificationId() |
Expression |
getOffset() |
abstract java.util.HashSet<Table> |
getTables()
Get all tables that are involved in this query.
|
int |
getType()
Get the command type as defined in CommandInterface
|
boolean |
hasOrder()
Whether the query has an order.
|
abstract void |
init()
Initialize the query.
|
boolean |
isAnyDistinct() |
abstract boolean |
isEverything(ExpressionVisitor visitor)
Check if this expression and all sub-expressions can fulfill a criteria.
|
boolean |
isFetchPercent() |
boolean |
isNeverLazy() |
boolean |
isQuery()
Check if this object is a query.
|
boolean |
isRandomAccessResult()
Returns whether results support random access.
|
boolean |
isStandardDistinct() |
boolean |
isTransactional()
Check if this command is transactional.
|
abstract boolean |
isUnion()
Check if this is a UNION query.
|
boolean |
isWithTies() |
abstract void |
mapColumns(ColumnResolver resolver,
int level)
Map the columns to the given column resolver.
|
abstract void |
prepareJoinBatch()
Prepare join batching.
|
SortOrder |
prepareOrder(java.util.ArrayList<SelectOrderBy> orderList,
int expressionCount)
Create a
SortOrder object given the list of SelectOrderBy
objects. |
ResultInterface |
query(int maxrows)
Execute the query.
|
ResultInterface |
query(int limit,
ResultTarget target)
Execute the query, writing the result to the target result.
|
protected abstract ResultInterface |
queryWithoutCache(int limit,
ResultTarget target)
Execute the query without checking the cache.
|
void |
setDistinct()
Set the distinct flag.
|
abstract void |
setDistinctIfPossible()
Set the distinct flag only if it is possible, may be used as a possible
optimization only.
|
abstract void |
setEvaluatable(TableFilter tableFilter,
boolean b)
Change the evaluatable flag.
|
void |
setFetchPercent(boolean fetchPercent) |
abstract void |
setForUpdate(boolean forUpdate)
Set the 'for update' flag.
|
void |
setLimit(Expression limit) |
void |
setNeverLazy(boolean b) |
void |
setOffset(Expression offset) |
void |
setOrder(java.util.ArrayList<SelectOrderBy> order)
Set the order by list.
|
void |
setRandomAccessResult(boolean b)
Whether results need to support random access.
|
void |
setSampleSize(Expression sampleSize) |
void |
setWithTies(boolean withTies) |
abstract void |
updateAggregate(Session s,
int stage)
Update all aggregate function values.
|
checkCanceled, checkParameters, getCteCleanups, getCurrentRowNumber, getObjectId, getParameters, getPersistedObjectId, getPlanSQL, getSession, getSimpleSQL, getSQL, getSQL, isCacheable, isReadOnly, needRecompile, prepare, queryMeta, setCommand, setCteCleanups, setCurrentRowNumber, setParameterList, setPersistedObjectId, setPrepareAlways, setRow, setSession, setSQL, toString, updatepublic void setNeverLazy(boolean b)
public boolean isNeverLazy()
public abstract boolean isUnion()
true if this is a UNION querypublic abstract void prepareJoinBatch()
protected abstract ResultInterface queryWithoutCache(int limit, ResultTarget target)
limit - the limit as specified in the JDBC method calltarget - the target to write results topublic abstract void init()
public java.util.ArrayList<Expression> getExpressions()
public abstract double getCost()
public int getCostAsExpression()
public abstract java.util.HashSet<Table> getTables()
public void setOrder(java.util.ArrayList<SelectOrderBy> order)
order - the order by listpublic boolean hasOrder()
public abstract void setForUpdate(boolean forUpdate)
forUpdate - the new settingpublic abstract int getColumnCount()
public abstract void mapColumns(ColumnResolver resolver, int level)
resolver - the resolverlevel - the subquery level (0 is the top level query, 1 is the first
subquery level)public abstract void setEvaluatable(TableFilter tableFilter, boolean b)
tableFilter - the table filterb - the new valuepublic abstract void addGlobalCondition(Parameter param, int columnId, int comparisonType)
param - the parametercolumnId - the column index (0 meaning the first column)comparisonType - the comparison typepublic abstract boolean allowGlobalConditions()
public abstract boolean isEverything(ExpressionVisitor visitor)
visitor - the visitorpublic abstract void updateAggregate(Session s, int stage)
s - the sessionstage - select stagepublic abstract void fireBeforeSelectTriggers()
public void setDistinct()
public abstract void setDistinctIfPossible()
public boolean isStandardDistinct()
DISTINCT querypublic boolean isAnyDistinct()
DISTINCT or
DISTINCT ON (...) querypublic boolean isRandomAccessResult()
public void setRandomAccessResult(boolean b)
b - the new valuepublic boolean isQuery()
Preparedpublic boolean isTransactional()
PreparedisTransactional in class Preparedpublic void disableCache()
public final ResultInterface query(int maxrows)
Preparedpublic final ResultInterface query(int limit, ResultTarget target)
limit - the maximum number of rows to returntarget - the target result (null will return the result)public SortOrder prepareOrder(java.util.ArrayList<SelectOrderBy> orderList, int expressionCount)
SortOrder object given the list of SelectOrderBy
objects.orderList - a list of SelectOrderBy elementsexpressionCount - the number of columns in the querySortOrder objectpublic int getType()
Preparedpublic void setOffset(Expression offset)
public Expression getOffset()
public void setLimit(Expression limit)
public Expression getLimit()
public void setFetchPercent(boolean fetchPercent)
public boolean isFetchPercent()
public void setWithTies(boolean withTies)
public boolean isWithTies()
public void setSampleSize(Expression sampleSize)
public final long getMaxDataModificationId()