Top Description Inners Fields Constructors Methods
org.hsqldb

public Class Database

extends Object
Class Inheritance
Imports
java.util.TimeZone, org.hsqldb.HsqlNameManager.HsqlName, .Session.TimeoutManager, org.hsqldb.dbinfo.DatabaseInformation, org.hsqldb.error.Error, .ErrorCode, org.hsqldb.lib.FrameworkLogger, .HsqlArrayList, .HsqlTimer, .List, .OrderedHashMap, org.hsqldb.map.ValuePool, org.hsqldb.persist.HsqlDatabaseProperties, .HsqlProperties, .LobManager, .Logger, .PersistentStoreCollectionDatabase, org.hsqldb.result.Result, org.hsqldb.rights.GranteeManager, .User, .UserManager, org.hsqldb.types.Collation

Database is the root class for HSQL Database Engine database.

It holds the data structures that form an HSQLDB database instance.

Author
Fred Toussi (fredt@users dot sourceforge.net)
Since
1.9.0
Version
2.7.3

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv class
pack-priv static class
Database.TimeoutRunner

Sessions running a statement with timeout are added to the list.

Field Summary

Modifier and TypeField and Description
private final String
public Database.CheckpointRunner
public static final int
public static final int
public static final int
public static final int
public Collation
public static final int
public static final int
public static final int
public static final int
pack-priv int
public HsqlDatabaseProperties
pack-priv boolean
databaseReadOnly

true means that all tables are readonly.

pack-priv DatabaseType
pack-priv HsqlNameManager.HsqlName
public DatabaseInformation
private volatile int
dbState

indicates the state of the database

public int
private boolean
filesInJar

true means filesReadOnly

private boolean
filesReadOnly

true means that all CACHED and TEXT tables are readonly.

public GranteeManager
private boolean
public LobManager
public Logger
public HsqlNameManager
private final String
public PersistentStoreCollectionDatabase
public int
pack-priv int
public SchemaManager
public SessionManager
private final boolean
public int
sqlAvgScale

Defaults are used in version upgrades, but overridden by databaseProperties or URL properties for new databases.

public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public int
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public Database.TimeoutRunner
public boolean
public boolean
public TransactionManager
pack-priv Result
public HsqlProperties
public UserManager

Constructor Summary

AccessConstructor and Description
pack-priv
Database(DatabaseType
is the type of the database: "mem:", "file:", "res:"
type
,
String
is the given path to the database files
path
,
String
is the canonical path
canonicalPath
,
HsqlProperties
property overrides placed on the connect URL
props
)

Constructs a new Database object.

Method Summary

Modifier and TypeMethod and Description
pack-priv void
clearStructures()

Clears the data structures, making them elligible for garbage collection.

public void
close(int closemode)

Closes this Database using the specified mode.

pack-priv void
pack-priv synchronized Session
connect(String username, String password, TimeZone zone)

Constructs a new Session that operates within (is connected to) the context of this Database object.

public void
public String
public HsqlNameManager.HsqlName
public int
getDatabaseID()

Returns the database ID.

public GranteeManager
getGranteeManager()

Returns the GranteeManager for this Database.

public HsqlNameManager.HsqlName
public String
getNameString()

Returns a unique String identifier for the database.

public String
getPath()

Returns the path of the database

public HsqlDatabaseProperties
getProperties()

Returns the database properties.

public int
public Result
getScript(boolean indexRoots)

Returns the schema and authorisation statements for the database.

public SessionManager
getSessionManager()

Returns the SessionManager for the database.

public List<String>
pack-priv int
pack-priv String
public Database.TimeoutRunner
public DatabaseType
getType()

Returns the type of the database: "mem", "file", "res"

public String
public HsqlProperties
public UserManager
getUserManager()

Returns the UserManager for this Database.

public boolean
isFilesInJar()

Is this in filesInJar mode?

public boolean
isFilesReadOnly()

Is this in filesReadOnly mode?

public boolean
public boolean
isReferentialIntegrity()

Is referential integrity currently enforced?

pack-priv boolean
isShutdown()

Returns true if database has been shut down, false otherwise

pack-priv synchronized void
open()

Opens this database.

pack-priv void
reopen()

Opens this database.

public void
setAvgScale(int scale)

public void
setCharacterLiteral(boolean mode)

public void
setConcatNulls(boolean mode)

public void
setConvertTrunc(boolean mode)

public void
public void
setDoubleNaN(boolean mode)

public void
setFilesReadOnly()

After this call all CACHED and TEXT tables will be set to read-only mode.

public void
setIgnoreCase(boolean mode)

public void
setLiveObject(boolean mode)

public void
setLongVarIsLob(boolean mode)

public void
setLowerCaseIndentifer(boolean mode)

public void
setMaxRecursive(int value)

public void
setNullsFirst(boolean mode)

public void
setNullsOrder(boolean mode)

public void
setReadOnly()

Puts this Database object in global read-only mode.

public void
setReferentialIntegrity(boolean ref)

Sets the isReferentialIntegrity attribute.

public void
setRegularNames(boolean mode)

public void
setRestrictExec(boolean mode)

public void
private void
setState(int state)

public void
setStrictColumnSize(boolean mode)

public void
setStrictNames(boolean mode)

public void
setStrictReferences(boolean mode)

public void
setStrictTDCD(boolean mode)

public void
setStrictTDCU(boolean mode)

public void
setStrictTypes(boolean mode)

public void
setSyntaxDb2(boolean mode)

public void
setSyntaxMss(boolean mode)

public void
setSyntaxMys(boolean mode)

public void
setSyntaxOra(boolean mode)

public void
setSyntaxPgs(boolean mode)

public void
setSysIndexNames(boolean mode)

public void
setTranslateTTI(boolean mode)

public void
setTruncateTrailing(boolean mode)

public void
setUniqueNulls(boolean mode)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

canonicalPathback to summary
private final String canonicalPath
checkpointRunnerback to summary
public Database.CheckpointRunner checkpointRunner
CLOSEMODE_COMPACTback to summary
public static final int CLOSEMODE_COMPACT
CLOSEMODE_IMMEDIATELYback to summary
public static final int CLOSEMODE_IMMEDIATELY
CLOSEMODE_NORMALback to summary
public static final int CLOSEMODE_NORMAL
CLOSEMODE_SCRIPTback to summary
public static final int CLOSEMODE_SCRIPT
collationback to summary
public Collation collation
DATABASE_CLOSINGback to summary
public static final int DATABASE_CLOSING
DATABASE_ONLINEback to summary
public static final int DATABASE_ONLINE
DATABASE_OPENINGback to summary
public static final int DATABASE_OPENING
DATABASE_SHUTDOWNback to summary
public static final int DATABASE_SHUTDOWN
databaseIDback to summary
pack-priv int databaseID
databasePropertiesback to summary
public HsqlDatabaseProperties databaseProperties
databaseReadOnlyback to summary
pack-priv boolean databaseReadOnly

true means that all tables are readonly.

databaseTypeback to summary
pack-priv DatabaseType databaseType
databaseUniqueNameback to summary
pack-priv HsqlNameManager.HsqlName databaseUniqueName
dbInfoback to summary
public DatabaseInformation dbInfo
dbStateback to summary
private volatile int dbState

indicates the state of the database

defaultIsolationLevelback to summary
public int defaultIsolationLevel
filesInJarback to summary
private boolean filesInJar

true means filesReadOnly

filesReadOnlyback to summary
private boolean filesReadOnly

true means that all CACHED and TEXT tables are readonly. MEMORY tables are updatable but updates are not persisted.

granteeManagerback to summary
public GranteeManager granteeManager
isReferentialIntegrityback to summary
private boolean isReferentialIntegrity
lobManagerback to summary
public LobManager lobManager
loggerback to summary
public Logger logger
nameManagerback to summary
public HsqlNameManager nameManager
pathback to summary
private final String path
persistentStoreCollectionback to summary
public PersistentStoreCollectionDatabase persistentStoreCollection
recoveryModeback to summary
public int recoveryMode
resultMaxMemoryRowsback to summary
pack-priv int resultMaxMemoryRows
schemaManagerback to summary
public SchemaManager schemaManager
sessionManagerback to summary
public SessionManager sessionManager
shutdownOnNoConnectionback to summary
private final boolean shutdownOnNoConnection
sqlAvgScaleback to summary
public int sqlAvgScale

Defaults are used in version upgrades, but overridden by databaseProperties or URL properties for new databases.

sqlCharLiteralback to summary
public boolean sqlCharLiteral
sqlConcatNullsback to summary
public boolean sqlConcatNulls
sqlConvertTruncateback to summary
public boolean sqlConvertTruncate
sqlDoubleNaNback to summary
public boolean sqlDoubleNaN
sqlEnforceNamesback to summary
public boolean sqlEnforceNames
sqlEnforceRefsback to summary
public boolean sqlEnforceRefs
sqlEnforceSizeback to summary
public boolean sqlEnforceSize
sqlEnforceTDCDback to summary
public boolean sqlEnforceTDCD
sqlEnforceTDCUback to summary
public boolean sqlEnforceTDCU
sqlEnforceTypesback to summary
public boolean sqlEnforceTypes
sqlIgnoreCaseback to summary
public boolean sqlIgnoreCase
sqlLiveObjectback to summary
public boolean sqlLiveObject
sqlLongvarIsLobback to summary
public boolean sqlLongvarIsLob
sqlLowerCaseIdentifierback to summary
public boolean sqlLowerCaseIdentifier
sqlMaxRecursiveback to summary
public int sqlMaxRecursive
sqlNullsFirstback to summary
public boolean sqlNullsFirst
sqlNullsOrderback to summary
public boolean sqlNullsOrder
sqlRegularNamesback to summary
public boolean sqlRegularNames
sqlRestrictExecback to summary
public boolean sqlRestrictExec
sqlSyntaxDb2back to summary
public boolean sqlSyntaxDb2
sqlSyntaxMssback to summary
public boolean sqlSyntaxMss
sqlSyntaxMysback to summary
public boolean sqlSyntaxMys
sqlSyntaxOraback to summary
public boolean sqlSyntaxOra
sqlSyntaxPgsback to summary
public boolean sqlSyntaxPgs
sqlSysIndexNamesback to summary
public boolean sqlSysIndexNames
sqlTranslateTTIback to summary
public boolean sqlTranslateTTI
sqlTruncateTrailingback to summary
public boolean sqlTruncateTrailing
sqlUniqueNullsback to summary
public boolean sqlUniqueNulls
timeoutRunnerback to summary
public Database.TimeoutRunner timeoutRunner
txConflictRollbackback to summary
public boolean txConflictRollback
txInterruptRollbackback to summary
public boolean txInterruptRollback
txManagerback to summary
public TransactionManager txManager
updateZeroResultback to summary
pack-priv Result updateZeroResult
urlPropertiesback to summary
public HsqlProperties urlProperties
userManagerback to summary
public UserManager userManager

Constructor Detail

Databaseback to summary
pack-priv Database(DatabaseType type, String path, String canonicalPath, HsqlProperties props)

Constructs a new Database object.

Parameters
type:DatabaseType

is the type of the database: "mem:", "file:", "res:"

path:String

is the given path to the database files

canonicalPath:String

is the canonical path

props:HsqlProperties

property overrides placed on the connect URL

Exceptions
HsqlException:
if the specified name and path combination is illegal or unavailable, or the database files the name and path resolves to are in use by another process

Method Detail

clearStructuresback to summary
pack-priv void clearStructures()

Clears the data structures, making them elligible for garbage collection.

closeback to summary
public void close(int closemode)

Closes this Database using the specified mode.

  1. closemode -1 performs SHUTDOWN IMMEDIATELY, equivalent to a poweroff or crash.
  2. closemode 0 performs a normal SHUTDOWN that checkpoints the database normally.
  3. closemode 1 performs a shutdown compact that scripts out the contents of any CACHED tables to the log then deletes the existing *.data file that contains the data for all CACHED table before the normal checkpoint process which in turn creates a new, compact *.data file.
closeIfLastback to summary
pack-priv void closeIfLast()
connectback to summary
pack-priv synchronized Session connect(String username, String password, TimeZone zone)

Constructs a new Session that operates within (is connected to) the context of this Database object.

If successful, the new Session object initially operates on behalf of the user specified by the supplied user name. Throws if username or password is invalid.

createObjectStructuresback to summary
public void createObjectStructures()
getCanonicalPathback to summary
public String getCanonicalPath()
getCatalogNameback to summary
public HsqlNameManager.HsqlName getCatalogName()
getDatabaseIDback to summary
public int getDatabaseID()

Returns the database ID.

getGranteeManagerback to summary
public GranteeManager getGranteeManager()

Returns the GranteeManager for this Database.

getNameback to summary
public HsqlNameManager.HsqlName getName()
getNameStringback to summary
public String getNameString()

Returns a unique String identifier for the database.

getPathback to summary
public String getPath()

Returns the path of the database

getPropertiesback to summary
public HsqlDatabaseProperties getProperties()

Returns the database properties.

getResultMaxMemoryRowsback to summary
public int getResultMaxMemoryRows()
getScriptback to summary
public Result getScript(boolean indexRoots)

Returns the schema and authorisation statements for the database.

getSessionManagerback to summary
public SessionManager getSessionManager()

Returns the SessionManager for the database.

getSettingsSQLArrayback to summary
public List<String> getSettingsSQLArray()
getStateback to summary
pack-priv int getState()
getStateStringback to summary
pack-priv String getStateString()
getTimeoutRunnerback to summary
public Database.TimeoutRunner getTimeoutRunner()
getTypeback to summary
public DatabaseType getType()

Returns the type of the database: "mem", "file", "res"

getURIback to summary
public String getURI()
getURLPropertiesback to summary
public HsqlProperties getURLProperties()
getUserManagerback to summary
public UserManager getUserManager()

Returns the UserManager for this Database.

isFilesInJarback to summary
public boolean isFilesInJar()

Is this in filesInJar mode?

isFilesReadOnlyback to summary
public boolean isFilesReadOnly()

Is this in filesReadOnly mode?

isReadOnlyback to summary
public boolean isReadOnly()
isReferentialIntegrityback to summary
public boolean isReferentialIntegrity()

Is referential integrity currently enforced?

isShutdownback to summary
pack-priv boolean isShutdown()

Returns true if database has been shut down, false otherwise

openback to summary
pack-priv synchronized void open()

Opens this database. The database should be opened after construction.

reopenback to summary
pack-priv void reopen()

Opens this database. The database should be opened after construction. or reopened by the close(int closemode) method during a "shutdown compact". Closes the log if there is an error.

setAvgScaleback to summary
public void setAvgScale(int scale)
setCharacterLiteralback to summary
public void setCharacterLiteral(boolean mode)
setConcatNullsback to summary
public void setConcatNulls(boolean mode)
setConvertTruncback to summary
public void setConvertTrunc(boolean mode)
setDatabaseNameback to summary
public void setDatabaseName(String name)
setDoubleNaNback to summary
public void setDoubleNaN(boolean mode)
setFilesReadOnlyback to summary
public void setFilesReadOnly()

After this call all CACHED and TEXT tables will be set to read-only mode. Changes to MEMORY tables will NOT be stored or updated in the script file. This mode is intended for use with read-only media where data should not be persisted.

setIgnoreCaseback to summary
public void setIgnoreCase(boolean mode)
setLiveObjectback to summary
public void setLiveObject(boolean mode)
setLongVarIsLobback to summary
public void setLongVarIsLob(boolean mode)
setLowerCaseIndentiferback to summary
public void setLowerCaseIndentifer(boolean mode)
setMaxRecursiveback to summary
public void setMaxRecursive(int value)
setNullsFirstback to summary
public void setNullsFirst(boolean mode)
setNullsOrderback to summary
public void setNullsOrder(boolean mode)
setReadOnlyback to summary
public void setReadOnly()

Puts this Database object in global read-only mode. After this call, all existing and future sessions are limited to read-only transactions. Any following attempts to update the state of the database will result in throwing an HsqlException.

setReferentialIntegrityback to summary
public void setReferentialIntegrity(boolean ref)

Sets the isReferentialIntegrity attribute.

setRegularNamesback to summary
public void setRegularNames(boolean mode)
setRestrictExecback to summary
public void setRestrictExec(boolean mode)
setResultMaxMemoryRowsback to summary
public void setResultMaxMemoryRows(int size)
setStateback to summary
private void setState(int state)
setStrictColumnSizeback to summary
public void setStrictColumnSize(boolean mode)
setStrictNamesback to summary
public void setStrictNames(boolean mode)
setStrictReferencesback to summary
public void setStrictReferences(boolean mode)
setStrictTDCDback to summary
public void setStrictTDCD(boolean mode)
setStrictTDCUback to summary
public void setStrictTDCU(boolean mode)
setStrictTypesback to summary
public void setStrictTypes(boolean mode)
setSyntaxDb2back to summary
public void setSyntaxDb2(boolean mode)
setSyntaxMssback to summary
public void setSyntaxMss(boolean mode)
setSyntaxMysback to summary
public void setSyntaxMys(boolean mode)
setSyntaxOraback to summary
public void setSyntaxOra(boolean mode)
setSyntaxPgsback to summary
public void setSyntaxPgs(boolean mode)
setSysIndexNamesback to summary
public void setSysIndexNames(boolean mode)
setTranslateTTIback to summary
public void setTranslateTTI(boolean mode)
setTruncateTrailingback to summary
public void setTruncateTrailing(boolean mode)
setUniqueNullsback to summary
public void setUniqueNulls(boolean mode)
org.hsqldb back to summary

pack-priv Class Database.CheckpointRunner

extends Object
implements Runnable
Class Inheritance
All Implemented Interfaces
java.lang.Runnable

Field Summary

Modifier and TypeField and Description
private Object
private volatile boolean

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public void
run()

Implements java.lang.Runnable.run.

Runs this operation.

public void
public void
stop()

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

timerTaskback to summary
private Object timerTask
waitingback to summary
private volatile boolean waiting

Constructor Detail

CheckpointRunnerback to summary
pack-priv CheckpointRunner()

Method Detail

runback to summary
public void run()

Implements java.lang.Runnable.run.

Doc from java.lang.Runnable.run.

Runs this operation.

startback to summary
public void start()
stopback to summary
public void stop()
org.hsqldb back to summary

pack-priv Class Database.TimeoutRunner

extends Object
implements Runnable
Class Inheritance
All Implemented Interfaces
java.lang.Runnable

Sessions running a statement with timeout are added to the list. The first session starts the runner. Sessions are not removed until closed.

The runner is called at second intervals. It handles the countdown for each session currently running a statement with timeout. If timeout is reached, the runner aborts the statement.

Field Summary

Modifier and TypeField and Description
pack-priv int
private HsqlArrayList<Session.TimeoutManager>
private Object

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public void
public void
run()

Implements java.lang.Runnable.run.

Runs this operation.

private void
public void
stop()

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

abortCountback to summary
pack-priv int abortCount
timeoutListback to summary
private HsqlArrayList<Session.TimeoutManager> timeoutList
timerTaskback to summary
private Object timerTask

Constructor Detail

TimeoutRunnerback to summary
pack-priv TimeoutRunner()

Method Detail

addSessionback to summary
public void addSession(Session.TimeoutManager timeout)
runback to summary
public void run()

Implements java.lang.Runnable.run.

Doc from java.lang.Runnable.run.

Runs this operation.

startback to summary
private void start()
stopback to summary
public void stop()