Documentation of 'org.apache.derby.impl.sql.compile.UpdateNode' Java class
UpdateNode
org.apache.derby.impl.sql.compile

Class UpdateNode

  • All Implemented Interfaces:
    Visitable


    public final class UpdateNode
    extends StatementNode
    An UpdateNode represents an UPDATE statement. It is the top node of the query tree for that statement. For positioned update, there may be no from table specified. The from table will be derived from the cursor specification of the named cursor.
    • Field Detail

      • indexConglomerateNumbers

        public long[] indexConglomerateNumbers
      • indexNames

        public java.lang.String[] indexNames
    • Method Detail

      • toString

        public java.lang.String toString()
        Convert this object to a String. See comments in QueryTreeNode.java for how this should be done for tree printing.
        Overrides:
        toString in class StatementNode
        Returns:
        This object as a String
      • bindStatement

        public void bindStatement()
                           throws StandardException
        Bind this UpdateNode. 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.

        Binding an update will also massage the tree so that the ResultSetNode has a set of columns to contain the old row value, followed by a set of columns to contain the new row value, followed by a column to contain the RowLocation of the row to be updated.

        Overrides:
        bindStatement in class StatementNode
        Throws:
        StandardException - Thrown on error
      • inMatchingClause

        public boolean inMatchingClause()
        Returns true if this DMLModStatement a [ NOT ] MATCHED action of a MERGE statement
      • isAtomic

        public boolean isAtomic()
        INSERT/UPDATE/DELETE are always atomic.
        Returns:
        true
      • parseGenerationClause

        public ValueNode parseGenerationClause(java.lang.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
      • parseCheckConstraint

        public ValueNode parseCheckConstraint(java.lang.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,
                                             org.apache.derby.impl.sql.compile.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,
                                                      org.apache.derby.impl.sql.compile.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(org.apache.derby.impl.sql.compile.ResultColumnList rcl,
                                              int resultSetNumber,
                                              boolean isUpdate,
                                              org.apache.derby.impl.sql.compile.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 table
        resultSetNumber - index of base table into array of ResultSets
        isUpdate - true if this is for an UPDATE statement
        ecb - code generation state variable
        mb - the method being generated
        Throws:
        StandardException - Thrown on error
      • optimizeStatement

        public void optimizeStatement()
                               throws StandardException
        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.
        Throws:
        StandardException - Thrown on failure
      • makeResultDescription

        public ResultDescription makeResultDescription()
        Make a ResultDescription for use in a PreparedStatement. ResultDescriptions are visible to JDBC only for cursor statements. For other types of statements, they are only used internally to get descriptions of the base tables being affected. For example, for an INSERT statement, the ResultDescription describes the rows in the table being inserted into, which is useful when the values being inserted are of a different type or length than the columns in the base table.
        Overrides:
        makeResultDescription in class StatementNode
        Returns:
        A ResultDescription for this DML statement

DataMelt 3.0 © DataMelt by jWork.ORG

Ads help maintain this website.