public abstract class Table extends SchemaObjectBase
| Modifier and Type | Field and Description |
|---|---|
protected Column[] |
columns
The columns of this table.
|
protected CompareMode |
compareMode
The compare mode used for this table.
|
static 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 String |
SYSTEM_TABLE
The table type name for system tables.
|
static String |
TABLE
The table type name for regular data tables.
|
static 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 String |
VIEW
The table type name for views.
|
comment, database, traceAGGREGATE, COMMENT, CONSTANT, CONSTRAINT, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, TABLE_OR_VIEW, TRIGGER, USER, USER_DATATYPE| Constructor and Description |
|---|
Table(Schema schema,
int id,
String name,
boolean persistIndexes,
boolean persistData) |
| Modifier and Type | Method and Description |
|---|---|
void |
addConstraint(Constraint constraint)
Add a constraint to the table.
|
void |
addDependencies(HashSet<DbObject> dependencies)
Add all objects that this table depends on to the hash set.
|
abstract Index |
addIndex(Session session,
String indexName,
int indexId,
IndexColumn[] cols,
IndexType indexType,
boolean create,
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.
|
ArrayList<Session> |
checkDeadlock(Session session,
Session clash,
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(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() |
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(String columnName)
Get the column with the given name.
|
Column[] |
getColumns() |
CompareMode |
getCompareMode() |
ArrayList<Constraint> |
getConstraints() |
String |
getCreateSQLForCopy(Table table,
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 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 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.
|
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(String newName)
Rename the object.
|
void |
renameColumn(Column column,
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.
|
getSchema, getSQL, initSchemaObjectBasecheckRename, getComment, getCreateSQL, getDatabase, getDropSQL, getId, getModificationId, getName, initDbObjectBase, invalidate, isTemporary, setComment, setModified, setObjectName, setTemporary, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcheckRename, getComment, getCreateSQL, getDatabase, getDropSQL, getId, getName, isTemporary, setComment, setTemporarypublic static final int TYPE_CACHED
public static final int TYPE_MEMORY
public static final String TABLE_LINK
public static final String SYSTEM_TABLE
public static final String TABLE
public static final String VIEW
public static final String EXTERNAL_TABLE_ENGINE
protected Column[] columns
protected CompareMode compareMode
protected boolean isHidden
public void rename(String newName)
DbObjectrename in interface DbObjectrename in class DbObjectBasenewName - the new namepublic 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 modeDbException - if a lock timeout occurredpublic abstract void close(Session session)
session - the sessionpublic abstract void unlock(Session s)
s - the sessionpublic abstract Index addIndex(Session session, String indexName, int indexId, IndexColumn[] cols, IndexType indexType, boolean create, 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 commentpublic abstract void removeRow(Session session, Row row)
session - the sessionrow - the rowpublic abstract void truncate(Session session)
session - the sessionpublic abstract void addRow(Session session, Row row)
session - the sessionrow - the rowDbException - if a constraint was violatedpublic void commit(short operation,
Row row)
operation - the operationrow - the rowpublic abstract void checkSupportAlter()
DbException - if it is not supportedpublic abstract String getTableType()
public abstract Index getScanIndex(Session session)
session - the sessionpublic abstract Index getUniqueIndex()
public abstract 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 sessionpublic abstract long getRowCountApproximation()
public Column getRowIdColumn()
public String getCreateSQLForCopy(Table table, String quotedName)
DbObjecttable - the new tablequotedName - the quoted namepublic void addDependencies(HashSet<DbObject> dependencies)
dependencies - the current set of dependenciespublic ArrayList<DbObject> getChildren()
DbObjectgetChildren in interface DbObjectgetChildren in class DbObjectBaseprotected void setColumns(Column[] columns)
public void renameColumn(Column column, String newName)
column - the column to renamenewName - the new column namepublic boolean isLockedExclusivelyBy(Session session)
session - the sessionpublic 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 void removeChildrenAndResources(Session session)
DbObjectBaseremoveChildrenAndResources in interface DbObjectremoveChildrenAndResources in class DbObjectBasesession - the sessionpublic void dropSingleColumnConstraintsAndIndexes(Session session, Column col)
session - the sessioncol - the columnDbException - 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 storedpublic Column[] getColumns()
public int getType()
DbObjectpublic Column getColumn(int index)
index - the column index (0, 1,...)public Column getColumn(String columnName)
columnName - the column nameDbException - if the column was not foundpublic boolean doesColumnExist(String columnName)
columnName - the column namepublic 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 removepublic 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 ArrayList<Constraint> getConstraints()
public void addSequence(Sequence sequence)
sequence - the sequence to addpublic void addTrigger(TriggerObject trigger)
trigger - the trigger to addpublic 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 deletepublic 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 returnedpublic 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 requiredpublic ArrayList<Session> checkDeadlock(Session session, Session clash, 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
verificationpublic boolean isPersistIndexes()
public boolean isPersistData()
public int compareTypeSave(Value a, Value b)
a - the first valueb - the second valuepublic CompareMode getCompareMode()
public void checkWritingAllowed()
public Value getDefaultValue(Session session, Column column)
session - the sessioncolumn - the columnpublic boolean isHidden()
SchemaObjectisHidden in interface SchemaObjectisHidden in class SchemaObjectBasepublic void setHidden(boolean hidden)
Copyright © 2012 JBoss by Red Hat. All Rights Reserved.