| Modifier and Type | Field and Description |
|---|---|
| private boolean | |
| private static final String | |
| private boolean | |
| private ConstantAction[] | |
| private StatementNode[] | |
| private FormatableBitSet | |
| private FromTable |
| Access | Constructor and Description |
|---|---|
| pack-priv | DeleteNode(TableName
The name of the table to delete from targetTableName, ResultSetNode The query expression that will generate
the rows to delete from the given table queryExpression, MatchingClauseNode Non-null if this DML is part of a MATCHED clause of a MERGE statement. matchingClause, ContextManager The context manager cm)Constructor for a DeleteNode. |
| Modifier and Type | Method and Description |
|---|---|
| public void | bindStatement()
Overrides org. Bind this DeleteNode. |
| private void | |
| pack-priv void | generate(ActivationClassBuilder
The ActivationClassBuilder for the class being built acb, MethodBuilder The execute() method to be built mb)Overrides org. Code generation for delete. |
| private static FormatableBitSet | Returns: a FormatableBitSet of columns to be read out of the base tableOUT: list of affected indices conglomerates, TriggerDescriptorList IN/OUT. Passed in as an empty list. Filled in as we go. relevantTriggers, boolean[] IN/OUT. true if the statement already needs
deferred processing. set while evaluating this
routine if a trigger requires
deferred processing needsDeferredProcessing)Builds a bitmap of all columns which should be read from the Store in order to satisfy an DELETE statement. |
| private StatementNode | getDependentTableNode(String schemaName, String tableName, int refAction, ColumnDescriptorList cdl)
In case of referential actions, we require to perform DML (UPDATE or DELETE) on the dependent tables. |
| private DeleteNode | |
| private UpdateNode | |
| pack-priv int | getPrivType()
Overrides org. Return default privilege needed for this node. |
| public FormatableBitSet | Returns: a FormatableBitSet of columns to be read out of the base tablethe data dictionary to look in dd, TableDescriptor the base table descriptor baseTable)Gets the map of all columns which must be read out of the base table. |
| private ResultColumnList | |
| protected final int | Returns: the type of statementOverrides org. Return the type of statement, something from StatementType. |
| public ConstantAction | makeConstantAction()
Overrides org. Compile constants that Execution will use |
| public void | optimizeStatement()
Overrides org. Generate an optimized QueryTree from a bound QueryTree. |
| public boolean | Returns: true if references SESSION schema tables, else falseOverrides org. Return true if the node references SESSION schema tables (temporary or permanent) |
| pack-priv String |
| cascadeDelete | back to summary |
|---|---|
| private boolean cascadeDelete | |
| COLUMNNAME | back to summary |
|---|---|
| private static final String COLUMNNAME | |
| deferred | back to summary |
|---|---|
| private boolean deferred | |
| dependentConstantActions | back to summary |
|---|---|
| private ConstantAction[] dependentConstantActions | |
| dependentNodes | back to summary |
|---|---|
| private StatementNode[] dependentNodes | |
| readColsBitSet | back to summary |
|---|---|
| private FormatableBitSet readColsBitSet | |
| targetTable | back to summary |
|---|---|
| private FromTable targetTable | |
| DeleteNode | back to summary |
|---|---|
| pack-priv DeleteNode(TableName targetTableName, ResultSetNode queryExpression, MatchingClauseNode matchingClause, ContextManager cm) Constructor for a DeleteNode.
| |
| bindStatement | back to summary |
|---|---|
| public void bindStatement() throws StandardException Overrides org. Bind this DeleteNode. This means looking up tables and columns and getting their types, and figuring out the result types of all expressions, as well as doing view resolution, permissions checking, etc. If any indexes need to be updated, we add all the columns in the base table to the result column list, so that we can use the column values as look-up keys for the index rows to be deleted. Binding a delete will also massage the tree so that the ResultSetNode has column containing the RowLocation of the base row.
| |
| correlateAddedColumns | back to summary |
|---|---|
| private void correlateAddedColumns(ResultColumnList rcl, FromTable fromTable) throws StandardException | |
| generate | back to summary |
|---|---|
| pack-priv void generate(ActivationClassBuilder acb, MethodBuilder mb) throws StandardException Overrides org. Code generation for delete. The generated code will contain: o A static member for the (xxx)ResultSet with the RowLocations o The static member will be assigned the appropriate ResultSet within the nested calls to get the ResultSets. (The appropriate cast to the (xxx)ResultSet will be generated.) o The CurrentRowLocation() in SelectNode's select list will generate a new method for returning the RowLocation as well as a call to that method which will be stuffed in the call to the ProjectRestrictResultSet. o In case of referential actions, this function generate an array of resultsets on its dependent tables.
| |
| getDeleteReadMap | back to summary |
|---|---|
| private static FormatableBitSet getDeleteReadMap(TableDescriptor baseTable, List<ConglomerateDescriptor> conglomerates, TriggerDescriptorList relevantTriggers, boolean[] needsDeferredProcessing) throws StandardException Builds a bitmap of all columns which should be read from the Store in order to satisfy an DELETE statement. 1) finds all indices on this table 2) adds the index columns to a bitmap of affected columns 3) adds the index descriptors to a list of conglomerate descriptors. 4) finds all DELETE triggers on the table 5) if there are any DELETE triggers, then do one of the following a)If all of the triggers have MISSING referencing clause, then that means that the trigger actions do not have access to before and after values. In that case, there is no need to blanketly decide to include all the columns in the read map just because there are triggers defined on the table. b)Since one/more triggers have REFERENCING clause on them, get all the columns because we don't know what the user will ultimately reference. 6) adds the triggers to an evolving list of triggers
| |
| getDependentTableNode | back to summary |
|---|---|
| private StatementNode getDependentTableNode(String schemaName, String tableName, int refAction, ColumnDescriptorList cdl) throws StandardException In case of referential actions, we require to perform DML (UPDATE or DELETE) on the dependent tables. Following function returns the DML Node for the dependent table. | |
| getEmptyDeleteNode | back to summary |
|---|---|
| private DeleteNode getEmptyDeleteNode(String schemaName, String targetTableName) throws StandardException | |
| getEmptyUpdateNode | back to summary |
|---|---|
| private UpdateNode getEmptyUpdateNode(String schemaName, String targetTableName, ColumnDescriptorList cdl) throws StandardException | |
| getPrivType | back to summary |
|---|---|
| pack-priv int getPrivType() Overrides org. Doc from org. Return default privilege needed for this node. Other DML nodes can override this method to set their own default privilege.
| |
| getReadMap | back to summary |
|---|---|
| public FormatableBitSet getReadMap(DataDictionary dd, TableDescriptor baseTable) throws StandardException Gets the map of all columns which must be read out of the base table. These are the columns needed to: o maintain indices o maintain foreign keys The returned map is a FormatableBitSet with 1 bit for each column in the table plus an extra, unsued 0-bit. If a 1-based column id must be read from the base table, then the corresponding 1-based bit is turned ON in the returned FormatableBitSet.
| |
| getSetClause | back to summary |
|---|---|
| private ResultColumnList getSetClause(ColumnDescriptorList cdl) throws StandardException | |
| getStatementType | back to summary |
|---|---|
| protected final int getStatementType() Overrides org. Return the type of statement, something from StatementType.
| |
| makeConstantAction | back to summary |
|---|---|
| public ConstantAction makeConstantAction() throws StandardException Overrides org. Compile constants that Execution will use
| |
| optimizeStatement | back to summary |
|---|---|
| public void optimizeStatement() throws StandardException Overrides org. Doc from org. 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.
| |
| referencesSessionSchema | back to summary |
|---|---|
| public boolean referencesSessionSchema() throws StandardException Overrides org. Return true if the node references SESSION schema tables (temporary or permanent)
| |
| statementToString | back to summary |
|---|---|
| pack-priv String statementToString() Overrides org.
| |