Class RenameNode

All Implemented Interfaces:
Visitable

class RenameNode extends DDLStatementNode
A RenameNode is the root of a QueryTree that represents a RENAME TABLE/COLUMN/INDEX statement.
  • Field Details

    • newTableName

      protected TableName newTableName
    • oldObjectName

      protected String oldObjectName
    • newObjectName

      protected String newObjectName
    • td

      protected TableDescriptor td
    • conglomerateNumber

      private long conglomerateNumber
    • usedAlterTable

      protected boolean usedAlterTable
    • renamingWhat

      protected int renamingWhat
  • Constructor Details

    • RenameNode

      RenameNode(Object tableName, String oldObjectName, String newObjectName, boolean usedAlterTable, int renamingWhat, ContextManager cm) throws StandardException
      Constructor for a RenameNode
      Parameters:
      tableName - The name of the table. This is the table which is being renamed in case of rename table. In case of rename column, the column being renamed belongs to this table. In case of rename index, this is null because index name is unique within a schema and doesn't have to be associated with a table name. Coming from ALTER TABLE path, tableName will be TableName object. Mostly a TableName object, but coming from RENAME COLUMN path, tableName will be a String.
      oldObjectName - This is either the name of column/index in case of rename column/index. For rename table, this is null.
      newObjectName - This is new name for table/column/index
      usedAlterTable - True-Used Alter Table, False-Used Rename. For rename index, this will always be false because there is no alter table command to rename index
      renamingWhat - Rename a 1 - table, 2 - column, 3 - index
      cm - context manager
      Throws:
      StandardException - Thrown on error
  • Method Details

    • toString

      public 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 DDLStatementNode
      Returns:
      This object as a String
    • statementToString

      String statementToString()
      Specified by:
      statementToString in class StatementNode
    • bindStatement

      public void bindStatement() throws StandardException
      Bind this node. This means doing any static error checking that can be done before actually renaming the table/column/index. For a table rename: looking up the from table, verifying it exists verifying it's not a system table, verifying it's not view and looking up to table, verifying it doesn't exist. For a column rename: looking up the table, verifying it exists, verifying it's not a system table, verifying it's not view, verifying the from column exists, verifying the to column doesn't exist. For a index rename: looking up the table, verifying it exists, verifying it's not a system table, verifying it's not view, verifying the from index exists, verifying the to index doesn't exist.
      Overrides:
      bindStatement in class StatementNode
      Throws:
      StandardException - Thrown on error
    • referencesSessionSchema

      public boolean referencesSessionSchema() throws StandardException
      Return true if the node references SESSION schema tables (temporary or permanent)
      Overrides:
      referencesSessionSchema in class QueryTreeNode
      Returns:
      true if references SESSION schema tables, else false
      Throws:
      StandardException - Thrown on error
    • renameTableBind

      private void renameTableBind(DataDictionary dd) throws StandardException
      Throws:
      StandardException
    • renameColumnBind

      private void renameColumnBind(DataDictionary dd) throws StandardException
      Throws:
      StandardException
    • makeConstantAction

      public ConstantAction makeConstantAction() throws StandardException
      Create the Constant information that will drive the guts of Execution
      Overrides:
      makeConstantAction in class QueryTreeNode
      Throws:
      StandardException - Thrown on failure
    • descriptorExistsException

      private StandardException descriptorExistsException(TupleDescriptor tuple, TupleDescriptor parent)
    • acceptChildren

      void acceptChildren(Visitor v) throws StandardException
      Description copied from class: QueryTreeNode
      Accept a visitor on all child nodes. All sub-classes that add fields that should be visited, should override this method and call accept(v) on all visitable fields, as well as super.acceptChildren(v) to make sure all visitable fields defined by the super-class are accepted too.
      Overrides:
      acceptChildren in class DDLStatementNode
      Parameters:
      v - the visitor
      Throws:
      StandardException - on errors raised by the visitor