## org.h2.table
Class RegularTable

    java.lang.Object
      org.h2.engine.DbObjectBase
          org.h2.schema.SchemaObjectBase
              org.h2.table.Table
                  org.h2.table.TableBase
                      org.h2.table.RegularTable

All Implemented Interfaces:
  DbObject, SchemaObject

    public class RegularTable

extends TableBase

Most tables are an instance of this class. For this table, the data is stored in the database. The actual data is not kept here, instead it is kept in the indexes. There is at least one index, the scan index.

Field Summary

Fields inherited from class org.h2.table.TableBase
`tableEngine`

Fields inherited from class org.h2.table.Table
`columns, compareMode, EXTERNAL_TABLE_ENGINE, isHidden, SYSTEM_TABLE, TABLE, TABLE_LINK, TYPE_CACHED, TYPE_MEMORY, VIEW`

Fields inherited from class org.h2.engine.DbObjectBase
`comment, database, trace`

Fields inherited from interface org.h2.engine.DbObject
`AGGREGATE, COMMENT, CONSTANT, CONSTRAINT, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, TABLE_OR_VIEW, TRIGGER, USER, USER_DATATYPE`

Constructor Summary
`RegularTable(CreateTableData data)`

Method Summary
`Index` `addIndex(Session session, java.lang.String indexName, int indexId, IndexColumn[] cols, IndexType indexType, boolean create, java.lang.String indexComment)` Create an index for this table
`void` `addRow(Session session, Row row)` Add a row to the table and all indexes.
`boolean` `canDrop()` Check if this table can be dropped.
`boolean` `canGetRowCount()` Check if the row count can be retrieved quickly.
`boolean` `canTruncate()` Check if this table can be truncated.
`java.util.ArrayList<Session>` `checkDeadlock(Session session, Session clash, java.util.Set<Session> visited)` Check if a deadlock occurred.
`void` `checkRename()` Check if this object can be renamed.
`void` `checkSupportAlter()` Check if this table supports ALTER TABLE.
`void` `close(Session session)` Close the table object and flush changes.
`void` `commit(short operation, Row row)` Commit an operation (when using multi-version concurrency).
`static Row` `createRow(Value[] data)` Create a row from the values.
`boolean` `getContainsLargeObject()`
`java.util.ArrayList<Index>` `getIndexes()` Get all indexes for this table.
`long` `getMaxDataModificationId()` Get the last data modification id.
`Row` `getRow(Session session, long key)` Read the given row.
`long` `getRowCount(Session session)` Get the row count for this table.
`long` `getRowCountApproximation()` Get the approximated row count for this table.
`Column` `getRowIdColumn()` Get the row id column if this table has one.
`Index` `getScanIndex(Session session)` Get the scan index to iterate through all rows.
`java.lang.String` `getTableType()` Get the table type name
`Index` `getUniqueIndex()` Get any unique index for this table if one exists.
`boolean` `isDeterministic()` Check if the table is deterministic.
`boolean` `isLockedExclusively()` Check if this table is locked exclusively.
`boolean` `isLockedExclusivelyBy(Session session)` Check if the table is exclusively locked by this session.
`void` `lock(Session session, boolean exclusive, boolean force)` Lock the table for the given session.
`void` `removeChildrenAndResources(Session session)` Remove all dependent objects and free all resources (files, blocks in files) of this object.
`void` `removeRow(Session session, Row row)` Remove a row from the table and all indexes.
`void` `setCompareMode(CompareMode compareMode)`
`void` `setRowCount(long count)` Set the row count of this table.
`java.lang.String` `toString()`
`void` `truncate(Session session)` Remove all rows from the table and indexes.
`void` `unlock(Session s)` Release the lock for this session.

Methods inherited from class org.h2.table.TableBase
`getCreateSQL, getDropSQL, isGlobalTemporary`

Methods inherited from class org.h2.table.Table

`addConstraint, addDependencies, addSequence, addTrigger, addView, canReference, checkWritingAllowed, compareTypeSave, doesColumnExist, dropSingleColumnConstraintsAndIndexes, findPrimaryKey, fire, fireAfterRow, fireBeforeRow, fireRow, getBestPlanItem, getCheckForeignKeyConstraints, getChildren, getColumn, getColumn, getColumns, getCompareMode, getConstraints, getCreateSQLForCopy, getDefaultValue, getIndexForColumn, getOnCommitDrop, getOnCommitTruncate, getPrimaryKey, getTemplateRow, getTemplateSimpleRow, getType, getViews, hasSelectTrigger, isHidden, isPersistData, isPersistIndexes, removeConstraint, removeIndex, removeIndexOrTransferOwnership, removeSequence, removeTrigger, removeView, rename, renameColumn, setCheckForeignKeyConstraints, setColumns, setOnCommitDrop, setOnCommitTruncate, updateRows, validateConvertUpdateSequence`

Methods inherited from class org.h2.schema.SchemaObjectBase
`getSchema, getSQL, initSchemaObjectBase`

Methods inherited from class org.h2.engine.DbObjectBase
`getComment, getDatabase, getId, getModificationId, getName, initDbObjectBase, invalidate, isTemporary, setComment, setModified, setObjectName, setTemporary`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.h2.engine.DbObject
`getComment, getDatabase, getId, getName, isTemporary, setComment, setTemporary`

Constructor Detail

### RegularTable

    public RegularTable(CreateTableData data)

Method Detail

### close

    public void close(Session session)

  Description copied from class: `Table`
  Close the table object and flush changes.

  Specified by:
    `close` in class `Table`
  Parameters:
    `session` - the session

### getRow

    public Row getRow(Session session,
                      long key)

  Read the given row.

  Parameters:
    `session` - the session
    `key` - unique key
  Returns:
    the row

### addRow

    public void addRow(Session 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

### commit

    public void commit(short operation,
                       Row row)

  Description copied from class: `Table`
  Commit an operation (when using multi-version concurrency).

  Overrides:
    `commit` in class `Table`
  Parameters:
    `operation` - the operation
    `row` - the row

### getScanIndex

    public Index getScanIndex(Session 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

### getUniqueIndex

    public Index getUniqueIndex()

  Description copied from class: `Table`
  Get any unique index for this table if one exists.

  Specified by:
    `getUniqueIndex` in class `Table`
  Returns:
    a unique index

### getIndexes

    public 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

### addIndex

    public Index addIndex(Session session,
                          java.lang.String indexName,
                          int indexId,
                          IndexColumn[] cols,
                          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
    `indexType` - the index type
    `create` - whether this is a new index
    `indexComment` - the comment
  Returns:
    the index

### canGetRowCount

    public boolean canGetRowCount()

  Description copied from class: `Table`
  Check if the row count can be retrieved quickly.

  Specified by:
    `canGetRowCount` in class `Table`
  Returns:
    true if it can

### canDrop

    public 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

### getRowCount

    public long getRowCount(Session 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

### removeRow

    public void removeRow(Session 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

### truncate

    public void truncate(Session session)

  Description copied from class: `Table`
  Remove all rows from the table and indexes.

  Specified by:
    `truncate` in class `Table`
  Parameters:
    `session` - the session

### isLockedExclusivelyBy

    public boolean isLockedExclusivelyBy(Session session)

  Description copied from class: `Table`
  Check if the table is exclusively locked by this session.

  Overrides:
    `isLockedExclusivelyBy` in class `Table`
  Parameters:
    `session` - the session
  Returns:
    true if it is

### lock

    public void lock(Session session,
                     boolean exclusive,
                     boolean force)

  Description copied from class: `Table`
  Lock the table for the given session. This method waits until the lock is granted.

  Specified by:
    `lock` in class `Table`
  Parameters:
    `session` - the session
    `exclusive` - true for write locks, false for read locks
    `force` - lock even in the MVCC mode

### checkDeadlock

    public java.util.ArrayList<Session> checkDeadlock(Session session,
                                                      Session clash,
                                                      java.util.Set<Session> visited)

  Description copied from class: `Table`
  Check if a deadlock occurred. This method is called recursively. There is a circle if the session to be tested has already being visited. If this session is part of the circle (if it is the clash session), the method must return an empty object array. Once a deadlock has been detected, the methods must add the session to the list. If this session is not part of the circle, or if no deadlock is detected, this method returns null.

  Overrides:
    `checkDeadlock` in class `Table`
  Parameters:
    `session` - the session to be tested for
    `clash` - set with sessions already visited, and null when starting verification
    `visited` - set with sessions already visited, and null when starting verification
  Returns:
    an object array with the sessions involved in the deadlock, or null

### isLockedExclusively

    public boolean isLockedExclusively()

  Description copied from class: `Table`
  Check if this table is locked exclusively.

  Specified by:
    `isLockedExclusively` in class `Table`
  Returns:
    true if it is.

### unlock

    public void unlock(Session s)

  Description copied from class: `Table`
  Release the lock for this session.

  Specified by:
    `unlock` in class `Table`
  Parameters:
    `s` - the session

### createRow

    public static Row createRow(Value[] data)

  Create a row from the values.

  Parameters:
    `data` - the value list
  Returns:
    the row

### setRowCount

    public void setRowCount(long count)

  Set the row count of this table.

  Parameters:
    `count` - the row count

### removeChildrenAndResources

    public void removeChildrenAndResources(Session session)

  Description copied from class: `DbObjectBase`
  Remove all dependent objects and free all resources (files, blocks in files) of this object.

  Specified by:
    `removeChildrenAndResources` in interface `DbObject`
  Overrides:
    `removeChildrenAndResources` in class `Table`
  Parameters:
    `session` - the session

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `DbObjectBase`

### checkRename

    public void checkRename()

  Description copied from class: `DbObjectBase`
  Check if this object can be renamed. System objects may not be renamed.

  Specified by:
    `checkRename` in interface `DbObject`
  Specified by:
    `checkRename` in class `DbObjectBase`

### checkSupportAlter

    public void checkSupportAlter()

  Description copied from class: `Table`
  Check if this table supports ALTER TABLE.

  Specified by:
    `checkSupportAlter` in class `Table`

### canTruncate

    public boolean canTruncate()

  Description copied from class: `Table`
  Check if this table can be truncated.

  Overrides:
    `canTruncate` in class `Table`
  Returns:
    true if it can

### getTableType

    public java.lang.String getTableType()

  Description copied from class: `Table`
  Get the table type name

  Specified by:
    `getTableType` in class `Table`
  Returns:
    the table type name

### getMaxDataModificationId

    public long getMaxDataModificationId()

  Description copied from class: `Table`
  Get the last data modification id.

  Specified by:
    `getMaxDataModificationId` in class `Table`
  Returns:
    the modification id

### getContainsLargeObject

    public boolean getContainsLargeObject()

### getRowCountApproximation

    public long getRowCountApproximation()

  Description copied from class: `Table`
  Get the approximated row count for this table.

  Specified by:
    `getRowCountApproximation` in class `Table`
  Returns:
    the approximated row count

### setCompareMode

    public void setCompareMode(CompareMode compareMode)

### isDeterministic

    public boolean isDeterministic()

  Description copied from class: `Table`
  Check if the table is deterministic.

  Specified by:
    `isDeterministic` in class `Table`
  Returns:
    true if it is

### getRowIdColumn

    public Column getRowIdColumn()

  Description copied from class: `Table`
  Get the row id column if this table has one.

  Overrides:
    `getRowIdColumn` in class `Table`
  Returns:
    the row id column, or null