|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.impl.sql.compile.QueryTreeNode
org.apache.derby.impl.sql.compile.StatementNode
org.apache.derby.impl.sql.compile.DMLStatementNode
org.apache.derby.impl.sql.compile.DMLModStatementNode
org.apache.derby.impl.sql.compile.InsertNode
An InsertNode is the top node in a query tree for an insert statement.
After parsing, the node contains targetTableName: the target table for the insert collist: a list of column names, if specified queryexpr: the expression being inserted, either a values clause or a select form; both of these are represented via the SelectNode, potentially with a TableOperatorNode such as UnionNode above it.
After binding, the node has had the target table's descriptor located and inserted, and the queryexpr and collist have been massaged so that they are identical to the table layout. This involves adding any default values for missing columns, and reordering the columns to match the table's ordering of them.
After optimizing, ...
Field Summary | |
protected RowLocation[] |
autoincRowLocation
|
protected boolean |
bulkInsert
|
private boolean |
bulkInsertReplace
|
ValueNode |
checkConstraints
|
boolean |
deferred
|
FKInfo |
fkInfo
|
ResultColumnList |
targetColumnList
|
java.util.Properties |
targetProperties
|
Fields inherited from class org.apache.derby.impl.sql.compile.DMLModStatementNode |
fkColArrays, fkColDescriptors, fkIndexConglomNumbers, fkRefActions, fkTableNames, graphHashTable, indexConglomerateNumbers, indexNames, indicesToMaintain, isDependentTable, lockMode, relevantCdl, relevantTriggers, resultColumnList, targetTableDescriptor, targetTableName, targetVTI, triggerInfo |
Fields inherited from class org.apache.derby.impl.sql.compile.DMLStatementNode |
resultSet |
Fields inherited from class org.apache.derby.impl.sql.compile.StatementNode |
NEED_CURSOR_ACTIVATION, NEED_DDL_ACTIVATION, NEED_NOTHING_ACTIVATION, NEED_PARAM_ACTIVATION, NEED_ROW_ACTIVATION |
Fields inherited from class org.apache.derby.impl.sql.compile.QueryTreeNode |
AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX, beginOffset, endOffset |
Constructor Summary | |
InsertNode()
|
Method Summary | |
QueryTreeNode |
bind()
Bind this InsertNode. |
void |
generate(ActivationClassBuilder acb,
MethodBuilder mb)
Code generation for insert creates an expression for: ResultSetFactory.getInsertResultSet(resultSet.generate(ps), this ) |
private void |
getAffectedIndexes(TableDescriptor td)
Get the list of indexes on the table being inserted into. |
boolean[] |
getIndexedCols()
Create a boolean[] to track the (0-based) columns which are indexed. |
protected int |
getStatementType()
Return the type of statement, something from StatementType. |
(package private) static int |
getStatementType(java.util.Properties targetProperties)
Return the statement type, where it is dependent on the targetProperties. |
void |
init(java.lang.Object targetName,
java.lang.Object insertColumns,
java.lang.Object queryExpression,
java.lang.Object targetProperties)
Initializer for an InsertNode. |
ConstantAction |
makeConstantAction()
Compile constants that Execution will use |
void |
printSubNodes(int depth)
Prints the sub-nodes of this object. |
boolean |
referencesSessionSchema()
Return true if the node references SESSION schema tables (temporary or permanent) |
java.lang.String |
statementToString()
|
java.lang.String |
toString()
Convert this object to a String. |
private boolean |
verifyBulkInsert(DataDictionary dd,
java.lang.String mode)
Do the bind time checks to see if bulkInsert is allowed on this table. |
private void |
verifyTargetProperties(DataDictionary dd)
Verify that the target properties that we are interested in all hold valid values. |
Methods inherited from class org.apache.derby.impl.sql.compile.DMLStatementNode |
accept, activationKind, bind, bindExpressions, bindExpressionsWithTables, bindResultSetsWithTables, bindTables, generateParameterHolders, generateParameterValueSet, getResultSetNode, makeResultDescription |
Methods inherited from class org.apache.derby.impl.sql.compile.StatementNode |
generate, lockTableForCompilation |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public ResultColumnList targetColumnList
public boolean deferred
public ValueNode checkConstraints
public java.util.Properties targetProperties
public FKInfo fkInfo
protected boolean bulkInsert
private boolean bulkInsertReplace
protected RowLocation[] autoincRowLocation
Constructor Detail |
public InsertNode()
Method Detail |
public void init(java.lang.Object targetName, java.lang.Object insertColumns, java.lang.Object queryExpression, java.lang.Object targetProperties)
init
in class QueryTreeNode
targetName
- The name of the table/VTI to insert intoinsertColumns
- A ResultColumnList with the names of the
columns to insert into. May be null if the
user did not specify the columns - in this
case, the binding phase will have to figure
it out.targetProperties
- The properties specified on the target tablepublic java.lang.String toString()
toString
in class StatementNode
public java.lang.String statementToString()
statementToString
in class DMLModStatementNode
public void printSubNodes(int depth)
printSubNodes
in class DMLStatementNode
depth
- The depth of this node in the tree
public QueryTreeNode bind() throws StandardException
Binding an insert will also massage the tree so that the collist and select column order/number are the same as the layout of the table in the store.
bind
in class QueryTreeNode
StandardException
- Thrown on errorpublic boolean referencesSessionSchema() throws StandardException
referencesSessionSchema
in class QueryTreeNode
StandardException
- Thrown on errorprivate void verifyTargetProperties(DataDictionary dd) throws StandardException
dd
- The DataDictionary
StandardException
- Thrown on errorprivate boolean verifyBulkInsert(DataDictionary dd, java.lang.String mode) throws StandardException
dd
- The DataDictionarymode
- The insert mode
StandardException
- Thrown on errorpublic ConstantAction makeConstantAction() throws StandardException
makeConstantAction
in class QueryTreeNode
StandardException
- Thrown on failurepublic boolean[] getIndexedCols() throws StandardException
StandardException
- Thrown on failurepublic void generate(ActivationClassBuilder acb, MethodBuilder mb) throws StandardException
generate
in class QueryTreeNode
acb
- The ActivationClassBuilder for the class being builtmb
- the method for the execute() method to be built
StandardException
- Thrown on errorprotected final int getStatementType()
getStatementType
in class QueryTreeNode
static final int getStatementType(java.util.Properties targetProperties)
private void getAffectedIndexes(TableDescriptor td) throws StandardException
td
- TableDescriptor for the table being inserted into
or deleted from
StandardException
- Thrown on error
|
Built on Mon 2007-06-04 09:58:47+0400, from revision ??? | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |