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.