Visitable
CallStatementNode
, CursorNode
, DMLModStatementNode
abstract class DMLStatementNode extends StatementNode
Modifier and Type | Field | Description |
---|---|---|
(package private) ResultSetNode |
resultSet |
The result set is the rows that result from running the
statement.
|
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_CYCLE, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX
EMPTY_TD_LIST, NEED_CURSOR_ACTIVATION, NEED_DDL_ACTIVATION, NEED_NOTHING_ACTIVATION, NEED_PARAM_ACTIVATION, NEED_ROW_ACTIVATION
Constructor | Description |
---|---|
DMLStatementNode(ResultSetNode resultSet,
ContextManager cm) |
Modifier and Type | Method | 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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
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
bindStatement, executeSchemaName, executeStatementName, generate, getCursorInfo, getSPSName, lockTableForCompilation, needsSavepoint, statementToString, toString, updateIndexStatisticsFor
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.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.