Top Description Fields Constructors Methods
org.hsqldb.dbinfo

public Class DatabaseInformation

extends Object
Class Inheritance
Known Direct Subclasses
org.hsqldb.dbinfo.DatabaseInformationMain
Imports
java.lang.reflect.Constructor, org.hsqldb.Database, .Session, .Table, org.hsqldb.lib.IntValueHashMap, org.hsqldb.persist.PersistentStore

Base class for system tables. Includes a factory method which returns the most complete implementation available in the jar. This base implementation knows the names of all system tables but returns null for any system table.

This class has been developed from scratch to replace the previous DatabaseInformation implementations.

Author
Campbell Burnet (campbell-burnet@users dot sourceforge.net)
Since
1.7.2
Version
2.7.3

Field Summary

Modifier and TypeField and Description
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv final Database
database

Database for which to produce tables

pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final String[]
sysTableNames

system table names strictly in order of their ids

pack-priv static final IntValueHashMap<String>
sysTableNamesMap

Map: table name : table id

pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv boolean
withContent

state flag -- if true, tables are to be produced with content, else empty (surrogate) tables are to be produced.

Constructor Summary

AccessConstructor and Description
pack-priv
DatabaseInformation(Database
The Database object for which to produce system tables
db
)

Constructs a new DatabaseInformation instance which knows the names of all system tables (isSystemTable()) but simply returns null for all getSystemTable() requests.

Method Summary

Modifier and TypeMethod and Description
pack-priv static int
public Table

Returns:

a table corresponding to the name and session arguments, or null if there is no such table to be produced
getSystemTable
(Session
the context in which to produce the table
session
,
String
the name of the table to produce
name
)

Retrieves a table with the specified name whose content may depend on the execution context indicated by the session argument as well as the current value of withContent.

pack-priv final boolean

Returns:

true if the specified name is that of a system table
isSystemTable
(String
the name to test
name
)

Tests if the specified name is that of a system table.

public static DatabaseInformation

Returns:

the fullest system table producer implementation available
newDatabaseInformation
(Database
The Database object for which to produce system tables
db
)

Factory method returns the fullest system table producer implementation available.

public void
setStore(Session session, Table table, PersistentStore store)

Sets the store for the given session, populates the store if necessary.

public final void
setWithContent(boolean
if true, then produce tables with (row) content, else produce empty (surrogate) tables
withContent
)

Switches this table producer between producing empty (surrogate) or tables with (row) content.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ADMINISTRABLE_ROLE_AUTHORIZATIONSback to summary
pack-priv static final int ADMINISTRABLE_ROLE_AUTHORIZATIONS
APPLICABLE_ROLESback to summary
pack-priv static final int APPLICABLE_ROLES
ASSERTIONSback to summary
pack-priv static final int ASSERTIONS
AUTHORIZATIONSback to summary
pack-priv static final int AUTHORIZATIONS
CHARACTER_SETSback to summary
pack-priv static final int CHARACTER_SETS
CHECK_CONSTRAINT_ROUTINE_USAGEback to summary
pack-priv static final int CHECK_CONSTRAINT_ROUTINE_USAGE
CHECK_CONSTRAINTSback to summary
pack-priv static final int CHECK_CONSTRAINTS
COLLATIONSback to summary
pack-priv static final int COLLATIONS
COLUMN_COLUMN_USAGEback to summary
pack-priv static final int COLUMN_COLUMN_USAGE
COLUMN_DOMAIN_USAGEback to summary
pack-priv static final int COLUMN_DOMAIN_USAGE
COLUMN_PRIVILEGESback to summary
pack-priv static final int COLUMN_PRIVILEGES
COLUMN_UDT_USAGEback to summary
pack-priv static final int COLUMN_UDT_USAGE
COLUMNSback to summary
pack-priv static final int COLUMNS
CONSTRAINT_COLUMN_USAGEback to summary
pack-priv static final int CONSTRAINT_COLUMN_USAGE
CONSTRAINT_PERIOD_USAGEback to summary
pack-priv static final int CONSTRAINT_PERIOD_USAGE
CONSTRAINT_TABLE_USAGEback to summary
pack-priv static final int CONSTRAINT_TABLE_USAGE
DATA_TYPE_PRIVILEGESback to summary
pack-priv static final int DATA_TYPE_PRIVILEGES
databaseback to summary
pack-priv final Database database

Database for which to produce tables

DOMAIN_CONSTRAINTSback to summary
pack-priv static final int DOMAIN_CONSTRAINTS
DOMAINSback to summary
pack-priv static final int DOMAINS
ELEMENT_TYPESback to summary
pack-priv static final int ELEMENT_TYPES
ENABLED_ROLESback to summary
pack-priv static final int ENABLED_ROLES
INFORMATION_SCHEMA_CATALOG_NAMEback to summary
pack-priv static final int INFORMATION_SCHEMA_CATALOG_NAME
JAR_JAR_USAGEback to summary
pack-priv static final int JAR_JAR_USAGE
JARSback to summary
pack-priv static final int JARS
KEY_COLUMN_USAGEback to summary
pack-priv static final int KEY_COLUMN_USAGE
KEY_PERIOD_USAGEback to summary
pack-priv static final int KEY_PERIOD_USAGE
METHOD_SPECIFICATIONSback to summary
pack-priv static final int METHOD_SPECIFICATIONS
MODULE_COLUMN_USAGEback to summary
pack-priv static final int MODULE_COLUMN_USAGE
MODULE_PRIVILEGESback to summary
pack-priv static final int MODULE_PRIVILEGES
MODULE_TABLE_USAGEback to summary
pack-priv static final int MODULE_TABLE_USAGE
MODULESback to summary
pack-priv static final int MODULES
PARAMETERSback to summary
pack-priv static final int PARAMETERS
PERIODSback to summary
pack-priv static final int PERIODS
REFERENTIAL_CONSTRAINTSback to summary
pack-priv static final int REFERENTIAL_CONSTRAINTS
ROLE_AUTHORIZATION_DESCRIPTORSback to summary
pack-priv static final int ROLE_AUTHORIZATION_DESCRIPTORS
ROLE_COLUMN_GRANTSback to summary
pack-priv static final int ROLE_COLUMN_GRANTS
ROLE_MODULE_GRANTSback to summary
pack-priv static final int ROLE_MODULE_GRANTS
ROLE_ROUTINE_GRANTSback to summary
pack-priv static final int ROLE_ROUTINE_GRANTS
ROLE_TABLE_GRANTSback to summary
pack-priv static final int ROLE_TABLE_GRANTS
ROLE_UDT_GRANTSback to summary
pack-priv static final int ROLE_UDT_GRANTS
ROLE_USAGE_GRANTSback to summary
pack-priv static final int ROLE_USAGE_GRANTS
ROUTINE_COLUMN_USAGEback to summary
pack-priv static final int ROUTINE_COLUMN_USAGE
ROUTINE_JAR_USAGEback to summary
pack-priv static final int ROUTINE_JAR_USAGE
ROUTINE_PERIOD_USAGEback to summary
pack-priv static final int ROUTINE_PERIOD_USAGE
ROUTINE_PRIVILEGESback to summary
pack-priv static final int ROUTINE_PRIVILEGES
ROUTINE_ROUTINE_USAGEback to summary
pack-priv static final int ROUTINE_ROUTINE_USAGE
ROUTINE_SEQUENCE_USAGEback to summary
pack-priv static final int ROUTINE_SEQUENCE_USAGE
ROUTINE_TABLE_USAGEback to summary
pack-priv static final int ROUTINE_TABLE_USAGE
ROUTINESback to summary
pack-priv static final int ROUTINES
SCHEMATAback to summary
pack-priv static final int SCHEMATA
SEQUENCESback to summary
pack-priv static final int SEQUENCES
SQL_FEATURESback to summary
pack-priv static final int SQL_FEATURES
SQL_IMPLEMENTATION_INFOback to summary
pack-priv static final int SQL_IMPLEMENTATION_INFO
SQL_PACKAGESback to summary
pack-priv static final int SQL_PACKAGES
SQL_PARTSback to summary
pack-priv static final int SQL_PARTS
SQL_SIZINGback to summary
pack-priv static final int SQL_SIZING
SQL_SIZING_PROFILESback to summary
pack-priv static final int SQL_SIZING_PROFILES
sysTableNamesback to summary
pack-priv static final String[] sysTableNames

system table names strictly in order of their ids

sysTableNamesMapback to summary
pack-priv static final IntValueHashMap<String> sysTableNamesMap

Map: table name : table id

SYSTEM_BESTROWIDENTIFIERback to summary
pack-priv static final int SYSTEM_BESTROWIDENTIFIER
SYSTEM_CACHEINFOback to summary
pack-priv static final int SYSTEM_CACHEINFO
SYSTEM_COLUMN_SEQUENCE_USAGEback to summary
pack-priv static final int SYSTEM_COLUMN_SEQUENCE_USAGE
SYSTEM_COLUMNSback to summary
pack-priv static final int SYSTEM_COLUMNS
SYSTEM_COMMENTSback to summary
pack-priv static final int SYSTEM_COMMENTS
SYSTEM_CONNECTION_PROPERTIESback to summary
pack-priv static final int SYSTEM_CONNECTION_PROPERTIES
SYSTEM_CROSSREFERENCEback to summary
pack-priv static final int SYSTEM_CROSSREFERENCE
SYSTEM_INDEXINFOback to summary
pack-priv static final int SYSTEM_INDEXINFO
SYSTEM_INDEXSTATSback to summary
pack-priv static final int SYSTEM_INDEXSTATS
SYSTEM_KEY_INDEX_USAGEback to summary
pack-priv static final int SYSTEM_KEY_INDEX_USAGE
SYSTEM_PRIMARYKEYSback to summary
pack-priv static final int SYSTEM_PRIMARYKEYS
SYSTEM_PROCEDURECOLUMNSback to summary
pack-priv static final int SYSTEM_PROCEDURECOLUMNS
SYSTEM_PROCEDURESback to summary
pack-priv static final int SYSTEM_PROCEDURES
SYSTEM_PROPERTIESback to summary
pack-priv static final int SYSTEM_PROPERTIES
SYSTEM_SCHEMASback to summary
pack-priv static final int SYSTEM_SCHEMAS
SYSTEM_SEQUENCESback to summary
pack-priv static final int SYSTEM_SEQUENCES
SYSTEM_SESSIONINFOback to summary
pack-priv static final int SYSTEM_SESSIONINFO
SYSTEM_SESSIONSback to summary
pack-priv static final int SYSTEM_SESSIONS
SYSTEM_SYNONYMSback to summary
pack-priv static final int SYSTEM_SYNONYMS
SYSTEM_TABLESback to summary
pack-priv static final int SYSTEM_TABLES
SYSTEM_TABLESTATSback to summary
pack-priv static final int SYSTEM_TABLESTATS
SYSTEM_TABLETYPESback to summary
pack-priv static final int SYSTEM_TABLETYPES
SYSTEM_TEXTTABLESback to summary
pack-priv static final int SYSTEM_TEXTTABLES
SYSTEM_TYPEINFOback to summary
pack-priv static final int SYSTEM_TYPEINFO
SYSTEM_UDTATTRIBUTESback to summary
pack-priv static final int SYSTEM_UDTATTRIBUTES
SYSTEM_UDTSback to summary
pack-priv static final int SYSTEM_UDTS
SYSTEM_USERSback to summary
pack-priv static final int SYSTEM_USERS
SYSTEM_VERSIONCOLUMNSback to summary
pack-priv static final int SYSTEM_VERSIONCOLUMNS
TABLE_CONSTRAINTSback to summary
pack-priv static final int TABLE_CONSTRAINTS
TABLE_PRIVILEGESback to summary
pack-priv static final int TABLE_PRIVILEGES
TABLESback to summary
pack-priv static final int TABLES
TRANSLATIONSback to summary
pack-priv static final int TRANSLATIONS
TRIGGER_COLUMN_USAGEback to summary
pack-priv static final int TRIGGER_COLUMN_USAGE
TRIGGER_PERIOD_USAGEback to summary
pack-priv static final int TRIGGER_PERIOD_USAGE
TRIGGER_ROUTINE_USAGEback to summary
pack-priv static final int TRIGGER_ROUTINE_USAGE
TRIGGER_SEQUENCE_USAGEback to summary
pack-priv static final int TRIGGER_SEQUENCE_USAGE
TRIGGER_TABLE_USAGEback to summary
pack-priv static final int TRIGGER_TABLE_USAGE
TRIGGERED_UPDATE_COLUMNSback to summary
pack-priv static final int TRIGGERED_UPDATE_COLUMNS
TRIGGERSback to summary
pack-priv static final int TRIGGERS
TYPE_JAR_USAGEback to summary
pack-priv static final int TYPE_JAR_USAGE
UDT_PRIVILEGESback to summary
pack-priv static final int UDT_PRIVILEGES
USAGE_PRIVILEGESback to summary
pack-priv static final int USAGE_PRIVILEGES
USER_DEFINED_TYPESback to summary
pack-priv static final int USER_DEFINED_TYPES
VIEW_COLUMN_USAGEback to summary
pack-priv static final int VIEW_COLUMN_USAGE
VIEW_PERIOD_USAGEback to summary
pack-priv static final int VIEW_PERIOD_USAGE
VIEW_ROUTINE_USAGEback to summary
pack-priv static final int VIEW_ROUTINE_USAGE
VIEW_TABLE_USAGEback to summary
pack-priv static final int VIEW_TABLE_USAGE
VIEWSback to summary
pack-priv static final int VIEWS
withContentback to summary
pack-priv boolean withContent

state flag -- if true, tables are to be produced with content, else empty (surrogate) tables are to be produced. This allows faster database startup where user views reference system tables and faster system table structural reflection for table metadata.

Constructor Detail

DatabaseInformationback to summary
pack-priv DatabaseInformation(Database db)

Constructs a new DatabaseInformation instance which knows the names of all system tables (isSystemTable()) but simply returns null for all getSystemTable() requests.

Parameters
db:Database

The Database object for which to produce system tables

Method Detail

getSysTableIDback to summary
pack-priv static int getSysTableID(String token)
getSystemTableback to summary
public Table getSystemTable(Session session, String name)

Retrieves a table with the specified name whose content may depend on the execution context indicated by the session argument as well as the current value of withContent.

Parameters
session:Session

the context in which to produce the table

name:String

the name of the table to produce

Returns:Table

a table corresponding to the name and session arguments, or null if there is no such table to be produced

isSystemTableback to summary
pack-priv final boolean isSystemTable(String name)

Tests if the specified name is that of a system table.

Parameters
name:String

the name to test

Returns:boolean

true if the specified name is that of a system table

newDatabaseInformationback to summary
public static DatabaseInformation newDatabaseInformation(Database db)

Factory method returns the fullest system table producer implementation available. This instantiates implementations beginning with the most complete, finally choosing an empty table producer implementation (this class) if no better instance can be constructed.

Parameters
db:Database

The Database object for which to produce system tables

Returns:DatabaseInformation

the fullest system table producer implementation available

setStoreback to summary
public void setStore(Session session, Table table, PersistentStore store)

Sets the store for the given session, populates the store if necessary.

setWithContentback to summary
public final void setWithContent(boolean withContent)

Switches this table producer between producing empty (surrogate) or tables with (row) content.

Parameters
withContent:boolean

if true, then produce tables with (row) content, else produce empty (surrogate) tables