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_ACTIVATIONAUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX| Constructor and Description |
|---|
DMLStatementNode() |
| 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.
|
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.
|
ResultSetNode |
getResultSetNode()
Get the ResultSetNode from this DML Statement.
|
void |
init(java.lang.Object resultSet)
Initializer for a DMLStatementNode
|
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).
|
void |
printSubNodes(int depth)
Prints the sub-nodes of this object.
|
bindStatement, executeSchemaName, executeStatementName, generate, getSPSName, lockTableForCompilation, needsSavepoint, statementToString, toString, updateIndexStatisticsForaccept, bindOffsetFetch, bindRowMultiSet, bindUserCatalogType, bindUserType, checkReliability, checkReliability, convertDefaultNode, createTypeDependency, debugFlush, debugPrint, disablePrivilegeCollection, formatNodeString, foundString, generate, generateAuthorizeCheck, getBeginOffset, getClassFactory, getCompilerContext, getContextManager, getCursorInfo, getDataDictionary, getDependencyManager, getEndOffset, getExecutionFactory, getGenericConstantActionFactory, getIntProperty, getLanguageConnectionContext, getNodeFactory, getNodeType, getNullNode, getParameterTypes, getSchemaDescriptor, getSchemaDescriptor, getStatementType, getTableDescriptor, getTypeCompiler, init, init, init, init, init, init, init, init, init, init, init, init, init, isInstanceOf, isPrivilegeCollectionRequired, isSessionSchema, isSessionSchema, makeConstantAction, makeTableName, makeTableName, nodeHeader, orReliability, parseStatement, printLabel, referencesSessionSchema, resolveTableToSynonym, setBeginOffset, setContextManager, setEndOffset, setNodeType, setRefActionInfo, stackPrint, treePrint, treePrint, verifyClassExistResultSetNode resultSet
public void init(java.lang.Object resultSet)
init in interface Nodeinit in class QueryTreeNoderesultSet - A ResultSetNode for the result set of the
DML statementpublic void printSubNodes(int depth)
printSubNodes in class QueryTreeNodedepth - The depth of this node in the treepublic ResultSetNode getResultSetNode()
QueryTreeNode bind(DataDictionary dataDictionary) throws StandardException
dataDictionary - The DataDictionary to use to look up
columns, tables, etc.StandardException - Thrown on errorpublic QueryTreeNode 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 StatementNodepublic void optimizeStatement()
throws StandardException
optimizeStatement in class StatementNodeStandardException - Thrown on errorpublic ResultDescription makeResultDescription()
makeResultDescription in class StatementNodevoid generateParameterValueSet(ActivationClassBuilder acb) throws StandardException
acb - The ActivationClassBuilder for the class we're buildingStandardExceptionpublic 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 StatementNodeStandardException - on errorvoid acceptChildren(Visitor v) throws StandardException
acceptChildren in class QueryTreeNodev - the visitorStandardException - on errorint getPrivType()
Apache Derby V10.10 Internals - Copyright © 2004,2014 The Apache Software Foundation. All Rights Reserved.