abstract class DMLStatementNode extends StatementNode
Modifier and Type | Field and Description |
---|---|
(package private) ResultSetNode |
resultSet
The result set is the rows that result from running the
statement.
|
EMPTY_TD_LIST, NEED_CURSOR_ACTIVATION, NEED_DDL_ACTIVATION, NEED_NOTHING_ACTIVATION, NEED_PARAM_ACTIVATION, NEED_ROW_ACTIVATION
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_CYCLE, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX
Constructor and Description |
---|
DMLStatementNode(ResultSetNode resultSet,
ContextManager cm) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
acceptChildren(Visitor v)
Accept the visitor for all visitable children of this node.
|
(package private) int |
activationKind()
Returns the type of activation this class
generates.
|
(package private) QueryTreeNode |
bind(DataDictionary dataDictionary)
Bind this DMLStatementNode.
|
protected void |
bindExpressions()
Bind the expressions in this DML statement.
|
protected void |
bindExpressionsWithTables()
Bind the expressions in the underlying ResultSets with tables.
|
(package private) QueryTreeNode |
bindResultSetsWithTables(DataDictionary dataDictionary)
Bind only the underlying ResultSets with tables.
|
protected void |
bindTables(DataDictionary dataDictionary)
Bind the tables in this DML statement.
|
(package private) void |
generateParameterValueSet(ActivationClassBuilder acb)
Generate the code to create the ParameterValueSet, if necessary,
when constructing the activation.
|
(package private) int |
getPrivType()
Return default privilege needed for this node.
|
(package private) ResultSetNode |
getResultSetNode()
Get the ResultSetNode from this DML Statement.
|
boolean |
isAtomic()
A read statement is atomic (DMLMod overrides us) if there
are no work units, and no SELECT nodes, or if its SELECT nodes
are all arguments to a function.
|
ResultDescription |
makeResultDescription()
Make a ResultDescription for use in a PreparedStatement.
|
void |
optimizeStatement()
Optimize a DML statement (which is the only type of statement that
should need optimizing, I think).
|
(package private) void |
printSubNodes(int depth)
Prints the sub-nodes of this object.
|
bindStatement, executeSchemaName, executeStatementName, generate, getCursorInfo, getSPSName, lockTableForCompilation, needsSavepoint, statementToString, toString, updateIndexStatisticsFor
accept, addTag, addUDTUsagePriv, addUDTUsagePriv, bindOffsetFetch, bindRowMultiSet, bindUserCatalogType, bindUserType, checkReliability, checkReliability, convertDefaultNode, copyTagsFrom, createTypeDependency, debugFlush, debugPrint, disablePrivilegeCollection, formatNodeString, generate, 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, isPrivilegeCollectionRequired, isSessionSchema, isSessionSchema, makeConstantAction, makeTableName, makeTableName, nodeHeader, optimizerTracingIsOn, orReliability, parseSearchCondition, parseStatement, printLabel, referencesSessionSchema, resolveTableToSynonym, setBeginOffset, setEndOffset, setRefActionInfo, stackPrint, taggedWith, treePrint, treePrint, verifyClassExist
ResultSetNode resultSet
DMLStatementNode(ResultSetNode resultSet, ContextManager cm)
void printSubNodes(int depth)
printSubNodes
in class QueryTreeNode
depth
- The depth of this node in the treeResultSetNode getResultSetNode()
QueryTreeNode bind(DataDictionary dataDictionary) throws StandardException
dataDictionary
- The DataDictionary to use to look up
columns, tables, etc.StandardException
- Thrown on errorQueryTreeNode bindResultSetsWithTables(DataDictionary dataDictionary) throws StandardException
dataDictionary
- The DataDictionary to use to look up
columns, tables, etc.StandardException
- Thrown on errorprotected void bindTables(DataDictionary dataDictionary) throws StandardException
dataDictionary
- The data dictionary to use to look up the tablesStandardException
- Thrown on errorprotected void bindExpressions() throws StandardException
StandardException
- Thrown on errorprotected void bindExpressionsWithTables() throws StandardException
StandardException
- Thrown on errorint activationKind()
activationKind
in class StatementNode
public void optimizeStatement() throws StandardException
optimizeStatement
in class StatementNode
StandardException
- Thrown on errorpublic ResultDescription makeResultDescription()
makeResultDescription
in class StatementNode
void generateParameterValueSet(ActivationClassBuilder acb) throws StandardException
acb
- The ActivationClassBuilder for the class we're buildingStandardException
public boolean isAtomic() throws StandardException
VALUES myfunc(SELECT max(c.commitFunc()) FROM T)but we aren't going too far out of our way to catch every possible wierd case. We basically want to be permissive w/o allowing someone to partially commit a write.
isAtomic
in class StatementNode
StandardException
- on errorvoid acceptChildren(Visitor v) throws StandardException
acceptChildren
in class QueryTreeNode
v
- the visitorStandardException
- on errorint getPrivType()
Apache Derby V10.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.