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 Detail

      • newTableName

        protected TableName newTableName
      • oldObjectName

        protected java.lang.String oldObjectName
      • newObjectName

        protected java.lang.String newObjectName
      • conglomerateNumber

        private long conglomerateNumber
      • usedAlterTable

        protected boolean usedAlterTable
      • renamingWhat

        protected int renamingWhat
    • Constructor Detail

      • RenameNode

        RenameNode​(java.lang.Object tableName,
                   java.lang.String oldObjectName,
                   java.lang.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 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 DDLStatementNode
        Returns:
        This object as a String
      • 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
      • 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