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 Details

    • unique

      private boolean unique
    • properties

      private Properties properties
    • indexType

      private String indexType
    • indexName

      private TableName indexName
    • tableName

      private TableName tableName
    • columnNameList

      private List<String> columnNameList
    • columnNames

      private String[] columnNames
    • isAscending

      private boolean[] isAscending
    • boundColumnIDs

      private int[] boundColumnIDs
    • td

      private TableDescriptor td
  • Constructor Details

    • CreateIndexNode

      CreateIndexNode(boolean unique, String indexType, TableName indexName, TableName tableName, List<String> columnNameList, 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 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 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
    • 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
    • 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
    • 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