Optimizable
, Visitable
class ProjectRestrictNode extends SingleChildResultSetNode
ResultSetNode.QueryExpressionClauses
Modifier and Type | Field | Description |
---|---|---|
private boolean |
accessPathModified |
|
(package private) ValueNode |
constantRestriction |
Constant expressions to be evaluated here.
|
private boolean |
getTableNumberHere |
|
(package private) SubqueryList |
projectSubquerys |
List of subqueries in projection
|
(package private) ValueNode |
restriction |
The ValueNode for the restriction to be evaluated here.
|
(package private) PredicateList |
restrictionList |
Restriction as a PredicateList
|
(package private) SubqueryList |
restrictSubquerys |
List of subqueries in restriction
|
private java.lang.String |
validatingBaseTableUUIDString |
|
private boolean |
validatingCheckConstraints |
Used with
validatingBaseTableCID to validating deferred check
constraints. |
ADD_PLAN, bestAccessPath, bestCostEstimate, bestSortAvoidancePath, correlationName, corrTableName, currentAccessPath, hashKeyColumns, initialCapacity, level, LOAD_PLAN, loadFactor, maxCapacity, origTableName, REMOVE_PLAN, tableNumber, tableProperties, trulyTheBestAccessPath, userSpecifiedJoinStrategy
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_CYCLE, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX
childResult, hasTrulyTheBestAccessPath
Constructor | Description |
---|---|
ProjectRestrictNode(ResultSetNode childResult,
ResultColumnList projection,
ValueNode restriction,
PredicateList restrictionList,
SubqueryList projectSubquerys,
SubqueryList restrictSubquerys,
java.util.Properties tableProperties,
ContextManager cm) |
Constructor for a ProjectRestrictNode.
|
Modifier and Type | Method | Description |
---|---|---|
(package private) void |
acceptChildren(Visitor v) |
Accept the visitor for all visitable children of this node.
|
(package private) ResultSetNode |
addNewPredicate(Predicate predicate) |
Add a new predicate to the list.
|
(package private) ResultSetNode |
considerMaterialization(JBitSet outerTables) |
Consider materialization for this ResultSet tree if it is valid and cost effective
(It is not valid if incorrect results would be returned.)
|
boolean |
considerSortAvoidancePath() |
Check whether this optimizable's sort avoidance path should
be considered.
|
(package private) ResultSetNode |
ensurePredicateList(int numTables) |
Ensure that the top of the RSN tree has a PredicateList.
|
boolean |
feasibleJoinStrategy(OptimizablePredicateList predList,
Optimizer optimizer) |
Is the current proposed join strategy for this optimizable feasible
given the predicate list?
|
(package private) boolean |
flattenableInFromSubquery(FromList fromList) |
Evaluate whether or not the subquery in a FromSubquery is flattenable.
|
(package private) void |
generate(ActivationClassBuilder acb,
MethodBuilder mb) |
For joins, the tree will be (nodes are left out if the clauses
are empty):
ProjectRestrictResultSet -- for the having and the select list
SortResultSet -- for the group by list
ProjectRestrictResultSet -- for the where and the select list (if no group or having)
the result set for the fromList
|
private void |
generateMinion(ExpressionClassBuilder acb,
MethodBuilder mb,
boolean genChildResultSet) |
Logic shared by generate() and generateResultSet().
|
(package private) void |
generateNOPProjectRestrict() |
Bypass the generation of this No-Op ProjectRestrict, and just generate
its child result set.
|
(package private) void |
generateResultSet(ExpressionClassBuilder acb,
MethodBuilder mb) |
General logic shared by Core compilation.
|
AccessPath |
getBestAccessPath() |
Get the best access path for this Optimizable.
|
AccessPath |
getBestSortAvoidancePath() |
Get the best sort-avoidance path for this Optimizable.
|
(package private) CostEstimate |
getCostEstimate() |
Get the CostEstimate for this ProjectRestrictNode.
|
AccessPath |
getCurrentAccessPath() |
Get the current access path under consideration for this Optimizable
|
(package private) CostEstimate |
getFinalCostEstimate() |
Get the final CostEstimate for this ProjectRestrictNode.
|
(package private) FromTable |
getFromTableByName(java.lang.String name,
java.lang.String schemaName,
boolean exactMatch) |
Determine whether or not the specified name is an exposed name in
the current query block.
|
(package private) PredicateList |
getRestrictionList() |
Return the restriction list from this node.
|
int |
getTableNumber() |
Get this Optimizable's table number
|
AccessPath |
getTrulyTheBestAccessPath() |
Get the best access path overall for this Optimizable.
|
(package private) java.lang.String |
getUserSpecifiedJoinStrategy() |
Return the user specified join strategy, if any for this table.
|
(package private) boolean |
isPossibleDistinctScan(java.util.Set<BaseColumnNode> distinctColumns) |
Is it possible to do a distinct scan on this ResultSet tree.
|
boolean |
legalJoinOrder(JBitSet assignedTableMap) |
Can this Optimizable appear at the current location in the join order.
|
(package private) void |
markForDistinctScan() |
Mark the underlying scan as a distinct scan.
|
Optimizable |
modifyAccessPath(JBitSet outerTables) |
Modify the access path for this Optimizable, as necessary.
|
boolean |
nextAccessPath(Optimizer optimizer,
OptimizablePredicateList predList,
RowOrdering rowOrdering) |
Choose the next access path to evaluate for this Optimizable.
|
(package private) boolean |
nopProjectRestrict() |
Determine whether this ProjectRestrict does anything.
|
(package private) ResultSetNode |
optimize(DataDictionary dataDictionary,
PredicateList predicates,
double outerRows) |
Optimize this ProjectRestrictNode.
|
CostEstimate |
optimizeIt(Optimizer optimizer,
OptimizablePredicateList predList,
CostEstimate outerCost,
RowOrdering rowOrdering) |
Choose the best access path for this Optimizable.
|
(package private) ResultSetNode |
preprocess(int numTables,
GroupByList gbl,
FromList fromList) |
Put a ProjectRestrictNode on top of each FromTable in the FromList.
|
(package private) void |
printSubNodes(int depth) |
Prints the sub-nodes of this object.
|
void |
pullOptPredicates(OptimizablePredicateList optimizablePredicates) |
Pull all the OptimizablePredicates from this Optimizable and put them
in the given OptimizablePredicateList.
|
(package private) void |
pushExpressions(PredicateList predicateList) |
Push expressions down to the first ResultSetNode which can do expression
evaluation and has the same referenced table map.
|
(package private) void |
pushOffsetFetchFirst(ValueNode offset,
ValueNode fetchFirst,
boolean hasJDBClimitClause) |
Push down the offset and fetch first parameters, if any, to the
underlying child result set.
|
boolean |
pushOptPredicate(OptimizablePredicate optimizablePredicate) |
Push an OptimizablePredicate down, if this node accepts it.
|
(package private) void |
pushOrderByList(OrderByList orderByList) |
Push the order by list down from InsertNode into its child result set so
that the optimizer has all of the information that it needs to consider
sort avoidance.
|
void |
pushQueryExpressionSuffix() |
Set up a new level for order by and fetch/offset clauses.
|
void |
rememberAsBest(int planType,
Optimizer optimizer) |
Remember the current access path as the best one (so far).
|
void |
rememberSortAvoidancePath() |
Mark this optimizable so that its sort avoidance path will be
considered.
|
private Optimizable |
replaceWithHashTableNode() |
This method creates a HashTableNode between the PRN and
it's child when the optimizer chooses hash join on an
arbitrary (non-FBT) result set tree.
|
(package private) void |
setRefActionInfo(long fkIndexConglomId,
int[] fkColArray,
java.lang.String parentResultSetId,
boolean dependentScan) |
set the Information gathered from the parent table that is
required to perform a referential action on dependent table.
|
(package private) void |
setRestriction(ValueNode restriction) |
|
(package private) void |
setValidatingCheckConstraints(java.lang.String baseTableUUIDString) |
|
void |
startOptimizing(Optimizer optimizer,
RowOrdering rowOrdering) |
Begin the optimization process for this Optimizable.
|
double |
uniqueJoin(OptimizablePredicateList predList) |
Does this optimizable have a uniqueness condition on the
given predicate list, and if so, how many unique keys will be
returned per scan.
|
(package private) int |
updateTargetLockMode() |
Get the lock mode for the target of an update statement
(a delete or update).
|
void |
verifyProperties(DataDictionary dDictionary) |
Verify that the Properties list with optimizer overrides, if specified, is valid
|
assignCostEstimate, canBeOrdered, columnsAreUpdatable, convertAbsoluteToRelativeColumnPosition, cursorTargetTable, estimateCost, fillInReferencedTableMap, flatten, getBaseTableName, getCorrelationName, getCostEstimate, getExposedName, getLevel, getMergeTableID, getName, getNumColumnsReturned, getOrigTableName, getProperties, getResultColumnsForList, getSchemaDescriptor, getSchemaDescriptor, getScratchCostEstimate, getTableDescriptor, getTableName, hashKeyColumns, hasLargeObjectColumns, hasTableNumber, initialCapacity, isBaseTable, isCoveringIndex, isFlattenableJoinNode, isJoinColumnForRightOuterJoin, isMaterializable, isOneRowScan, isTargetTable, loadFactor, LOJ_reorderable, markUpdatableByCursor, maxCapacity, memoryUsageOK, needsSpecialRCLBinding, optimizeSubqueries, rememberJoinStrategyAsBest, resetJoinStrategies, setCostEstimateCost, setHashKeyColumns, setMergeTableID, setOrigTableName, setProperties, setTableNumber, supportsMultipleInstantiations, tellRowOrderingAboutConstantColumns, toString, transformOuterJoins
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getDataDictionary, getOptimizerTracer, getReferencedTableMap, getResultSetNumber, optimizerTracingIsOn
accept, addTag, addUDTUsagePriv, addUDTUsagePriv, bindOffsetFetch, bindRowMultiSet, bindUserCatalogType, bindUserType, checkReliability, checkReliability, convertDefaultNode, copyTagsFrom, createTypeDependency, debugFlush, debugPrint, disablePrivilegeCollection, formatNodeString, generateAuthorizeCheck, getBeginOffset, getClassFactory, getCompilerContext, getContext, getContextManager, getDataDictionary, getDependencyManager, getEndOffset, getExecutionFactory, getGenericConstantActionFactory, getIntProperty, getLanguageConnectionContext, getLongProperty, getNullNode, getOffsetOrderedNodes, getOptimizerFactory, getOptimizerTracer, getParameterTypes, getSchemaDescriptor, getSchemaDescriptor, getStatementType, getTableDescriptor, getTypeCompiler, getUDTDesc, isAtomic, isPrivilegeCollectionRequired, isSessionSchema, isSessionSchema, makeConstantAction, makeTableName, makeTableName, nodeHeader, optimizerTracingIsOn, orReliability, parseSearchCondition, parseStatement, printLabel, resolveTableToSynonym, setBeginOffset, setEndOffset, stackPrint, taggedWith, treePrint, treePrint, verifyClassExist
assignResultSetNumber, bindExpressions, bindExpressionsWithTables, bindNonVTITables, bindResultColumns, bindResultColumns, bindTargetExpressions, bindUntypedNullsToResultColumns, bindVTITables, columnTypesAndLengthsMatch, enhanceRCLForInsert, generateNormalizationResultSet, genProjectRestrict, genProjectRestrict, genProjectRestrictForReordering, getAllResultColumns, getCandidateFinalCostEstimate, getCursorTargetTable, getFromList, getMatchingColumn, getNewCostEstimate, getOptimizer, getOptimizerImpl, getRCLForInsert, getReferencedTableMap, getResultColumns, getResultSetNumber, getScratchCostEstimate, isCursorTargetTable, isInsertSource, isStatementResultSet, isUpdatableCursor, LOJgetReferencedTables, makeResultDescription, makeResultDescriptors, markAsCursorTargetTable, markStatementResultSet, modifyAccessPaths, notCursorTargetTable, notFlattenableJoin, numDistinctAggregates, parseDefault, performMaterialization, printQueryExpressionSuffixClauses, projectResultColumns, rejectParameters, rejectXMLValues, renameGeneratedResultNames, replaceOrForbidDefaults, returnsAtMostOneRow, setCandidateFinalCostEstimate, setCostEstimate, setCursorTargetTable, setInsertSource, setOptimizer, setReferencedTableMap, setResultColumns, setResultSetNumber, setResultToBooleanTrueNode, setScratchCostEstimate, setTableConstructorTypes, verifySelectStarSubquery
adjustForSortElimination, adjustForSortElimination, changeAccessPath, decrementLevel, forUpdate, getChildResult, initAccessPaths, isNotExists, isOneRowResultSet, isOrderedOn, modifyAccessPaths, referencesSessionSchema, referencesTarget, reflectionNeededForProjection, setChildResult, setLevel, subqueryReferencesTarget, updateBestPlanMap
accept, addTag, taggedWith
ValueNode restriction
ValueNode constantRestriction
PredicateList restrictionList
SubqueryList projectSubquerys
SubqueryList restrictSubquerys
private boolean accessPathModified
private boolean getTableNumberHere
private boolean validatingCheckConstraints
validatingBaseTableCID
to validating deferred check
constraints.private java.lang.String validatingBaseTableUUIDString
ProjectRestrictNode(ResultSetNode childResult, ResultColumnList projection, ValueNode restriction, PredicateList restrictionList, SubqueryList projectSubquerys, SubqueryList restrictSubquerys, java.util.Properties tableProperties, ContextManager cm)
childResult
- The child ResultSetNodeprojection
- The result column list for the projectionrestriction
- An expression representing the restriction to be
evaluated here.restrictionList
- Restriction as a PredicateListprojectSubquerys
- List of subqueries in the projectionrestrictSubquerys
- List of subqueries in the restrictiontableProperties
- Properties list associated with the tablecm
- The context managerpublic boolean nextAccessPath(Optimizer optimizer, OptimizablePredicateList predList, RowOrdering rowOrdering) throws StandardException
Optimizable
nextAccessPath
in interface Optimizable
nextAccessPath
in class FromTable
optimizer
- Optimizer to use.predList
- The predicate list for this optimizable.
The optimizer always passes null, and it is up
to the optimizable object to pass along its
own predicate list, if appropriate, when delegating
this method.rowOrdering
- The row ordering for all the outer tables in
the join order. This method will add the ordering
of the next access path to the given RowOrdering.StandardException
- Thrown on errorOptimizable.nextAccessPath(org.apache.derby.iapi.sql.compile.Optimizer, org.apache.derby.iapi.sql.compile.OptimizablePredicateList, org.apache.derby.iapi.sql.compile.RowOrdering)
public void rememberAsBest(int planType, Optimizer optimizer) throws StandardException
Optimizable
rememberAsBest
in interface Optimizable
rememberAsBest
in class FromTable
planType
- The type of plan (one of Optimizer.NORMAL_PLAN
or Optimizer.SORT_AVOIDANCE_PLAN)optimizer
- The OptimizerImpl that is telling this Optimizable
to remember its current path as "truly the best".StandardException
- Thrown on errorOptimizable.rememberAsBest(int, org.apache.derby.iapi.sql.compile.Optimizer)
public void startOptimizing(Optimizer optimizer, RowOrdering rowOrdering)
Optimizable
startOptimizing
in interface Optimizable
startOptimizing
in class FromTable
Optimizable.startOptimizing(org.apache.derby.iapi.sql.compile.Optimizer, org.apache.derby.iapi.sql.compile.RowOrdering)
public int getTableNumber()
Optimizable
getTableNumber
in interface Optimizable
getTableNumber
in class FromTable
Optimizable.getTableNumber()
public CostEstimate optimizeIt(Optimizer optimizer, OptimizablePredicateList predList, CostEstimate outerCost, RowOrdering rowOrdering) throws StandardException
Optimizable
optimizeIt
in interface Optimizable
optimizeIt
in class FromTable
optimizer
- Optimizer to use.predList
- The predicate list to optimize againstouterCost
- The CostEstimate for the outer tables in the join order,
telling how many times this Optimizable will be scanned.rowOrdering
- The row ordering for all the tables in the
join order, including this one.StandardException
- Thrown on errorOptimizable.optimizeIt(org.apache.derby.iapi.sql.compile.Optimizer, org.apache.derby.iapi.sql.compile.OptimizablePredicateList, org.apache.derby.iapi.sql.compile.CostEstimate, org.apache.derby.iapi.sql.compile.RowOrdering)
public boolean feasibleJoinStrategy(OptimizablePredicateList predList, Optimizer optimizer) throws StandardException
Optimizable
feasibleJoinStrategy
in interface Optimizable
feasibleJoinStrategy
in class FromTable
predList
- The predicate list that has been pushed down to
this optimizableoptimizer
- The optimizer to use.StandardException
- Thrown on errorOptimizable.feasibleJoinStrategy(org.apache.derby.iapi.sql.compile.OptimizablePredicateList, org.apache.derby.iapi.sql.compile.Optimizer)
public AccessPath getCurrentAccessPath()
Optimizable
getCurrentAccessPath
in interface Optimizable
getCurrentAccessPath
in class FromTable
Optimizable.getCurrentAccessPath()
public AccessPath getBestAccessPath()
Optimizable
getBestAccessPath
in interface Optimizable
getBestAccessPath
in class FromTable
Optimizable.getBestAccessPath()
public AccessPath getBestSortAvoidancePath()
Optimizable
getBestSortAvoidancePath
in interface Optimizable
getBestSortAvoidancePath
in class FromTable
Optimizable.getBestSortAvoidancePath()
public AccessPath getTrulyTheBestAccessPath()
Optimizable
getTrulyTheBestAccessPath
in interface Optimizable
getTrulyTheBestAccessPath
in class SingleChildResultSetNode
Optimizable.getTrulyTheBestAccessPath()
public void rememberSortAvoidancePath()
Optimizable
rememberSortAvoidancePath
in interface Optimizable
rememberSortAvoidancePath
in class FromTable
Optimizable.rememberSortAvoidancePath()
public boolean considerSortAvoidancePath()
Optimizable
considerSortAvoidancePath
in interface Optimizable
considerSortAvoidancePath
in class FromTable
Optimizable.considerSortAvoidancePath()
public boolean pushOptPredicate(OptimizablePredicate optimizablePredicate) throws StandardException
Optimizable
pushOptPredicate
in interface Optimizable
pushOptPredicate
in class FromTable
optimizablePredicate
- OptimizablePredicate to push down.StandardException
- Thrown on errorOptimizable.pushOptPredicate(org.apache.derby.iapi.sql.compile.OptimizablePredicate)
public void pullOptPredicates(OptimizablePredicateList optimizablePredicates) throws StandardException
Optimizable
pullOptPredicates
in interface Optimizable
pullOptPredicates
in class SingleChildResultSetNode
optimizablePredicates
- The list to put the pulled predicates
in.StandardException
- Thrown on errorOptimizable.pullOptPredicates(org.apache.derby.iapi.sql.compile.OptimizablePredicateList)
public Optimizable modifyAccessPath(JBitSet outerTables) throws StandardException
Optimizable
modifyAccessPath
in interface Optimizable
modifyAccessPath
in class FromTable
outerTables
- Bit map of the tables that are outer to this one
in the join order.StandardException
- Thrown on errorOptimizable.modifyAccessPath(org.apache.derby.iapi.util.JBitSet)
private Optimizable replaceWithHashTableNode() throws StandardException
StandardException
- Thrown on errorpublic void verifyProperties(DataDictionary dDictionary) throws StandardException
Optimizable
verifyProperties
in interface Optimizable
verifyProperties
in class FromTable
dDictionary
- The DataDictionary to use.StandardException
- Thrown on errorOptimizable.verifyProperties(org.apache.derby.iapi.sql.dictionary.DataDictionary)
public boolean legalJoinOrder(JBitSet assignedTableMap)
Optimizable
legalJoinOrder
in interface Optimizable
legalJoinOrder
in class FromTable
assignedTableMap
- The tables that have been placed so far in the join order.Optimizable.legalJoinOrder(org.apache.derby.iapi.util.JBitSet)
public double uniqueJoin(OptimizablePredicateList predList) throws StandardException
Optimizable
uniqueJoin
in interface Optimizable
uniqueJoin
in class FromTable
predList
- The predicate list to checkStandardException
- Thrown on errorOptimizable.uniqueJoin(org.apache.derby.iapi.sql.compile.OptimizablePredicateList)
PredicateList getRestrictionList()
java.lang.String getUserSpecifiedJoinStrategy()
getUserSpecifiedJoinStrategy
in class FromTable
void printSubNodes(int depth)
printSubNodes
in class SingleChildResultSetNode
depth
- The depth of this node in the treeResultSetNode preprocess(int numTables, GroupByList gbl, FromList fromList) throws StandardException
preprocess
in class SingleChildResultSetNode
numTables
- Number of tables in the DML Statementgbl
- The group by list, if anyfromList
- The from list, if anyStandardException
- Thrown on errorvoid pushExpressions(PredicateList predicateList) throws StandardException
pushExpressions
in class SingleChildResultSetNode
predicateList
- The PredicateList.StandardException
- Thrown on errorResultSetNode addNewPredicate(Predicate predicate) throws StandardException
addNewPredicate
in class SingleChildResultSetNode
predicate
- The predicate to addStandardException
- Thrown on errorboolean flattenableInFromSubquery(FromList fromList)
flattenableInFromSubquery
in class SingleChildResultSetNode
fromList
- The outer from listResultSetNode ensurePredicateList(int numTables) throws StandardException
ensurePredicateList
in class SingleChildResultSetNode
numTables
- The number of tables in the query.StandardException
- Thrown on errorResultSetNode optimize(DataDictionary dataDictionary, PredicateList predicates, double outerRows) throws StandardException
optimize
in class SingleChildResultSetNode
dataDictionary
- The DataDictionary to use for optimizationpredicates
- The PredicateList to optimize. This should
be a join predicate.outerRows
- The number of outer joining rowsStandardException
- Thrown on errorCostEstimate getCostEstimate()
getCostEstimate
in class ResultSetNode
CostEstimate getFinalCostEstimate() throws StandardException
getFinalCostEstimate
in class SingleChildResultSetNode
StandardException
void generate(ActivationClassBuilder acb, MethodBuilder mb) throws StandardException
generate
in class QueryTreeNode
acb
- The ActivationClassBuilder for the class being builtmb
- The method for the generated code to go intoStandardException
- Thrown on errorvoid generateResultSet(ExpressionClassBuilder acb, MethodBuilder mb) throws StandardException
generateResultSet
in class ResultSetNode
acb
- The ExpressionClassBuilder for the class being builtmb
- The method the expression will go intoStandardException
- Thrown on errorprivate void generateMinion(ExpressionClassBuilder acb, MethodBuilder mb, boolean genChildResultSet) throws StandardException
acb
- The ExpressionClassBuilder for the class being builtmb
- The method the expression will go intoStandardException
- Thrown on errorboolean nopProjectRestrict()
void generateNOPProjectRestrict() throws StandardException
StandardException
- Thrown on errorResultSetNode considerMaterialization(JBitSet outerTables) throws StandardException
considerMaterialization
in class ResultSetNode
StandardException
- Thrown on errorFromTable getFromTableByName(java.lang.String name, java.lang.String schemaName, boolean exactMatch) throws StandardException
getFromTableByName
in class SingleChildResultSetNode
name
- The specified name to search for as an exposed name.schemaName
- Schema name, if non-null.exactMatch
- Whether or not we need an exact match on specified schema and table
names or match on table id.StandardException
- Thrown on errorint updateTargetLockMode()
updateTargetLockMode
in class SingleChildResultSetNode
TransactionController
boolean isPossibleDistinctScan(java.util.Set<BaseColumnNode> distinctColumns)
isPossibleDistinctScan
in class ResultSetNode
distinctColumns
- the set of distinct columnsvoid markForDistinctScan()
markForDistinctScan
in class ResultSetNode
void acceptChildren(Visitor v) throws StandardException
acceptChildren
in class SingleChildResultSetNode
v
- the visitorStandardException
- on errorvoid setRefActionInfo(long fkIndexConglomId, int[] fkColArray, java.lang.String parentResultSetId, boolean dependentScan)
setRefActionInfo
in class QueryTreeNode
void setRestriction(ValueNode restriction)
public void pushQueryExpressionSuffix()
ResultSetNode
ResultSetNode.QueryExpressionClauses
.
Overridden by implementors of pushOrderByNode, pushOffsetFetchFirst.pushQueryExpressionSuffix
in class ResultSetNode
void pushOrderByList(OrderByList orderByList)
pushOrderByList
in class ResultSetNode
orderByList
- The order by listvoid pushOffsetFetchFirst(ValueNode offset, ValueNode fetchFirst, boolean hasJDBClimitClause)
pushOffsetFetchFirst
in class ResultSetNode
offset
- the OFFSET, if anyfetchFirst
- the OFFSET FIRST, if anyhasJDBClimitClause
- true if the clauses were added by (and have the semantics of) a JDBC limit clausevoid setValidatingCheckConstraints(java.lang.String baseTableUUIDString)
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.