Class DMLModStatementNode
java.lang.Object
org.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
- All Implemented Interfaces:
Visitable
- Direct Known Subclasses:
DeleteNode, DMLModGeneratedColumnsStatementNode, MergeNode
A DMLStatement for a table modification: to wit, INSERT
UPDATE or DELETE.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate ValueNodeSet of dependent tables for cascading deletes.protected int[][]protected ColumnDescriptorList[]protected long[]protected FKInfo[]protected int[]protected String[]protected String[]long[]String[]protected booleanprotected intprotected MatchingClauseNodeprotected ConstraintDescriptorListprotected TriggerDescriptorListprivate booleanprotected ResultColumnListprivate intprotected TableName(package private) TableDescriptorprotected TableNameprotected FromVTIprotected TriggerInfoFields inherited from class DMLStatementNode
resultSetFields inherited from class StatementNode
EMPTY_TD_LIST, NEED_CURSOR_ACTIVATION, NEED_DDL_ACTIVATION, NEED_NOTHING_ACTIVATION, NEED_PARAM_ACTIVATION, NEED_ROW_ACTIVATIONFields inherited from class QueryTreeNode
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_CYCLE, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX -
Constructor Summary
ConstructorsConstructorDescriptionDMLModStatementNode(ResultSetNode resultSet, MatchingClauseNode matchingClause, int statementType, ContextManager cm) Constructor for a DMLModStatementNode -- delegate to DMLStatementNodeDMLModStatementNode(ResultSetNode resultSet, MatchingClauseNode matchingClause, ContextManager cm) -
Method Summary
Modifier and TypeMethodDescription(package private) voidAccept the visitor for all visitable children of this node.protected voidadjustDeferredFlag(boolean adjustment) (package private) ValueNodebindConstraints(DataDictionary dataDictionary, OptimizerFactory optimizerFactory, TableDescriptor targetTableDescriptor, Dependent dependent, ResultColumnList sourceRCL, int[] changedColumnIds, FormatableBitSet readColsBitSet, boolean includeTriggers, boolean[] hasDeferrableCheckConstraints) Gets and binds all the constraints for an INSERT/UPDATE/DELETE.(package private) static voidbindRowScopedExpression(OptimizerFactory optimizerFactory, ContextManager cm, TableDescriptor targetTableDescriptor, ResultColumnList sourceRCL, ValueNode expression) Binds an already parsed expression that only involves columns in a single row.private voidcreateConstraintDependencies(DataDictionary dd, ConstraintDescriptorList cdl, Dependent dependent) Get all of our dependents due to a constraint.private voidcreateTriggerDependencies(TriggerDescriptorList tdl, Dependent dependent) Makes the calling object (usually a Statement) dependent on all the constraints.private voidfkSetupArrays(DataDictionary dd, ForeignKeyConstraintDescriptor fkcd, int index, UUID[] uuids, long[] conglomNumbers, String[] fkNames, boolean[] isSelfReferencingFK, int[] raRules, boolean[] isDeferrable, UUID[] fkIds) generateCheckConstraints(ValueNode checkConstraints, ExpressionClassBuilder ecb) Generate a method to evaluate a tree of CHECK CONSTRAINTS.voidgenerateCheckConstraints(ValueNode checkConstraints, ExpressionClassBuilder ecb, MethodBuilder mb) Generate the code to evaluate a tree of CHECK CONSTRAINTS.private ValueNodegenerateCheckTree(ConstraintDescriptorList cdl, TableDescriptor td, boolean[] hasDeferrable) Get the ANDing of all appropriate check constraints as 1 giant query tree.protected voidIf the DML is on a temporary table, generate the code to mark temporary table as modified in the current UOW.private voidgenerateFKInfo(ConstraintDescriptorList cdl, DataDictionary dd, TableDescriptor td, FormatableBitSet readColsBitSet) Generate the FKInfo structures used during code generation.private MethodBuildergenerateGenerationClauses(ResultColumnList rcl, int rsNumber, boolean isUpdate, ExpressionClassBuilder ecb) Generate a method to compute all of the generation clauses in a row.voidgenerateGenerationClauses(ResultColumnList rcl, int resultSetNumber, boolean isUpdate, ExpressionClassBuilder ecb, MethodBuilder mb) Generate the code to evaluate all of the generation clauses.private voidgenerateTriggerInfo(TriggerDescriptorList triggerList) Generate the TriggerInfo structures used during code generation.protected voidgetAffectedIndexes(TableDescriptor td, ResultColumnList updatedColumns, FormatableBitSet colBitSet) Get the list of indexes that must be updated by this DML statement.protected ConstraintDescriptorListgetAllRelevantConstraints(DataDictionary dd, TableDescriptor td, int[] changedColumnIds) Get all the constraints relevant to this DML operationprotected TriggerDescriptorListgetAllRelevantTriggers(DataDictionary dd, TableDescriptor td, int[] changedColumnIds, boolean includeTriggers) Get all the triggers relevant to this DML operation(package private) ValueNodeGet the check constraints for this node(package private) FKInfo[]Return the FKInfo structure.(package private) static int[]getReadColMap(int column_map_length, FormatableBitSet readColsBitSet) Get a map to efficiently find heap columns from a compressed set of read columns.protected voidGet and bind the ResultColumnList representing the columns in the target table, given the table's name.private voidgetResultColumnList(FromBaseTable fromBaseTable, ResultColumnList inputRcl) Get and bind the ResultColumnList representing the columns in the target table, given a FromTable for the target table.protected FromBaseTablegetResultColumnList(ResultColumnList inputRcl) Get and bind the ResultColumnList representing the columns in the target table, given the table's name.private int[]getRowMap(FormatableBitSet bitSet, TableDescriptor td) Get a integer based row map from a bit set.(package private) SchemaDescriptorGet a schema descriptor for the given table.(package private) TriggerInfoReturn the TriggerInfo structure.(package private) static voidgetXAffectedIndexes(TableDescriptor baseTable, ResultColumnList updatedColumns, FormatableBitSet colBitSet, List<ConglomerateDescriptor> conglomerates) Marks which indexes are affected by an UPDATE of the desired shape.protected booleanDetermine whether or not there are check constraints on the specified table.protected booleanDetermine whether or not there are generated columns in the specified table.booleanReturns true if this DMLModStatement a [ NOT ] MATCHED action of a MERGE statementbooleanisAtomic()INSERT/UPDATE/DELETE are always atomic.protected voidmarkAffectedIndexes(List<ConglomerateDescriptor> affectedConglomerates) (package private) voidnormalizeSynonymColumns(ResultColumnList rcl, TableName targetTableName) Normalize synonym column references to have the name of the base table.voidGenerate an optimized QueryTree from a bound QueryTree.(package private) voidparseAndBindGenerationClauses(DataDictionary dataDictionary, TableDescriptor targetTableDescriptor, ResultColumnList sourceRCL, ResultColumnList targetRCL, boolean forUpdate, ResultSetNode updateResultSet) Parse and bind the generating expressions of computed columns.parseCheckConstraint(String checkConstraintText, TableDescriptor td) Parse a check constraint and turn it into a query tree.parseGenerationClause(String clauseText, TableDescriptor td) Parse the generation clause for a column.(package private) voidprintSubNodes(int depth) Prints the sub-nodes of this object.private int[]remapReferencedColumns(ConstraintDescriptor cd, int[] rowMap) Remap referenced columns in the cd to reflect the passed in row map.(package private) booleanDoes this DML Node require deferred processing?(package private) voidsetRefActionInfo(long fkIndexConglomId, int[] fkColArray, 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) voidsetTarget(QueryTreeNode targetName) (package private) String(package private) voidVerify the target table.Methods inherited from class DMLStatementNode
activationKind, bind, bindExpressions, bindExpressionsWithTables, bindResultSetsWithTables, bindTables, generateParameterValueSet, getPrivType, getResultSetNode, makeResultDescriptionMethods inherited from class StatementNode
bindStatement, executeSchemaName, executeStatementName, generate, getCursorInfo, getSPSName, lockTableForCompilation, needsSavepoint, toString, updateIndexStatisticsForMethods inherited from class QueryTreeNode
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, stackPrint, taggedWith, treePrint, treePrint, verifyClassExist
-
Field Details
-
targetVTI
-
targetTableName
-
resultColumnList
-
lockMode
protected int lockMode -
fkInfo
-
triggerInfo
-
targetTableDescriptor
TableDescriptor targetTableDescriptor -
indicesToMaintain
-
indexConglomerateNumbers
public long[] indexConglomerateNumbers -
indexNames
-
relevantCdl
-
relevantTriggers
-
requiresDeferredProcessing
private boolean requiresDeferredProcessing -
statementType
private int statementType -
bound
private boolean bound -
checkConstraints
-
fkSchemaNames
-
fkTableNames
-
fkRefActions
protected int[] fkRefActions -
fkColDescriptors
-
fkIndexConglomNumbers
protected long[] fkIndexConglomNumbers -
isDependentTable
protected boolean isDependentTable -
fkColArrays
protected int[][] fkColArrays -
synonymTableName
-
matchingClause
-
dependentTables
-
-
Constructor Details
-
DMLModStatementNode
DMLModStatementNode(ResultSetNode resultSet, MatchingClauseNode matchingClause, ContextManager cm) -
DMLModStatementNode
DMLModStatementNode(ResultSetNode resultSet, MatchingClauseNode matchingClause, int statementType, ContextManager cm) Constructor for a DMLModStatementNode -- delegate to DMLStatementNode- Parameters:
resultSet- A ResultSetNode for the result set of the DML statementmatchingClause- Non-null if this DML is part of a MATCHED clause of a MERGE statement.statementType- used by nodes that allocate a DMLMod directly (rather than inheriting it).cm- The context manager
-
-
Method Details
-
inMatchingClause
public boolean inMatchingClause()Returns true if this DMLModStatement a [ NOT ] MATCHED action of a MERGE statement -
setTarget
-
generateCodeForTemporaryTable
If the DML is on a temporary table, generate the code to mark temporary table as modified in the current UOW. At rollback transaction (or savepoint), we will check if the temporary table was modified in that UOW. If yes, we will remove all the data from the temporary table- Parameters:
acb- The ActivationClassBuilder for the class being built- Throws:
StandardException- Thrown on error
-
verifyTargetTable
Verify the target table. Get the TableDescriptor if the target table is not a VTI.- Throws:
StandardException- Thrown on error
-
isAtomic
public boolean isAtomic()INSERT/UPDATE/DELETE are always atomic.- Overrides:
isAtomicin classDMLStatementNode- Returns:
- true
-
getSchemaDescriptor
Get a schema descriptor for the given table. Uses this.targetTableName.- Returns:
- Schema Descriptor
- Throws:
StandardException- throws on schema name that doesn't exist
-
getReadColMap
Get a map to efficiently find heap columns from a compressed set of read columns. The returns a map such thatmap[heapColId (0 based)] -> readCol id (0 based)
- Parameters:
column_map_length- The number of columns(ints) in the map.readColsBitSet- A language style (1 based) bit set with bits for read heap columns set. RESOLVE: Replace this with a call to RowUtil when the store and the language both use 0 base or 1 base offsets for columns. Today we can't use the store function because we have a 1 based FormatableBitSet.
-
getResultColumnList
Get and bind the ResultColumnList representing the columns in the target table, given the table's name.- Throws:
StandardException- Thrown on error
-
getResultColumnList
Get and bind the ResultColumnList representing the columns in the target table, given the table's name.- Throws:
StandardException- Thrown on error
-
getResultColumnList
private void getResultColumnList(FromBaseTable fromBaseTable, ResultColumnList inputRcl) throws StandardException Get and bind the ResultColumnList representing the columns in the target table, given a FromTable for the target table.- Throws:
StandardException- Thrown on error
-
parseAndBindGenerationClauses
void parseAndBindGenerationClauses(DataDictionary dataDictionary, TableDescriptor targetTableDescriptor, ResultColumnList sourceRCL, ResultColumnList targetRCL, boolean forUpdate, ResultSetNode updateResultSet) throws StandardException Parse and bind the generating expressions of computed columns.- Parameters:
dataDictionary- metadatatargetTableDescriptor- metadata for the table that has the generated columnssourceRCL- the tuple stream which drives the INSERT or UPDATEtargetRCL- the row in the table that's being INSERTed or UPDATEdforUpdate- true if this is an UPDATE. false otherwise.updateResultSet- more information on the tuple stream driving the UPDATE- Throws:
StandardException
-
parseGenerationClause
public ValueNode parseGenerationClause(String clauseText, TableDescriptor td) throws StandardException Parse the generation clause for a column.- Parameters:
clauseText- Text of the generation clause- Returns:
- The parsed expression as a query tree.
- Throws:
StandardException- Thrown on failure
-
bindConstraints
ValueNode bindConstraints(DataDictionary dataDictionary, OptimizerFactory optimizerFactory, TableDescriptor targetTableDescriptor, Dependent dependent, ResultColumnList sourceRCL, int[] changedColumnIds, FormatableBitSet readColsBitSet, boolean includeTriggers, boolean[] hasDeferrableCheckConstraints) throws StandardException Gets and binds all the constraints for an INSERT/UPDATE/DELETE. First finds the constraints that are relevant to this node. This is done by calling getAllRelevantConstriants(). If getAllRelevantConstraints() has already been called, then this list is used. Then it creates appropriate dependencies. Then binds check constraints. It also generates the array of FKInfo items that are used in code generation. Note: we have a new flag here to see if defer processing is enabled or not, the only scenario that is disabled is when we reapply the reply message we get from the source- Parameters:
dataDictionary- The DataDictionarytargetTableDescriptor- The TableDescriptordependent- Parent object that will depend on all the constraints that we look up. If this argument is null, then we use the default dependent (the statement being compiled).sourceRCL- RCL of the table being changedchangedColumnIds- If null, all columns being changed, otherwise array of 1-based column ids for columns being changedreadColsBitSet- bit set for the read scanincludeTriggers- whether triggers are included in the processinghasDeferrableCheckConstraints- OUT semantics: set element 0 to true if the target table has any deferrable CHECK constraints- Returns:
- The bound, ANDed check constraints as a query tree.
- Throws:
StandardException- Thrown on failure
-
bindRowScopedExpression
static void bindRowScopedExpression(OptimizerFactory optimizerFactory, ContextManager cm, TableDescriptor targetTableDescriptor, ResultColumnList sourceRCL, ValueNode expression) throws StandardException Binds an already parsed expression that only involves columns in a single row. E.g., a check constraint or a generation clause.- Parameters:
optimizerFactory- The optimizer factorycm- The context managertargetTableDescriptor- The TableDescriptor for the constrained tablesourceRCL- Result columnsexpression- Parsed query tree for row scoped expression- Throws:
StandardException- Thrown on failure
-
hasCheckConstraints
protected boolean hasCheckConstraints(DataDictionary dd, TableDescriptor td) throws StandardException Determine whether or not there are check constraints on the specified table.- Parameters:
dd- The DataDictionary to usetd- The TableDescriptor for the table- Returns:
- Whether or not there are check constraints on the specified table.
- Throws:
StandardException- Thrown on failure
-
hasGenerationClauses
Determine whether or not there are generated columns in the specified table.- Parameters:
td- The TableDescriptor for the table- Returns:
- Whether or not there are generated columns in the specified table.
- Throws:
StandardException- Thrown on failure
-
generateCheckTree
private ValueNode generateCheckTree(ConstraintDescriptorList cdl, TableDescriptor td, boolean[] hasDeferrable) throws StandardException Get the ANDing of all appropriate check constraints as 1 giant query tree. Makes the calling object (usually a Statement) dependent on all the constraints.- Parameters:
cdl- The constraint descriptor listtd- The TableDescriptor- Returns:
- The ANDing of all appropriate check constraints as a query tree.
- Throws:
StandardException- Thrown on failure
-
generateFKInfo
private void generateFKInfo(ConstraintDescriptorList cdl, DataDictionary dd, TableDescriptor td, FormatableBitSet readColsBitSet) throws StandardException Generate the FKInfo structures used during code generation. For each constraint that isn't a check constraint, add another one of these FKInfo structures and then package them up into a single array.- Parameters:
cdl- The constraint descriptor listdd- The DataDictionarytd- The TableDescriptorreadColsBitSet- columns read- Throws:
StandardException- Thrown on failure
-
fkSetupArrays
private void fkSetupArrays(DataDictionary dd, ForeignKeyConstraintDescriptor fkcd, int index, UUID[] uuids, long[] conglomNumbers, String[] fkNames, boolean[] isSelfReferencingFK, int[] raRules, boolean[] isDeferrable, UUID[] fkIds) throws StandardException - Throws:
StandardException
-
generateTriggerInfo
Generate the TriggerInfo structures used during code generation.- Parameters:
triggerList- The trigger descriptor list
-
getFKInfo
FKInfo[] getFKInfo()Return the FKInfo structure. Just a little wrapper to make sure we don't try to access it until after binding.- Returns:
- the array of fkinfos
-
getTriggerInfo
TriggerInfo getTriggerInfo()Return the TriggerInfo structure. Just a little wrapper to make sure we don't try to access it until after binding.- Returns:
- the trigger info
-
getCheckConstraints
ValueNode getCheckConstraints()Get the check constraints for this node- Returns:
- the check constraints, may be null
-
createTriggerDependencies
private void createTriggerDependencies(TriggerDescriptorList tdl, Dependent dependent) throws StandardException Makes the calling object (usually a Statement) dependent on all the constraints.- Parameters:
tdl- The trigger descriptor listdependent- Parent object that will depend on all the constraints that we look up. If this argument is null, then we use the default dependent (the statement being compiled).- Throws:
StandardException- Thrown on failure
-
getAllRelevantTriggers
protected TriggerDescriptorList getAllRelevantTriggers(DataDictionary dd, TableDescriptor td, int[] changedColumnIds, boolean includeTriggers) throws StandardException Get all the triggers relevant to this DML operation- Parameters:
dd- The data dictionarytd- The TableDescriptorchangedColumnIds- If null, all columns being changed, otherwise array of 1-based column ids for columns being changedincludeTriggers- whether we allow trigger processing or not for this table- Returns:
- the constraint descriptor list
- Throws:
StandardException- Thrown on failure
-
adjustDeferredFlag
protected void adjustDeferredFlag(boolean adjustment) -
createConstraintDependencies
private void createConstraintDependencies(DataDictionary dd, ConstraintDescriptorList cdl, Dependent dependent) throws StandardException Get all of our dependents due to a constraint. Makes the calling object (usually a Statement) dependent on all the constraints.- Parameters:
dd- The data dictionarycdl- The constraint descriptor listdependent- Parent object that will depend on all the constraints that we look up. If this argument is null, then we use the default dependent (the statement being compiled).- Throws:
StandardException- Thrown on failure
-
getAllRelevantConstraints
protected ConstraintDescriptorList getAllRelevantConstraints(DataDictionary dd, TableDescriptor td, int[] changedColumnIds) throws StandardException Get all the constraints relevant to this DML operation- Parameters:
dd- The DataDictionarytd- The TableDescriptorchangedColumnIds- If null, all columns being changed, otherwise array of 1-based column ids for columns being changed- Returns:
- the constraint descriptor list
- Throws:
StandardException- Thrown on failure
-
requiresDeferredProcessing
boolean requiresDeferredProcessing()Does this DML Node require deferred processing? Set to true if we have triggers or referential constraints that need deferred processing.- Returns:
- true/false
-
parseCheckConstraint
public ValueNode parseCheckConstraint(String checkConstraintText, TableDescriptor td) throws StandardException Parse a check constraint and turn it into a query tree.- Parameters:
checkConstraintText- Text of CHECK CONSTRAINT.td- The TableDescriptor for the table the the constraint is on.- Returns:
- The parsed check constraint as a query tree.
- Throws:
StandardException- Thrown on failure
-
generateCheckConstraints
public void generateCheckConstraints(ValueNode checkConstraints, ExpressionClassBuilder ecb, MethodBuilder mb) throws StandardException Generate the code to evaluate a tree of CHECK CONSTRAINTS.- Parameters:
checkConstraints- Bound query tree of ANDed check constraints.ecb- Expression Class Builder- Throws:
StandardException- Thrown on error
-
generateCheckConstraints
public MethodBuilder generateCheckConstraints(ValueNode checkConstraints, ExpressionClassBuilder ecb) throws StandardException Generate a method to evaluate a tree of CHECK CONSTRAINTS.- Parameters:
checkConstraints- Bound query tree of ANDed check constraints.ecb- Expression Class Builder- Throws:
StandardException- Thrown on error
-
generateGenerationClauses
public void generateGenerationClauses(ResultColumnList rcl, int resultSetNumber, boolean isUpdate, ExpressionClassBuilder ecb, MethodBuilder mb) throws StandardException Generate the code to evaluate all of the generation clauses. If there are generation clauses, this routine builds an Activation method which evaluates the generation clauses and fills in the computed columns.- Parameters:
rcl- describes the row of expressions to be put into the bas tableresultSetNumber- index of base table into array of ResultSetsisUpdate- true if this is for an UPDATE statementecb- code generation state variablemb- the method being generated- Throws:
StandardException- Thrown on error
-
generateGenerationClauses
private MethodBuilder generateGenerationClauses(ResultColumnList rcl, int rsNumber, boolean isUpdate, ExpressionClassBuilder ecb) throws StandardException Generate a method to compute all of the generation clauses in a row.- Parameters:
rcl- describes the row of expressions to be put into the bas tablersNumber- index of base table into array of ResultSetsisUpdate- true if this is for an UPDATE statementecb- code generation state variable- Throws:
StandardException
-
optimizeStatement
Generate an optimized QueryTree from a bound QueryTree. Actually, it can annotate the tree in place rather than generate a new tree, but this interface allows the root node of the optimized QueryTree to be different from the root node of the bound QueryTree. For non-optimizable statements, this method is a no-op. Throws an exception if the tree is not bound, or if the binding is out of date.- Overrides:
optimizeStatementin classDMLStatementNode- Throws:
StandardException- Thrown on failure
-
getAffectedIndexes
protected void getAffectedIndexes(TableDescriptor td, ResultColumnList updatedColumns, FormatableBitSet colBitSet) throws StandardException Get the list of indexes that must be updated by this DML statement. WARNING: As a side effect, it creates dependencies on those indexes.- Parameters:
td- The table descriptor for the table being updatedupdatedColumns- The updated column list. If not update, nullcolBitSet- a 1 based bit set of the columns in the list- Throws:
StandardException- Thrown on error
-
getXAffectedIndexes
static void getXAffectedIndexes(TableDescriptor baseTable, ResultColumnList updatedColumns, FormatableBitSet colBitSet, List<ConglomerateDescriptor> conglomerates) throws StandardException Marks which indexes are affected by an UPDATE of the desired shape. Is passed a list of updated columns. Does the following: 1) finds all indices which overlap the updated columns 2) adds the index columns to a bitmap of affected columns 3) adds the index descriptors to a list of conglomerate descriptors.- Parameters:
updatedColumns- a list of updated columnscolBitSet- OUT: evolving bitmap of affected columnsconglomerates- OUT: list of affected indices- Throws:
StandardException- Thrown on error
-
markAffectedIndexes
protected void markAffectedIndexes(List<ConglomerateDescriptor> affectedConglomerates) throws StandardException - Throws:
StandardException
-
statementToString
String statementToString()- Specified by:
statementToStringin classStatementNode
-
remapReferencedColumns
Remap referenced columns in the cd to reflect the passed in row map.- Parameters:
cd- constraint descriptorrowMap- 1 based row map
-
getRowMap
Get a integer based row map from a bit set.- Parameters:
bitSet-td-- Throws:
StandardException
-
setRefActionInfo
void setRefActionInfo(long fkIndexConglomId, int[] fkColArray, String parentResultSetId, boolean dependentScan) Description copied from class:QueryTreeNodeset the Information gathered from the parent table that is required to perform a referential action on dependent table.- Overrides:
setRefActionInfoin classQueryTreeNode
-
normalizeSynonymColumns
void normalizeSynonymColumns(ResultColumnList rcl, TableName targetTableName) throws StandardException Normalize synonym column references to have the name of the base table.- Parameters:
rcl- The result column list of the target tabletargetTableName- The target tablename- Throws:
StandardException- Thrown on error
-
printSubNodes
void printSubNodes(int depth) Prints the sub-nodes of this object. See QueryTreeNode.java for how tree printing is supposed to work.- Overrides:
printSubNodesin classDMLStatementNode- Parameters:
depth- The depth of this node in the tree
-
acceptChildren
Accept the visitor for all visitable children of this node.- Overrides:
acceptChildrenin classDMLStatementNode- Parameters:
v- the visitor- Throws:
StandardException- on error
-