|
||||||||
| 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. |
boolean |
doesColumnExist(java.lang.String columnName)
Does the column with the given name exist? |
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. |
Column |
getRowIdColumn()
Get the row id column if this table has one. |
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()
|
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 |
removeView(TableView view)
Remove the given view 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 |
setHidden(boolean hidden)
|
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, getName, isTemporary, setComment, 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
DbException - 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
DbException - if a constraint was violated
public void commit(short operation,
Row row)
operation - the operationrow - the rowpublic abstract void checkSupportAlter()
DbException - 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 long getRowCount(Session session)
session - the session
public abstract long getRowCountApproximation()
public Column getRowIdColumn()
public java.lang.String getCreateSQLForCopy(Table table,
java.lang.String quotedName)
DbObject
table - the new tablequotedName - the 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
DbException - 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()
DbObject
public Column getColumn(int index)
index - the column index (0, 1,...)
public Column getColumn(java.lang.String columnName)
columnName - the column name
DbException - if the column was not foundpublic boolean doesColumnExist(java.lang.String columnName)
columnName - the column name
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 removeView(TableView view)
view - the view 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 SchemaObjectBasepublic void setHidden(boolean hidden)
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||