Package org.h2.table

Class MetaTable

    • Field Detail

      • ROW_COUNT_APPROXIMATION

        public static final long ROW_COUNT_APPROXIMATION
        The approximate number of rows of a meta table.
        See Also:
        Constant Field Values
      • type

        protected final int type
        The table type.
      • indexColumn

        protected int indexColumn
        The indexed column.
      • metaIndex

        protected MetaIndex metaIndex
        The index for this table.
    • Constructor Detail

      • MetaTable

        protected MetaTable​(Schema schema,
                            int id,
                            int type)
        Create a new metadata table.
        Parameters:
        schema - the schema
        id - the object id
        type - the meta table type
    • Method Detail

      • setMetaTableName

        protected final void setMetaTableName​(java.lang.String upperName)
      • column

        final Column column​(java.lang.String name)
        Creates a column with the specified name and character string data type.
        Parameters:
        name - the uppercase column name
        Returns:
        the column
      • column

        protected final Column column​(java.lang.String name,
                                      TypeInfo type)
        Creates a column with the specified name and data type.
        Parameters:
        name - the uppercase column name
        type - the data type
        Returns:
        the column
      • getCreateSQL

        public final java.lang.String getCreateSQL()
        Description copied from class: DbObject
        Construct the CREATE ... SQL statement for this object.
        Specified by:
        getCreateSQL in class DbObject
        Returns:
        the SQL statement
      • addIndex

        public final Index addIndex​(SessionLocal session,
                                    java.lang.String indexName,
                                    int indexId,
                                    IndexColumn[] cols,
                                    int uniqueColumnCount,
                                    IndexType indexType,
                                    boolean create,
                                    java.lang.String indexComment)
        Description copied from class: Table
        Create an index for this table
        Specified by:
        addIndex in class Table
        Parameters:
        session - the session
        indexName - the name of the index
        indexId - the id
        cols - the index columns
        uniqueColumnCount - the count of unique columns
        indexType - the index type
        create - whether this is a new index
        indexComment - the comment
        Returns:
        the index
      • identifier

        protected final java.lang.String identifier​(java.lang.String s)
        If needed, convert the identifier to lower case.
        Parameters:
        s - the identifier to convert
        Returns:
        the converted identifier
      • checkIndex

        protected final boolean checkIndex​(SessionLocal session,
                                           java.lang.String value,
                                           Value indexFrom,
                                           Value indexTo)
        Checks index conditions.
        Parameters:
        session - the session
        value - the value
        indexFrom - the lower bound of value, or null
        indexTo - the higher bound of value, or null
        Returns:
        whether row should be included into result
      • hideTable

        protected final boolean hideTable​(Table table,
                                          SessionLocal session)
        Check whether to hide the table. Tables are never hidden in the system session.
        Parameters:
        table - the table
        session - the session
        Returns:
        whether the table is hidden
      • generateRows

        public abstract java.util.ArrayList<Row> generateRows​(SessionLocal session,
                                                              SearchRow first,
                                                              SearchRow last)
        Generate the data for the given metadata table using the given first and last row filters.
        Parameters:
        session - the session
        first - the first row to return
        last - the last row to return
        Returns:
        the generated rows
      • isInsertable

        public boolean isInsertable()
        Description copied from class: Table
        Returns whether this table is insertable.
        Overrides:
        isInsertable in class Table
        Returns:
        whether this table is insertable
      • removeRow

        public final void removeRow​(SessionLocal session,
                                    Row row)
        Description copied from class: Table
        Remove a row from the table and all indexes.
        Specified by:
        removeRow in class Table
        Parameters:
        session - the session
        row - the row
      • addRow

        public final void addRow​(SessionLocal session,
                                 Row row)
        Description copied from class: Table
        Add a row to the table and all indexes.
        Specified by:
        addRow in class Table
        Parameters:
        session - the session
        row - the row
      • removeChildrenAndResources

        public final void removeChildrenAndResources​(SessionLocal session)
        Description copied from class: DbObject
        Delete all dependent children objects and resources of this object.
        Overrides:
        removeChildrenAndResources in class Table
        Parameters:
        session - the session
      • close

        public final void close​(SessionLocal session)
        Description copied from class: Table
        Close the table object and flush changes.
        Specified by:
        close in class Table
        Parameters:
        session - the session
      • add

        protected final void add​(SessionLocal session,
                                 java.util.ArrayList<Row> rows,
                                 java.lang.Object... stringsOrValues)
        Add a row to a list.
        Parameters:
        session - the session
        rows - the original row list
        stringsOrValues - the values, or strings
      • checkRename

        public final void checkRename()
        Description copied from class: DbObject
        Check if renaming is allowed. Does nothing when allowed.
        Overrides:
        checkRename in class DbObject
      • checkSupportAlter

        public final void checkSupportAlter()
        Description copied from class: Table
        Check if this table supports ALTER TABLE.
        Specified by:
        checkSupportAlter in class Table
      • truncate

        public final long truncate​(SessionLocal session)
        Description copied from class: Table
        Remove all rows from the table and indexes.
        Specified by:
        truncate in class Table
        Parameters:
        session - the session
        Returns:
        number of removed rows, possibly including uncommitted rows
      • getRowCount

        public long getRowCount​(SessionLocal session)
        Description copied from class: Table
        Get the row count for this table.
        Specified by:
        getRowCount in class Table
        Parameters:
        session - the session
        Returns:
        the row count
      • canGetRowCount

        public boolean canGetRowCount​(SessionLocal session)
        Description copied from class: Table
        Check if the row count can be retrieved quickly.
        Specified by:
        canGetRowCount in class Table
        Parameters:
        session - the session
        Returns:
        true if it can
      • canDrop

        public final boolean canDrop()
        Description copied from class: Table
        Check if this table can be dropped.
        Specified by:
        canDrop in class Table
        Returns:
        true if it can
      • getTableType

        public final TableType getTableType()
        Description copied from class: Table
        Get the table type name
        Specified by:
        getTableType in class Table
        Returns:
        the table type name
      • getScanIndex

        public final Index getScanIndex​(SessionLocal session)
        Description copied from class: Table
        Get the scan index to iterate through all rows.
        Specified by:
        getScanIndex in class Table
        Parameters:
        session - the session
        Returns:
        the index
      • getIndexes

        public final java.util.ArrayList<Index> getIndexes()
        Description copied from class: Table
        Get all indexes for this table.
        Specified by:
        getIndexes in class Table
        Returns:
        the list of indexes
      • getRowCountApproximation

        public long getRowCountApproximation​(SessionLocal session)
        Description copied from class: Table
        Get the approximated row count for this table.
        Specified by:
        getRowCountApproximation in class Table
        Parameters:
        session - the session
        Returns:
        the approximated row count
      • isDeterministic

        public final boolean isDeterministic()
        Description copied from class: Table
        Check if the table is deterministic.
        Specified by:
        isDeterministic in class Table
        Returns:
        true if it is
      • canReference

        public final boolean canReference()
        Description copied from class: Table
        Check if this table can be referenced.
        Overrides:
        canReference in class Table
        Returns:
        true if it can