|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectorg.h2.engine.DbObjectBase
org.h2.schema.SchemaObjectBase
org.h2.table.Table
public abstract class Table
This is the base class for most tables. A table contains a list of columns and a list of rows.
| Field Summary | |
|---|---|
protected Column[] |
columns
The columns of this table. |
protected CompareMode |
compareMode
The compare mode used for this table. |
static java.lang.String |
EXTERNAL_TABLE_ENGINE
The table type name for external table engines. |
protected boolean |
isHidden
Protected tables are not listed in the meta data and are excluded when using the SCRIPT command. |
static java.lang.String |
SYSTEM_TABLE
The table type name for system tables. |
static java.lang.String |
TABLE
The table type name for regular data tables. |
static java.lang.String |
TABLE_LINK
The table type name for linked tables. |
static int |
TYPE_CACHED
The table type that means this table is a regular persistent table. |
static int |
TYPE_MEMORY
The table type that means this table is a regular persistent table. |
static java.lang.String |
VIEW
The table type name for views. |
| 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 | |
|---|---|
Table(Schema schema,
int id,
java.lang.String name,
boolean persistIndexes,
boolean persistData)
|
|
| Method Summary | |
|---|---|
void |
addConstraint(Constraint constraint)
Add a constraint to the table. |
void |
addDependencies(java.util.HashSet<DbObject> dependencies)
Add all objects that this table depends on to the hash set. |
abstract 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 |
abstract void |
addRow(Session session,
Row row)
Add a row to the table and all indexes. |
void |
addSequence(Sequence sequence)
Add a sequence to this table. |
void |
addTrigger(TriggerObject trigger)
Add a trigger to this table. |
void |
addView(TableView view)
Add a view to this table. |
abstract boolean |
canDrop()
Check if this table can be dropped. |
abstract boolean |
canGetRowCount()
Check if the row count can be retrieved quickly. |
boolean |
canReference()
Check if this table can be referenced. |
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. |
abstract void |
checkSupportAlter()
Check if this table supports ALTER TABLE. |
void |
checkWritingAllowed()
Tests if the table can be written. |
abstract 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). |
int |
compareTypeSave(Value a,
Value b)
Compare two values with the current comparison mode. |
void |
dropSingleColumnConstraintsAndIndexes(Session session,
Column col)
Check that this column is not referenced by a multi-column constraint or multi-column index. |
Index |
findPrimaryKey()
Get the primary key index if there is one, or null if there is none. |
void |
fire(Session session,
int type,
boolean beforeAction)
Fire the triggers for this table. |
void |
fireAfterRow(Session session,
Row oldRow,
Row newRow,
boolean rollback)
Fire all triggers that need to be called after a row is updated. |
boolean |
fireBeforeRow(Session session,
Row oldRow,
Row newRow)
Fire all triggers that need to be called before a row is updated. |
boolean |
fireRow()
Check if row based triggers or constraints are defined. |
PlanItem |
getBestPlanItem(Session session,
int[] masks)
Get the best plan for the given search mask. |
boolean |
getCheckForeignKeyConstraints()
|
java.util.ArrayList<DbObject> |
getChildren()
Get the list of dependent children (for tables, this includes indexes and so on). |
Column |
getColumn(int index)
Get the column at the given index. |
Column |
getColumn(java.lang.String columnName)
Get the column with the given name. |
Column[] |
getColumns()
|
CompareMode |
getCompareMode()
|
java.util.ArrayList<Constraint> |
getConstraints()
|
java.lang.String |
getCreateSQLForCopy(Table table,
java.lang.String quotedName)
Build a SQL statement to re-create the object, or to create a copy of the object with a different name or referencing a different table |
Value |
getDefaultValue(Session session,
Column column)
Get or generate a default value for the given column. |
abstract java.util.ArrayList<Index> |
getIndexes()
Get all indexes for this table. |
Index |
getIndexForColumn(Column column,
boolean first)
Get the index that has the given column as the first element. |
abstract long |
getMaxDataModificationId()
Get the last data modification id. |
boolean |
getOnCommitDrop()
|
boolean |
getOnCommitTruncate()
|
Index |
getPrimaryKey()
|
abstract long |
getRowCount(Session session)
Get the row count for this table. |
abstract long |
getRowCountApproximation()
Get the approximated row count for this table. |
abstract Index |
getScanIndex(Session session)
Get the scan index to iterate through all rows. |
abstract java.lang.String |
getTableType()
Get the table type name |
Row |
getTemplateRow()
|
SearchRow |
getTemplateSimpleRow(boolean singleColumn)
Get a new simple row object. |
int |
getType()
Get the object type. |
abstract Index |
getUniqueIndex()
Get any unique index for this table if one exists. |
java.util.ArrayList<TableView> |
getViews()
|
abstract boolean |
hasRowIdColumn()
Check if this table has a row id column. |
boolean |
hasSelectTrigger()
Check whether this table has a select trigger. |
abstract boolean |
isDeterministic()
Check if the table is deterministic. |
boolean |
isGlobalTemporary()
|
boolean |
isHidden()
Check whether this is a hidden object that doesn't appear in the meta data and in the script, and is not dropped on DROP ALL OBJECTS. |
abstract boolean |
isLockedExclusively()
Check if this table is locked exclusively. |
boolean |
isLockedExclusivelyBy(Session session)
Check if the table is exclusively locked by this session. |
boolean |
isPersistData()
|
boolean |
isPersistIndexes()
|
abstract 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 |
removeConstraint(Constraint constraint)
Remove the given constraint from the list. |
void |
removeIndex(Index index)
Remove the given index from the list. |
void |
removeIndexOrTransferOwnership(Session session,
Index index)
If the index is still required by a constraint, transfer the ownership to it. |
abstract void |
removeRow(Session session,
Row row)
Remove a row from the table and all indexes. |
void |
removeSequence(Session session,
Sequence sequence)
Remove a sequence from the table. |
void |
removeTrigger(TriggerObject trigger)
Remove the given trigger from the list. |
void |
rename(java.lang.String newName)
Rename the object. |
void |
renameColumn(Column column,
java.lang.String newName)
Rename a column of this table. |
void |
setCheckForeignKeyConstraints(Session session,
boolean enabled,
boolean checkExisting)
Enable or disable foreign key constraint checking for this table. |
protected void |
setColumns(Column[] columns)
|
void |
setOnCommitDrop(boolean onCommitDrop)
|
void |
setOnCommitTruncate(boolean onCommitTruncate)
|
abstract void |
truncate(Session session)
Remove all rows from the table and indexes. |
abstract void |
unlock(Session s)
Release the lock for this session. |
void |
updateRows(Prepared prepared,
Session session,
RowList rows)
Update a list of rows in this table. |
void |
validateConvertUpdateSequence(Session session,
Row row)
Validate all values in this row, convert the values if required, and update the sequence values if required. |
| Methods inherited from class org.h2.schema.SchemaObjectBase |
|---|
getSchema, getSQL, initSchemaObjectBase |
| Methods inherited from class org.h2.engine.DbObjectBase |
|---|
checkRename, getComment, getCreateSQL, getDatabase, getDropSQL, getId, getModificationId, getName, initDbObjectBase, invalidate, isTemporary, setComment, setModified, setObjectName, setTemporary, toString |
| 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 |
|---|
checkRename, getComment, getCreateSQL, getDatabase, getDropSQL, getId, getModificationId, getName, isTemporary, setComment, setModified, setTemporary |
| Field Detail |
|---|
public static final int TYPE_CACHED
public static final int TYPE_MEMORY
public static final java.lang.String TABLE_LINK
public static final java.lang.String SYSTEM_TABLE
public static final java.lang.String TABLE
public static final java.lang.String VIEW
public static final java.lang.String EXTERNAL_TABLE_ENGINE
protected Column[] columns
protected CompareMode compareMode
protected boolean isHidden
| Constructor Detail |
|---|
public Table(Schema schema,
int id,
java.lang.String name,
boolean persistIndexes,
boolean persistData)
| Method Detail |
|---|
public void rename(java.lang.String newName)
DbObject
rename in interface DbObjectrename in class DbObjectBasenewName - the new name
public abstract void lock(Session session,
boolean exclusive,
boolean force)
session - the sessionexclusive - true for write locks, false for read locksforce - lock even in the MVCC mode
SQLException - if a lock timeout occurredpublic abstract void close(Session session)
session - the sessionpublic abstract void unlock(Session s)
s - the session
public abstract Index addIndex(Session session,
java.lang.String indexName,
int indexId,
IndexColumn[] cols,
IndexType indexType,
boolean create,
java.lang.String indexComment)
session - the sessionindexName - the name of the indexindexId - the idcols - the index columnsindexType - the index typecreate - whether this is a new indexindexComment - the comment
public abstract void removeRow(Session session,
Row row)
session - the sessionrow - the rowpublic abstract void truncate(Session session)
session - the session
public abstract void addRow(Session session,
Row row)
session - the sessionrow - the row
SQLException - if a constraint was violated
public void commit(short operation,
Row row)
operation - the operationrow - the rowpublic abstract void checkSupportAlter()
SQLException - if it is not supportedpublic abstract java.lang.String getTableType()
public abstract Index getScanIndex(Session session)
session - the session
public abstract Index getUniqueIndex()
public abstract java.util.ArrayList<Index> getIndexes()
public abstract boolean isLockedExclusively()
public abstract long getMaxDataModificationId()
public abstract boolean isDeterministic()
public abstract boolean canGetRowCount()
public boolean canReference()
public abstract boolean canDrop()
public abstract boolean hasRowIdColumn()
public abstract long getRowCount(Session session)
session - the session
public abstract long getRowCountApproximation()
public java.lang.String getCreateSQLForCopy(Table table,
java.lang.String quotedName)
DbObjectBase
getCreateSQLForCopy in interface DbObjectgetCreateSQLForCopy in class DbObjectBasetable - the new table namequotedName - the new quoted name
public void addDependencies(java.util.HashSet<DbObject> dependencies)
dependencies - the current set of dependenciespublic java.util.ArrayList<DbObject> getChildren()
DbObject
getChildren in interface DbObjectgetChildren in class DbObjectBaseprotected void setColumns(Column[] columns)
public void renameColumn(Column column,
java.lang.String newName)
column - the column to renamenewName - the new column namepublic boolean isLockedExclusivelyBy(Session session)
session - the session
public void updateRows(Prepared prepared,
Session session,
RowList rows)
prepared - the prepared statementsession - the sessionrows - a list of row pairs of the form old row, new row, old row,
new row,...public java.util.ArrayList<TableView> getViews()
public void removeChildrenAndResources(Session session)
DbObjectBase
removeChildrenAndResources in interface DbObjectremoveChildrenAndResources in class DbObjectBasesession - the session
public void dropSingleColumnConstraintsAndIndexes(Session session,
Column col)
session - the sessioncol - the column
SQLException - if the column is referenced by multi-column
constraints or indexespublic Row getTemplateRow()
public SearchRow getTemplateSimpleRow(boolean singleColumn)
singleColumn - if only one value need to be stored
public Column[] getColumns()
public int getType()
DbObjectBase
getType in interface DbObjectgetType in class DbObjectBasepublic Column getColumn(int index)
index - the column index (0, 1,...)
public Column getColumn(java.lang.String columnName)
columnName - the column name
SQLException - if the column was not found
public PlanItem getBestPlanItem(Session session,
int[] masks)
session - the sessionmasks - null means 'always false'
public Index findPrimaryKey()
public Index getPrimaryKey()
public void validateConvertUpdateSequence(Session session,
Row row)
session - the sessionrow - the rowpublic void removeIndex(Index index)
index - the index to removepublic void removeConstraint(Constraint constraint)
constraint - the constraint to remove
public void removeSequence(Session session,
Sequence sequence)
session - the sessionsequence - the sequence to removepublic void removeTrigger(TriggerObject trigger)
trigger - the trigger to removepublic void addView(TableView view)
view - the view to addpublic void addConstraint(Constraint constraint)
constraint - the constraint to addpublic java.util.ArrayList<Constraint> getConstraints()
public void addSequence(Sequence sequence)
sequence - the sequence to addpublic void addTrigger(TriggerObject trigger)
trigger - the trigger to add
public void fire(Session session,
int type,
boolean beforeAction)
session - the sessiontype - the trigger typebeforeAction - whether 'before' triggers should be calledpublic boolean hasSelectTrigger()
public boolean fireRow()
public boolean fireBeforeRow(Session session,
Row oldRow,
Row newRow)
session - the sessionoldRow - the old data or null for an insertnewRow - the new data or null for a delete
public void fireAfterRow(Session session,
Row oldRow,
Row newRow,
boolean rollback)
session - the sessionoldRow - the old data or null for an insertnewRow - the new data or null for a deleterollback - when the operation occurred within a rollbackpublic boolean isGlobalTemporary()
public boolean canTruncate()
public void setCheckForeignKeyConstraints(Session session,
boolean enabled,
boolean checkExisting)
session - the sessionenabled - true if checking should be enabledcheckExisting - true if existing rows must be checked during this callpublic boolean getCheckForeignKeyConstraints()
public Index getIndexForColumn(Column column,
boolean first)
column - the columnfirst - if the min value should be returned
public boolean getOnCommitDrop()
public void setOnCommitDrop(boolean onCommitDrop)
public boolean getOnCommitTruncate()
public void setOnCommitTruncate(boolean onCommitTruncate)
public void removeIndexOrTransferOwnership(Session session,
Index index)
session - the sessionindex - the index that is no longer required
public java.util.ArrayList<Session> checkDeadlock(Session session,
Session clash,
java.util.Set<Session> visited)
session - the session to be tested forclash - set with sessions already visited, and null when starting
verificationvisited - set with sessions already visited, and null when starting
verification
public boolean isPersistIndexes()
public boolean isPersistData()
public int compareTypeSave(Value a,
Value b)
a - the first valueb - the second value
public CompareMode getCompareMode()
public void checkWritingAllowed()
public Value getDefaultValue(Session session,
Column column)
session - the sessioncolumn - the column
public boolean isHidden()
SchemaObject
isHidden in interface SchemaObjectisHidden in class SchemaObjectBase
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||