Class CreateIndexNode

  • All Implemented Interfaces:
    Visitable

    class CreateIndexNode
    extends DDLStatementNode
    A CreateIndexNode is the root of a QueryTree that represents a CREATE INDEX statement.
    • Field Detail

      • unique

        private boolean unique
      • properties

        private java.util.Properties properties
      • indexType

        private java.lang.String indexType
      • columnNameList

        private java.util.List<java.lang.String> columnNameList
      • columnNames

        private java.lang.String[] columnNames
      • isAscending

        private boolean[] isAscending
      • boundColumnIDs

        private int[] boundColumnIDs
    • Constructor Detail

      • CreateIndexNode

        CreateIndexNode​(boolean unique,
                        java.lang.String indexType,
                        TableName indexName,
                        TableName tableName,
                        java.util.List<java.lang.String> columnNameList,
                        java.util.Properties properties,
                        ContextManager cm)
                 throws StandardException
        Constructor for a CreateIndexNode
        Parameters:
        unique - True means it's a unique index
        indexType - The type of index
        indexName - The name of the index
        tableName - The name of the table the index will be on
        columnNameList - A list of column names, in the order they appear in the index.
        properties - The optional properties list associated with the 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 CreateIndexNode. This means doing any static error checking that can be done before actually creating the table. For example, verifying that the column name list does not contain any duplicate column names.
        Overrides:
        bindStatement in class StatementNode
        Throws:
        StandardException - Thrown on error
      • verifyAndGetUniqueNames

        private void verifyAndGetUniqueNames()
                                      throws StandardException
        Check the uniqueness of the column names within the derived column list.
        Throws:
        StandardException - Thrown if column list contains a duplicate name.
      • 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