Class CreateTable


  • public class CreateTable
    extends Statement
    A parsed state container for the 'create' statement.
    • Field Detail

      • temporary

        boolean temporary
        Set to true if this create statement is for a temporary table.
      • only_if_not_exists

        boolean only_if_not_exists
        Only create if table doesn't exist.
      • table_name

        java.lang.String table_name
        The name of the table to create.
      • columns

        java.util.ArrayList columns
        List of column declarations (ColumnDef)
      • constraints

        java.util.ArrayList constraints
        List of table constraints (ConstraintDef)
      • tname

        private TableName tname
        The TableName object.
    • Constructor Detail

      • CreateTable

        public CreateTable()
    • Method Detail

      • addConstraintDef

        void addConstraintDef​(ConstraintDef constraint)
        Adds a new ConstraintDef object to this create statement. A ConstraintDef object describes any constraints for the new table we are creating.
      • createDataTableDef

        DataTableDef createDataTableDef()
                                 throws DatabaseException
        Creates a DataTableDef that describes the table that was defined by this create statement. This is used by the 'alter' statement.
        Throws:
        DatabaseException
      • convertColumnDef

        static DataTableColumnDef convertColumnDef​(ColumnDef cdef)
        Returns a com.mckoi.database.interpret.ColumnDef object a a com.mckoi.database.DataTableColumnDef object.
      • prepare

        public void prepare()
                     throws DatabaseException
        Description copied from class: Statement
        Prepares the statement with the given Database object. This is called before the statement is evaluated. The prepare statement queries the database and resolves information about the statement (for example, it resolves column names and aliases and determines the tables that are touched by this statement so we can lock the appropriate tables before we evaluate).

        NOTE: Care must be taken to ensure that all methods called here are safe in as far as modifications to the data occuring. The rules for safety should be as follows. If the database is in EXCLUSIVE mode, then we need to wait until it's switched back to SHARED mode before this method is called. All collection of information done here should not involve any table state info. except for column count, column names, column types, etc. Queries such as obtaining the row count, selectable scheme information, and certainly 'getCellContents' must never be called during prepare. When prepare finishes, the affected tables are locked and the query is safe to 'evaluate' at which time table state is safe to inspect.

        Specified by:
        prepare in class Statement
        Throws:
        DatabaseException