Class DDLStatementNode

    • Method Detail

      • initAndCheck

        protected void initAndCheck​(java.lang.Object objectName)
                             throws StandardException
        Initialize the object name we will be performing the DDL on and check that we are not in the system schema and that DDL is allowed.
        Throws:
        StandardException
      • isAtomic

        public boolean isAtomic()
        A DDL statement is always atomic
        Overrides:
        isAtomic in class StatementNode
        Returns:
        true
      • getRelativeName

        java.lang.String getRelativeName()
        Return the name of the table being dropped. This is the unqualified table name.
        Returns:
        the relative name
      • getFullName

        java.lang.String getFullName()
        Return the full dot expression name of the object being dropped.
        Returns:
        the full name
      • getObjectName

        public final TableName getObjectName()
      • 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
      • getSchemaDescriptor

        protected final SchemaDescriptor getSchemaDescriptor()
                                                      throws StandardException
        Get a schema descriptor for this DDL object. Uses this.objectName. Always returns a schema, we lock in the schema name prior to execution. Checks if current authorizationID is owner of the schema.
        Returns:
        Schema Descriptor
        Throws:
        StandardException - throws on schema name that doesn't exist
      • getSchemaDescriptor

        protected final SchemaDescriptor getSchemaDescriptor​(boolean ownerCheck,
                                                             boolean doSystemSchemaCheck)
                                                      throws StandardException
        Get a schema descriptor for this DDL object. Uses this.objectName. Always returns a schema, we lock in the schema name prior to execution. The most common call to this method is with 2nd parameter true which says that SchemaDescriptor should not be requested for system schema. The only time this method will get called with 2nd parameter set to false will be when user has requested for inplace compress using SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE Above inplace compress can be invoked on system tables. A call to SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE internally gets translated into ALTER TABLE sql. When ALTER TABLE is executed for SYSCS_INPLACE_COMPRESS_TABLE, we want to allow SchemaDescriptor request for system tables. DERBY-1062
        Parameters:
        ownerCheck - If check for schema owner is needed
        doSystemSchemaCheck - If check for system schema is needed. If set to true, then throw an exception if schema descriptor is requested for a system schema. The only time this param will be set to false is when user is asking for inplace compress of a system table. DERBY-1062
        Returns:
        Schema Descriptor
        Throws:
        StandardException - throws on schema name that doesn't exist
      • getTableDescriptor

        protected final TableDescriptor getTableDescriptor​(boolean doSystemTableCheck)
                                                    throws StandardException
        Validate that the table is ok for DDL -- e.g. that it exists, it is not a view. It is ok for it to be a system table. Also check that its schema is ok. Currently, the only time this method is called is when user has asked for inplace compress. eg call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('SYS','SYSTABLES',1,1,1); Inplace compress is allowed on both system and user tables.
        Returns:
        the validated table descriptor, never null
        Throws:
        StandardException - on error
      • getTableDescriptor

        protected final TableDescriptor getTableDescriptor​(TableName tableName)
                                                    throws StandardException
        Validate that the table is ok for DDL -- e.g. that it exists, it is not a view, and is not a system table, and that its schema is ok.
        Returns:
        the validated table descriptor, never null
        Throws:
        StandardException - on error
      • justGetDescriptor

        private TableDescriptor justGetDescriptor​(TableName tableName)
                                           throws StandardException
        Just get the table descriptor. Don't worry if it belongs to a view, system table, synonym or a real table. Let the caller decide what to do.
        Parameters:
        tableName -
        Returns:
        TableDescriptor for the give TableName
        Throws:
        StandardException - on error
      • makeFromList

        FromList makeFromList​(DataDictionary dd,
                              TableElementList tableElementList,
                              boolean creatingTable)
                       throws StandardException
        Make a from list for binding query fragments in a CREATE/ALTER TABLE statement.
        Parameters:
        dd - Metadata.
        tableElementList - the parenthesized list of columns and constraints in a CREATE/ALTER TABLE statement
        creatingTable - true if this is for CREATE TABLE. false if this is for ALTER TABLE
        Throws:
        StandardException
      • 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 QueryTreeNode
        Parameters:
        v - the visitor
        Throws:
        StandardException - on errors raised by the visitor