|
|||||||||
| Home >> All >> org >> [ hsqldb overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.hsqldb
Class jdbcConnection

java.lang.Objectorg.hsqldb.jdbcConnection
- All Implemented Interfaces:
- java.sql.Connection
- public class jdbcConnection
- extends java.lang.Object
- implements java.sql.Connection
- extends java.lang.Object
A connection (session) with a specific database. Within the context of a Connection, SQL statements are executed and results are returned.
A Connection's database is able to provide information describing
its tables, its supported SQL grammar, its stored procedures, the
capabilities of this connection, and so on. This information is
obtained with the getMetaData method.
Note: By default the Connection automatically commits changes after executing each statement. If auto commit has been disabled, an explicit commit must be done or database changes will not be saved.
HSQLDB-Specific Information:
To get a
For HSQLDB connections, the url must start with
'jdbc:hsqldb' .
The Server database url is
'jdbc:hsqldb:hsql://host[:port]' .
The WebServer database url is
'jdbc:hsqldb:http://host[:port]' .
The In-Memory (diskless, in-process) database url is
'jdbc:hsqldb:.' .
The Standalone (in-process) database connection url is
'jdbc:hsqldb:name' .
'name' is the common prefix of the files that compose the
database, including the path .
For example: 'jdbc:hsqldb:test' connects to a database
named 'test' , which is composed of the files
'test.properties' , 'test.data' and 'test.script'
, all located in the working directory fixed at the time the
JVM is started.
Under Windows TM ,
'jdbc:hsqldb:c:\databases\test' connects to a database named
'test' , located on drive c: in the directory
'databases' , composed of the files: 'test.properties'
, 'test.data' and 'test.script' .
Under most variations of UNIX, 'jdbc:hsqldb:/databases/test'
connects to a database named 'test' located in the
directory 'databases' directly under root, and composed of
the files: 'test.properties' , 'test.data' and
'test.script' .
Some Guidelines:
For more information about HSQLDB file structure, please read the
Files section of the documentation.
JRE 1.1.x Notes:
In general, JDBC 2 support requires Java 1.2 and above, and JDBC3 requires
Java 1.4 and above. In HSQLDB, support for methods introduced in different
versions of JDBC depends on the JDK version used for compiling and building
HSQLDB.
Since 1.7.0, it is possible to build the product so that
all JDBC 2 methods can be called while executing under the version 1.1.x
Java Runtime EnvironmentTM.
However, some of these method calls require
In a JRE 1.1.x environment, calling JDBC 2 methods that take or return the
JDBC2-only
However, please note that code written in such a manner will not be
compatible for use with other JDBC 2 drivers, since they expect and use
(fredt@users)
Connection to an HSQLDB database, the
following code may be used:
Class.forName (
"org.hsqldb.jdbcDriver" );
Connection c = DriverManager.getConnection
(url,user,password);
Note: Previous versions of HSQLDB did not support creating
directories along the path specified in Standalone mode jdbc urls,
in the case that they did not already exist. As of HSQLDB 1.7.0,
directories will be created if they do not already exist
(but not if the HSQLDB Jar is built under JDK 1.1.x).
Please read your OS file system documentation.
Please read your OS file system documentation.int values that
are defined only in the JDBC 2 or greater version of
ResultSet interface. For this reason, when the
product is compiled under JDK 1.1.x, these values are defined here in
this class.ResultSet values can be achieved by referring
to them in parameter specifications and return value comparisons,
respectively, as follows:
jdbcResultSet.FETCH_FORWARD
jdbcResultSet.TYPE_FORWARD_ONLY
jdbcResultSet.TYPE_SCROLL_INSENSITIVE
jdbcResultSet.CONCUR_READ_ONLY
ResultSet, rather than jdbcResultSet. Also
note, this feature is offered solely as a convenience to developers
who must work under JDK 1.1.x due to operating constraints, yet wish to
use some of the more advanced features available under the JDBC 2
specification.
(boucherb@users)
| Field Summary | |
private boolean |
bClosed
Is this connection closed? |
private HsqlProperties |
connProperties
Properties for the connection |
(package private) Session |
cSession
This connection's corresponding in-process Session. |
(package private) Database |
dDatabase
This connection's in-process Database. |
static int |
DEFAULT_HSQLDB_PORT
Used when no port is explicitly specified in the url for a network Connection of type HSQLDB 55 . |
(package private) java.io.DataInputStream |
dInput
The stream used to receive results from this connection's Database. |
(package private) java.io.DataOutputStream |
dOutput
The stream used to send requests to this connection's Database. |
(package private) static java.lang.String |
ENCODING
The encoding used to communicate with a WebServer mode Database, when this connection is of type HTTP 55 . |
(package private) static int |
HSQLDB
One of the possible values for this connection's type. |
(package private) static int |
HTTP
One of the possible values for this connection's type. |
(package private) static int |
INTERNAL
One of the possible values for this connection's type. |
private int |
iType
The type of this connection: STANDALONE 55 , HSQLDB 55 , HTTP 55 , or INTERNAL 55 . |
private static java.util.Hashtable |
iUsageCount
A map from each open in-process Database to a count of its open connections. |
private java.lang.String |
sConnect
The http url of this connection's WebServer mode Database, when this connection is of type HTTP 55 . |
private java.lang.String |
sDatabaseName
The name of this connection's Database, as known to this connection. |
private java.lang.String |
sPassword
The password this connection uses to log on to its WebServer mode Database, when this
connection is of type HTTP 55 . |
(package private) java.net.Socket |
sSocket
The network Socket used communicate with this
connection's Database. |
(package private) static int |
STANDALONE
One of the possible values for this connection's type. |
private java.lang.String |
sUser
The logon name for a connection to a WebServer mode Database. |
private static java.util.Hashtable |
tDatabase
A map from database names to open in-process Database instances. |
| Fields inherited from interface java.sql.Connection |
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE |
| Constructor Summary | |
(package private) |
jdbcConnection(Session c)
Constructs an INTERNAL 55 Connection,
using the specified Session. |
(package private) |
jdbcConnection(java.lang.String s,
java.util.Properties props)
Constructs a new standard Connection to an HSQLDB
Database. |
| Method Summary | |
(package private) void |
checkClosed()
An internal check for closed connections. |
(package private) static void |
checkTypeConcurrency(int type,
int concurrency)
An internal check for unsupported combinations of ResultSet type and concurrency. |
void |
clearWarnings()
Clears all warnings reported for this Connection
object. |
void |
close()
Releases this Connection
object's database and JDBC resources immediately instead of
waiting for them to be automatically released. |
private void |
closeStandalone()
Closing a Connection to a standalone database will cause the usage count to be decremented and a disconnect SQL command issued to the db. |
void |
commit()
Makes all changes made since the previous commit/rollback permanent and releases any database locks currently held by the Connection. |
java.sql.Statement |
createStatement()
Creates a Statement
object for sending SQL statements to the database. |
java.sql.Statement |
createStatement(int type,
int concurrency)
Creates a Statement object that will generate
ResultSet objects with the given type and
concurrency. |
java.sql.Statement |
createStatement(int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
Creates a Statement
object that will generate ResultSet objects with
the given type, concurrency, and holdability. |
(package private) jdbcResultSet |
execute(java.lang.String s)
The internal statement execution request router. |
private jdbcResultSet |
executeHSQL(java.lang.String s)
A connection-type specific SQL statement executor. |
private jdbcResultSet |
executeHTTP(java.lang.String s)
A connection-type specific SQL statement executor. |
private jdbcResultSet |
executeStandalone(java.lang.String s)
A connection-type specific SQL statement executor. |
void |
finalize()
The default implementation simply attempts to silently close() 55 this Connection |
boolean |
getAutoCommit()
Gets the current auto-commit state. |
java.lang.String |
getCatalog()
Returns the Connection's current catalog name. |
int |
getHoldability()
Retrieves the current holdability of ResultSet objects created using
this Connection object. |
java.sql.DatabaseMetaData |
getMetaData()
Gets the metadata regarding this connection's database. |
(package private) java.lang.String |
getName()
Get the name of this connection's Database, as known to this connection. |
int |
getTransactionIsolation()
Retrieves this Connection
object's current transaction isolation level. |
java.util.Map |
getTypeMap()
Gets the type map object associated with this connection. |
java.sql.SQLWarning |
getWarnings()
Retrieves the first warning reported by calls on this Connection object. |
boolean |
isClosed()
Tests to see if a Connection is closed. |
boolean |
isReadOnly()
Tests to see if the connection is in read-only mode. |
java.lang.String |
nativeSQL(java.lang.String sql)
Converts the given SQL statement into the system's native SQL grammar. |
private void |
openHSQL(java.lang.String user,
java.lang.String password)
A connection-type specific open method. |
private void |
openHTTP(java.lang.String user,
java.lang.String password)
A connection-type specific open method. |
private void |
openStandalone(java.lang.String user,
java.lang.String password)
A connection-type specific open method. |
java.sql.CallableStatement |
prepareCall(java.lang.String sql)
Creates a CallableStatement
object for calling database stored procedures. |
java.sql.CallableStatement |
prepareCall(java.lang.String sql,
int resultSetType,
int resultSetConcurrency)
Creates a CallableStatement
object that will generate ResultSet objects with
the given type and concurrency. |
java.sql.CallableStatement |
prepareCall(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
Creates a CallableStatement
object that will generate ResultSet objects with
the given type and concurrency. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql)
Creates a PreparedStatement
object for sending parameterized SQL statements to the
database. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int autoGeneratedKeys)
Creates a default PreparedStatement
object that has the capability to retrieve auto-generated
keys. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int[] columnIndexes)
Creates a default PreparedStatement
object capable of returning the auto-generated keys designated
by the given array. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int type,
int concurrency)
Creates a PreparedStatement object that will
generate ResultSet objects with the given type
and concurrency. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
Creates a PreparedStatement
object that will generate ResultSet objects with
the given type, concurrency, and holdability. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
java.lang.String[] columnNames)
Creates a default PreparedStatement
object capable of returning the auto-generated keys designated
by the given array. |
private void |
reconnectHSQL()
Makes the initial network connection to a Server mode Database |
void |
releaseSavepoint(java.sql.Savepoint savepoint)
Removes the given Savepoint
object from the current transaction. |
(package private) static void |
removeDatabase(Database database)
An internal method for removing a databas that has been shutdown |
void |
rollback()
Drops all changes made since the previous commit/rollback and releases any database locks currently held by this Connection. |
void |
rollback(java.sql.Savepoint savepoint)
Undoes all changes made after the given Savepoint object was set. |
void |
setAutoCommit(boolean autoCommit)
Sets this connection's auto-commit mode to the given state. |
void |
setCatalog(java.lang.String catalog)
Sets a catalog name in order to select a subspace of this Connection's database in which to work. |
void |
setHoldability(int holdability)
Changes the holdability of ResultSet objects created using this
Connection object to the given holdability. |
void |
setReadOnly(boolean readonly)
Puts this connection in read-only mode as a hint to enable database optimizations. |
java.sql.Savepoint |
setSavepoint()
Creates an unnamed savepoint in the current transaction and returns the new Savepoint
object that represents it. |
java.sql.Savepoint |
setSavepoint(java.lang.String name)
Creates a savepoint with the given name in the current transaction and returns the new Savepoint object that represents it. |
void |
setTransactionIsolation(int level)
Attempts to change the transaction isolation level for this Connection object to the one given. |
void |
setTypeMap(java.util.Map map)
Installs the given TypeMap
object as the type map for this Connection
object. |
(package private) boolean |
usesLocalFiles()
Does the database store tables in a local file? |
| Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
bClosed
private boolean bClosed
- Is this connection closed?
This attribute is false until the first call to
close()55 . If the close is successful, then this attribute is set to true and stays true until this connection is eventually garbage collected.
sDatabaseName
private java.lang.String sDatabaseName
- The name of this connection's Database, as
known to this connection.
Note: Network connections know their database name as the network url of that database, without the protocol specifier. Connections to in-process database instances know their database name as the local path specifier for the database. For in-memory databases, this is always "."
connProperties
private HsqlProperties connProperties
- Properties for the connection
HTTP
static final int HTTP
- One of the possible values for this connection's type.
This value indicates a network
Connectionto a WebServer modeDatabase, using http protocol.- See Also:
- Constant Field Values
STANDALONE
static final int STANDALONE
- One of the possible values for this connection's type.
This value indicates a
Connectionto an in-process (Standalone mode)Database.- See Also:
- Constant Field Values
INTERNAL
static final int INTERNAL
- One of the possible values for this connection's type.
This value indicates a
Connectioncreated inside the database on behalf of an existing Session, to be used as the parameter to a SQL function or stored procedure that needs to execute in the context of the callingSession.- See Also:
- Constant Field Values
HSQLDB
static final int HSQLDB
- One of the possible values for this connection's type.
This value indicates a network
Connectionto a Server modeDatabase, using native hsqldb protocol.- See Also:
- Constant Field Values
iType
private int iType
- The type of this connection: STANDALONE 55 ,
HSQLDB 55 , HTTP 55 , or INTERNAL 55 .
dDatabase
Database dDatabase
- This connection's in-process Database.
This attribute is used only for STANDALONE 55 or INTERNAL 55 type connections.
cSession
Session cSession
- This connection's corresponding in-process Session.
This attribute is used only for STANDALONE 55 or INTERNAL 55 type connections.
tDatabase
private static java.util.Hashtable tDatabase
- A map from database names to open in-process Database instances.
This attribute is used to track and close open in-process
Databaseinstances, when it is detected that they no longer have any open connections.
iUsageCount
private static java.util.Hashtable iUsageCount
- A map from each open in-process Database to a
count of its open connections.
This attribute is used to track and close open in-process
Databaseinstances, when it is detected that they no longer have any open connections.
sSocket
java.net.Socket sSocket
- The network
Socketused communicate with this connection's Database.This attribute is used only for HSQLDB 55 type connections.
dOutput
java.io.DataOutputStream dOutput
- The stream used to send requests to this connection's Database.
This attribute is used only for HSQLDB 55 type connections.
dInput
java.io.DataInputStream dInput
- The stream used to receive results from this connection's
Database.
This attribute is used only for HSQLDB 55 type connections.
DEFAULT_HSQLDB_PORT
public static final int DEFAULT_HSQLDB_PORT
- Used when no port is explicitly specified in the url for a
network
Connectionof type HSQLDB 55 .This value is used as the port number for network connections to Server mode databases, when no port number is explictly specified in the connection url.
In the standard distribution, this will always be
9001.- See Also:
- Constant Field Values
sConnect
private java.lang.String sConnect
- The http url of this connection's WebServer
mode Database, when this connection is of
type HTTP 55 .
sUser
private java.lang.String sUser
- The logon name for a connection to a WebServer mode
Database.This is the user name that this connection uses to log on to its
Database, when this connection is of type HTTP 55 .
sPassword
private java.lang.String sPassword
- The password this connection uses to log on to its WebServer mode
Database, when this connection is of type HTTP 55 .
ENCODING
static final java.lang.String ENCODING
- The encoding used to communicate with a WebServer mode Database, when this
connection is of type HTTP 55 .
In the standard distribution, this will always be
"8859_1"- See Also:
- Constant Field Values
| Constructor Detail |
jdbcConnection
jdbcConnection(java.lang.String s, java.util.Properties props) throws java.sql.SQLException
- Constructs a new standard
Connectionto an HSQLDBDatabase.This constructor is called on behalf of the
java.sql.DriverManagerwhen getting aConnectionfor use in normal (external) client code.Internal client code, that being code located in HSQLDB SQL functions and stored procedures, receives an INTERNAL connection constructed by the jdbcConnection(Session) 55 constructor.
jdbcConnection
jdbcConnection(Session c) throws java.sql.SQLException
- Constructs an INTERNAL 55
Connection, using the specified Session.This constructor is called only on behalf of an existing
Session(the internal parallel of aConnection), to be used as a parameter to a SQL function or stored procedure that needs to execute in the context of thatSession.When a Java SQL function or stored procedure is called and its first parameter is of type
Connection, HSQLDB automatically notices this and constructs anINTERNALConnectionusing the currentSession. HSQLDB then passes thisConnectionin the first parameter position, moving any other parameter values specified in the SQL statement to the right by one position.To read more about this, see
Function.getValue()55 .Notes:
In a future release,
INTERNALconnections may not be closable from JDBC client code and disconnect statements issued onINTERNALconnections may be ignored.For HSQLDB developers not involved with writing database internals, this change will only apply to connections obtained automatically from the database as the first parameter to stored procedures and SQL functions. This is mainly an issue to developers writing custom SQL function and stored procedure libraries for HSQLDB. As we anticipate this change, it is recommended that SQL function and stored procedure code avoid depending on closing or issuing a disconnect on a connection obtained in this manner.
| Method Detail |
createStatement
public java.sql.Statement createStatement() throws java.sql.SQLException
-
Creates a
Statementobject for sending SQL statements to the database. SQL statements without parameters are normally executed usingStatementobjects. If the same SQL statement is executed many times, it may be more efficient to use aPreparedStatementobject.Result sets created using the returned
Statementobject will by default be typeTYPE_FORWARD_ONLYand have a concurrency level ofCONCUR_READ_ONLY.HSQLDB-Specific Information:
The standard java.sql API documentation above suggests that if the same SQL statement is executed many times, it may be more efficient to use a
PreparedStatementobject. As of HSQLDB 1.7.0, this is still not the case. However, this feature is slated to be part of the HSQLDB 1.7.x series.Up to 1.6.1, HSQLDB supported
TYPE_FORWARD_ONLY-CONCUR_READ_ONLYresults only, soResultSetobjects created using the returnedStatementobject would always be typeTYPE_FORWARD_ONLYwithCONCUR_READ_ONLYconcurrency.Starting with 1.7.0, HSQLDB also supports
TYPE_SCROLL_INSENSITIVEresults.Notes:
Up to 1.6.1, calling this method returned
nullif the connection was already closed. This was possibly counter-intuitive to the expectation that an exception would be thrown for closed connections. Starting with 1.7.0. the behaviour is to throw aSQLExceptionif the connection is closed.- Specified by:
createStatementin interfacejava.sql.Connection
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql) throws java.sql.SQLException
-
Creates a
PreparedStatementobject for sending parameterized SQL statements to the database.A SQL statement with or without IN parameters can be pre-compiled and stored in a
PreparedStatementobject. This object can then be used to efficiently execute this statement multiple times.Note: This method is optimized for handling parametric SQL statements that benefit from precompilation. If the driver supports precompilation, the method
prepareStatementwill send the statement to the database for precompilation. Some drivers may not support precompilation. In this case, the statement may not be sent to the database until thePreparedStatementobject is executed. This has no direct effect on users; however, it does affect which methods throw certainSQLExceptionobjects.Result sets created using the returned
PreparedStatementobject will by default be typeTYPE_FORWARD_ONLYand have a concurrency level ofCONCUR_READ_ONLY.HSQLDB-Specific Information:
The standard java.sql API documentation above suggests that if the same SQL statement is executed many times, it may be more efficient to use a
PreparedStatementobject. As of HSQLDB 1.7.0, this is still not the case. Rather, the statement is stored on the client and is not sent to the database until thePreparedStatementobject is executed. However, precompilation on the database is a feature slated to be part of the 1.7.x series.Up to 1.6.1, HSQLDB supported
TYPE_FORWARD_ONLY-CONCUR_READ_ONLYresults only, soResultSetobjects created using the returnedPreparedStatementobject would always be typeTYPE_FORWARD_ONLYwithCONCUR_READ_ONLYconcurrency.Starting with 1.7.0, HSQLDB also supports
TYPE_SCROLL_INSENSITIVEresults.Notes:
Up to 1.6.1, calling this method returned
nullif the connection was already closed. This was possibly counter-intuitive to the expectation that an exception would be thrown for closed connections. Starting with 1.7.0. the behaviour is to throw aSQLExceptionif the connection is closed.- Specified by:
prepareStatementin interfacejava.sql.Connection
prepareCall
public java.sql.CallableStatement prepareCall(java.lang.String sql) throws java.sql.SQLException
-
Creates a
CallableStatementobject for calling database stored procedures. TheCallableStatementobject provides methods for setting up its IN and OUT parameters, and methods for executing the call to a stored procedure.Note: This method is optimized for handling stored procedure call statements. Some drivers may send the call statement to the database when the method
prepareCallis done; others may wait until theCallableStatementobject is executed. This has no direct effect on users; however, it does affect which method throws certain SQLExceptions.Result sets created using the returned
CallableStatementobject will by default be typeTYPE_FORWARD_ONLYand have a concurrency level ofCONCUR_READ_ONLY.HSQLDB-Specific Information:
The standard java.sql API documentation above suggests that if the same stored procedure is executed many times, it may be more efficient to use a
CallableStatementobject. As of HSQLDB 1.7.0, this is still not the case. Rather, the statement is stored on the client and is not sent to the database until theCallableStatementobject is executed. However, protocol optimizations and statement precompilation on the database for optimization of stored procedure execution are a features slated to be part of the 1.7.x series.Up to and including 1.7.1, HSQLDB supports only the default
TYPE_FORWARD_ONLY-CONCUR_READ_ONLYfor results obtained fromCallableStatementobjects.Notes:
Up to 1.6.1, calling this method returned
nullif the connection was already closed. This was possibly counter-intuitive to the expectation that an exception would be thrown for closed connections. Starting with 1.7.0. the behaviour is to throw aSQLExceptionif the connection is closed.Up to and including 1.7.1, each HSQLDB stored procedure returns only a single value wrapped in a
ResultSetobject. That is, HSQLDB stored procedures act very much like SQL functions and can actually always be used in such a capacity. As such, there is really no point in supporting anything butTYPE_FORWARD_ONLY, since the result obtained by executing aCallableStatementobject has always just one column and one row. Be aware that this behaviour will change in HSQLDB 1.7.1, in that support will be added for Java stored procedures that return multi-column, multi-row results. At that point, support will be added forCallableStatementobjects that returnTYPE_SCROLL_INSENSITIVEResultSetobjects.New to 1.7.0, HSQLDB now allows calling
voidJava methods as SQL functions and stored procedures, the result being a SQLNULLvalue or a result with one column and one row whose single field is the SQLNULLvalue, respectiviely. Previously, calling such Java methods in either context resulted in throwing aSQLException. Finally, up to and including 1.7.1, the returnedCallableStatementobject does not support any getXXX methods. That is, HSQLDB stored procedures do not supportOUTorIN OUTparameters. This behaviour may change at some point in the 1.7.x series, but no decisions have yet been made.- Specified by:
prepareCallin interfacejava.sql.Connection
nativeSQL
public java.lang.String nativeSQL(java.lang.String sql) throws java.sql.SQLException
-
Converts the given SQL statement
into the system's native SQL grammar. A driver may convert the
JDBC SQL grammar into its system's native SQL grammar prior to
sending it. This method returns the native form of the
statement that the driver would have sent.
HSQLDB-Specific Information:
Up to and including 1.7.1, HSQLDB converts the JDBC SQL grammar into the system's native SQL grammar prior to sending it; this method returns the native form of the statement that the driver would send in place of client-specified JDBC SQL grammar.
- Specified by:
nativeSQLin interfacejava.sql.Connection
setAutoCommit
public void setAutoCommit(boolean autoCommit)
throws java.sql.SQLException
-
Sets this connection's auto-commit mode to the given state.
If a connection is in auto-commit mode, then all its SQL
statements will be executed and committed as individual transactions.
Otherwise, its SQL statements are grouped into transactions that
are terminated by a call to either the method
commitor the methodrollback. By default, new connections are in auto-commit mode.The commit occurs when the statement completes or the next execute occurs, whichever comes first. In the case of statements returning a
ResultSetobject, the statement completes when the last row of theResultSetobject has been retrieved or theResultSetobject has been closed. In advanced cases, a single statement may return multiple results as well as output parameter values. In these cases, the commit occurs when all results and output parameter values have been retrieved.NOTE: If this method is called during a transaction, the transaction is committed.
HSQLDB-Specific Information:
Up to and including HSQLDB 1.7.0,
- All rows of a result set are retrieved internally
before the first row can actually be fetched.
Therefore, a statement can be considered complete as soon as any XXXStatement.executeXXX method returns. - Multiple result sets and output parameters are not yet supported.
(boucherb@users)
- Specified by:
setAutoCommitin interfacejava.sql.Connection
- All rows of a result set are retrieved internally
before the first row can actually be fetched.
getAutoCommit
public boolean getAutoCommit()
throws java.sql.SQLException
- Gets the current auto-commit state.
- Specified by:
getAutoCommitin interfacejava.sql.Connection
commit
public void commit()
throws java.sql.SQLException
-
Makes all changes made since the
previous commit/rollback permanent and releases any database
locks currently held by the Connection. This method should be
used only when auto-commit mode has been disabled.
HSQLDB-Specific Information:
As of HSQLDB 1.7.0, SQL Savepoints are supported. As such, successfully calling this method now also removes all Savepoints from this connection's Session.
Up to 1.6.1, HSQLDB did not support Savepoints in transactions, named or anonymous.
As of 1.7.0, HSQLDB supports an arbitrary number of named Savepoints per transaction and allows explicitly rolling back to any one of them. At this time, HSQLDB does not support anonymous Savepoints. However, this feature is slated for the 1.7.x series.
Also, JDBC 3 support for java.sql.Savepoint has not yet been implemented. At present, rather, the following SQL syntax must be used:
SAVEPOINT savepoint_name1;
... -- perform some work
SAVEPOINT savepoint_name2;
...-- perform some work
ROLLABACK TO SAVEPOINT savepoint_name2
...-- perform some work
ROLLABACK TO SAVEPOINT savepoint_name1;Note: If two or more Savepoints with the same name are performed during the same transaction, the latest one replaces the previous one, so that it is impossible to roll back to the previous one.
- Specified by:
commitin interfacejava.sql.Connection
rollback
public void rollback()
throws java.sql.SQLException
-
Drops all changes made since the
previous commit/rollback and releases any database locks
currently held by this Connection. This method should be used
only when auto- commit has been disabled.
HSQLDB-Specific Information:
As of HSQLDB 1.7.0, SQL Savepoints are supported. As such, successfully calling this method also removes all Savepoints from this
Connection's Session.Up to 1.6.1, HSQLDB did not support Savepoints in transactions, named or anonymous.
As of 1.7.0, HSQLDB supports an arbitrary number of named Savepoints per transaction and allows explicitly rolling back to any one of them. At this time, HSQLDB does not support anonymous Savepoints. However, this feature is slated for the 1.7.x series.
Also, as of 1.7.0, JDBC 3 support for java.sql.Savepoint has not yet been implemented. At present, rather, the following SQL syntax must be used:
SAVEPOINT savepoint_name1;
...-- perform some work
SAVEPOINT savepoint_name2;
...-- perform some work
ROLLABACK TO SAVEPOINT savepoint_name2
...-- perform some work
ROLLABACK TO SAVEPOINT savepoint_name1;Note:If two or more Savepoints with the same name are performed during the same transaction, the latest one replaces the previous one, making it impossible to roll back to the previous one.- Specified by:
rollbackin interfacejava.sql.Connection
close
public void close()
throws java.sql.SQLException
-
Releases this
Connectionobject's database and JDBC resources immediately instead of waiting for them to be automatically released.Calling the method
closeon aConnectionobject that is already closed is a no-op.Note: A
Connectionobject is automatically closed when it is garbage collected. Certain fatal errors also close aConnectionobject.HSQLDB-Specific Information:
In a future release,
INTERNALConnectionobjects may not be closable from JDBC client code, and disconnect statements issued onINTERNALConnectionobjects may be ignored.For HSQLDB developers not involved with writing database internals, this change will only apply to connections obtained automatically from the database as the first parameter to stored procedures and SQL functions. This is mainly an issue to developers writing custom SQL function and stored procedure libraries for HSQLDB. As we anticipate this change, it is recommended that SQL function and stored procedure code avoid depending on closing or issuing a disconnect on a connection obtained in this manner.
- Specified by:
closein interfacejava.sql.Connection
isClosed
public boolean isClosed()
- Tests to see if a Connection is closed.
- Specified by:
isClosedin interfacejava.sql.Connection
getMetaData
public java.sql.DatabaseMetaData getMetaData()
-
Gets the metadata regarding this connection's database.
A Connection's database is able to provide information describing
its tables, its supported SQL grammar, its stored procedures,
the capabilities of this connection, and so on. This information
is made available through a
DatabaseMetaDataobject.HSQLDB-Specific Information:
Up to and including 1.7.1, HSQLDB does not provide accurate results for the full range of
DatabaseMetaDatamethods returningResultSet. Some of these methods may always return empty result sets, even though they should contain information. Other methods may not accurately reflect all of the MetaData for the category they report on. Also, some methods may ignore the filters provided as parameters, returning an unfiltered result each time.As of version 1.7.1, the only completely accurate
DatabaseMetaDatamethods returningResultSetare getTables 55 , getColumns 55 , getPrimaryKeys 55 , and getIndexInfo 55 . Also, the majority of methods returningResultSetthrow aSQLExceptionwhen accessed by a non-admin user. In order to provide non-admin users access to these methods, an admin user must explicitly grant SELECT to such users or to the PUBLIC user on each HSQLDB system table corresponding to a DatabaseMetaData method that returnsResultSet. For example, to provide access to getTables 55 to all users, the following must be issued by an admin user:GRANT SELECT ON SYSTEM_TABLES TO PUBLICCare should be taken when making such grants, however, since HSQLDB makes no attempt to filter such information, based on the grants of the accessing user. That is, in the example above, getTables will return information about all tables (except system tables, which are never listed in MetaData), regardless of whether the calling user has any rights on any of the tables.
HSQLDB 1.7.1 will provide the option of installing a full and accurate
DatabaseMetaDataimplementation that is accessible to all database users, regardless of admin status. In that implementation,DatabaseMetaDatamethods returningResultSetwill yield results that have been automatically pre-filtered to omit entries to which the connected user has not been granted access, regardless of the filter parameters specified to those methods. That is, supplied filter parameters will only further restrict results that already comply with the security set up by administration, and will never give greater access than has been granted. Also in that implementation, full MetaData will be reported to all users about all system tables, unless SELECT on any system table providingDatabaseMetaDatais specifically revoked from PUBLIC and not explicitly granted to each user.- Specified by:
getMetaDatain interfacejava.sql.Connection
setReadOnly
public void setReadOnly(boolean readonly)
throws java.sql.SQLException
-
Puts this connection in read-only mode as a hint to enable
database optimizations.
Note: This method should not be called while in the middle of a transaction.
HSQLDB-Specific Information:
Up to and including 1.7.1, HSQLDB will commit the current transaction automatically when this method is called.
Additionally, HSQLDB provides a way to put a whole database in read-only mode. This is done by manually adding the line 'readonly=true' to the database's .properties file while the database is offline. Upon restart, all connections will be readonly, since the entire database will be readonly. To take a database out of readonly mode, simply take the database offline and remove the line 'readonly=true' from the database's .properties file. Upon restart, the database will be in regular (read-write) mode.
When a database is put in readonly mode, its files are opened in readonly mode, making it possible to create CDROM-based readonly databases. To create a CDROM-based readonly database that has CACHED tables and whose .data file is suspected of being highly fragmented, it is recommended that the database first be SHUTDOWN COMPACTed, taken off-line, restarted, SHUTDOWN and taken off-line again before copying the database files to CDROM. This will reduce the space required and may improve access times against the .data file which holds the CACHED table data.
- Specified by:
setReadOnlyin interfacejava.sql.Connection
isReadOnly
public boolean isReadOnly()
throws java.sql.SQLException
- Tests to see if the connection is in read-only mode.
- Specified by:
isReadOnlyin interfacejava.sql.Connection
setCatalog
public void setCatalog(java.lang.String catalog) throws java.sql.SQLException
-
Sets a catalog name in order to
select a subspace of this Connection's database in which to
work.
HSQLDB-Specific Information:
HSQLDB does not yet support catalogs and simply ignores this request.
- Specified by:
setCatalogin interfacejava.sql.Connection
getCatalog
public java.lang.String getCatalog() throws java.sql.SQLException
-
Returns the Connection's current catalog name.
HSQLDB-Specific Information:
HSQLDB does not yet support catalogs and always returns null.
- Specified by:
getCatalogin interfacejava.sql.Connection
setTransactionIsolation
public void setTransactionIsolation(int level)
throws java.sql.SQLException
-
Attempts to change the transaction isolation level for this
Connectionobject to the one given. The constants defined in the interfaceConnectionare the possible transaction isolation levels.Note: If this method is called during a transaction, the result is implementation-defined.
HSQLDB-Specific Information:
Up to and including 1.7.1, HSQLDB supports only
Connection.TRANSACTION_READ_UNCOMMITTED.- Specified by:
setTransactionIsolationin interfacejava.sql.Connection
getTransactionIsolation
public int getTransactionIsolation()
throws java.sql.SQLException
-
Retrieves this
Connectionobject's current transaction isolation level.HSQLDB-Specific Information:
HSQLDB always returns
Connection.TRANSACTION_READ_UNCOMMITED.- Specified by:
getTransactionIsolationin interfacejava.sql.Connection
getWarnings
public java.sql.SQLWarning getWarnings() throws java.sql.SQLException
-
Retrieves the first warning reported by calls on this
Connectionobject. If there is more than one warning, subsequent warnings will be chained to the first one and can be retrieved by calling the methodSQLWarning.getNextWarningon the warning that was retrieved previously.This method may not be called on a closed connection; doing so will cause an
SQLExceptionto be thrown.Note: Subsequent warnings will be chained to this SQLWarning.
HSQLDB-Specific Information:
Up to and including 1.7.1, HSQLDB never produces warnings, always returns null.
- Specified by:
getWarningsin interfacejava.sql.Connection
checkTypeConcurrency
static void checkTypeConcurrency(int type,
int concurrency)
throws java.sql.SQLException
- An internal check for unsupported combinations of
ResultSettype and concurrency.Up to and including HSQLDB 1.7.0, the only supported combinations are type
TYPE_FORWARD_ONLYorTYPE_SCROLL_INSENSITIVE, combined with concurrencyCONCUR_READ_ONLY.
checkClosed
void checkClosed()
throws java.sql.SQLException
- An internal check for closed connections.
removeDatabase
static void removeDatabase(Database database)
- An internal method for removing a databas that has been shutdown
clearWarnings
public void clearWarnings()
throws java.sql.SQLException
-
Clears all warnings reported for this
Connectionobject. After a call to this method, the methodgetWarningsreturns null until a new warning is reported for this Connection.HSQLDB-Specific Information:
Up to and including HSQLDB 1.7.0,
SQLWarningis not supported, and calls to this method are simply ignored.- Specified by:
clearWarningsin interfacejava.sql.Connection
createStatement
public java.sql.Statement createStatement(int type, int concurrency) throws java.sql.SQLException
-
Creates a
Statementobject that will generateResultSetobjects with the given type and concurrency. This method is the same as thecreateStatementmethod above, but it allows the default result set type and result set concurrency type to be overridden.HSQLDB-Specific Information:
Up to HSQLDB 1.6.1, support was provided only for type
TYPE_FORWARD_ONLYand concurrencyCONCUR_READ_ONLY.Starting with HSQLDB 1.7.0, support is now provided for types
TYPE_FORWARD_ONLY, andTYPE_SCROLL_INSENSITIVE, with concurrencyCONCUR_READ_ONLY. Specifying any other values will throw aSQLException.Notes:
Up to 1.6.1, calling this method returned
nullif the connection was already closed and a supported combination of type and concurrency was specified. This was possibly counter-intuitive to the expectation that an exception would be thrown for closed connections. Starting with 1.7.0. the behaviour is to throw aSQLExceptionif the connection is closed.- Specified by:
createStatementin interfacejava.sql.Connection
- Since:
- JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcConnection)
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, int type, int concurrency) throws java.sql.SQLException
-
Creates a
PreparedStatementobject that will generateResultSetobjects with the given type and concurrency. This method is the same as theprepareStatementmethod above, but it allows the default result set type and result set concurrency type to be overridden.HSQLDB-Specific Information:
Up to HSQLDB 1.6.1, support was provided only for type
TYPE_FORWARD_ONLYand concurrencyCONCUR_READ_ONLY.Starting with HSQLDB 1.7.0, support is now provided for types
TYPE_FORWARD_ONLY, andTYPE_SCROLL_INSENSITIVE, with concurrencyCONCUR_READ_ONLY. Specifying any other values will throw a SQLException.Notes:
Up to 1.6.1, calling this method returned
nullif the connection was already closed and a supported combination of type and concurrency was specified. This was possibly counter-intuitive to the expectation that an exception would be thrown for closed connections. Starting with 1.7.0. the behaviour is to throw aSQLExceptionif the connection is closed.- Specified by:
prepareStatementin interfacejava.sql.Connection
- Since:
- JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcConnection)
prepareCall
public java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency) throws java.sql.SQLException
-
Creates a
CallableStatementobject that will generateResultSetobjects with the given type and concurrency. This method is the same as theprepareCallmethod above, but it allows the default result set type and result set concurrency type to be overridden.HSQLDB-Specific Information:
Up to and including HSQLDB 1.7.0, support is provided only for type
TYPE_FORWARD_ONLYand concurrencyCONCUR_READ_ONLY. Specifying any other values will throw a SQLException.Notes:
Up to 1.6.1, calling this method returned null if the connection was already closed and a supported combination of type and concurrency was specified. This was possibly counter-intuitive to the expectation that an exception would be thrown for closed connections. Starting with 1.7.0. the behaviour is to throw a
SQLExceptionif the connection is closed.Up to and including 1.7.1, each HSQLDB stored procedure returns only a single value wrapped in a
ResultSetobject. That is, HSQLDB stored procedures act very much like SQL functions, and can actually always be used in such a capacity. As such, there is really no point in supporting anything butTYPE_FORWARD_ONLY, since the result obtained by executing aCallableStatementobject has always just one column and one row. Be aware that this behaviour will change in HSQLDB 1.7., in that support will be added for Java stored procedures that return multi-column, multi-row results. At that point, support will be added forCallableStatementobjects that returnTYPE_FORWARD_ONLYResultSetobjects.New to 1.7.0, HSQLDB now allows calling
voidJava methods as SQL functions and stored procedures, the result being a SQLNULLvalue or a result with one column and one row whose single field is the SQLNULLvalue, respectiviely. Previously, calling such Java methods in either context resulted in throwing aSQLException. Finally, up to and including 1.7.1, the returnedCallableStatementobject does not support any getXXX methods. That is, HSQLDB stored procedures do not supportOUTorIN OUTparameters. This behaviour may change at some point in the 1.7.x series, but no decisions have yet been made.- Specified by:
prepareCallin interfacejava.sql.Connection
- Since:
- JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcConnection)
getTypeMap
public java.util.Map getTypeMap() throws java.sql.SQLException
-
Gets the type map object associated with this connection. Unless
the application has added an entry to the type map, the map
returned will be empty.
HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature. Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
getTypeMapin interfacejava.sql.Connection
- Since:
- JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcConnection)
setTypeMap
public void setTypeMap(java.util.Map map) throws java.sql.SQLException
-
Installs the given
TypeMapobject as the type map for thisConnectionobject. The type map will be used for the custom mapping of SQL structured types and distinct types.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature. Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
setTypeMapin interfacejava.sql.Connection
- Since:
- JDK 1.2 (JDK 1.1.x developers: read the new overview for jdbcConnection)
setHoldability
public void setHoldability(int holdability)
throws java.sql.SQLException
-
Changes the holdability of
ResultSetobjects created using thisConnectionobject to the given holdability.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
setHoldabilityin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
getHoldability
public int getHoldability()
throws java.sql.SQLException
-
Retrieves the current
holdability of
ResultSetobjects created using thisConnectionobject.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
getHoldabilityin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
setSavepoint
public java.sql.Savepoint setSavepoint() throws java.sql.SQLException
-
Creates an unnamed savepoint in
the current transaction and returns the new
Savepointobject that represents it.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
setSavepointin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
setSavepoint
public java.sql.Savepoint setSavepoint(java.lang.String name) throws java.sql.SQLException
-
Creates a savepoint with the
given name in the current transaction and returns the new
Savepointobject that represents it.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
setSavepointin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
rollback
public void rollback(java.sql.Savepoint savepoint) throws java.sql.SQLException
-
Undoes all changes made after
the given
Savepointobject was set.This method should be used only when auto-commit has been disabled.
HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
rollbackin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
releaseSavepoint
public void releaseSavepoint(java.sql.Savepoint savepoint) throws java.sql.SQLException
-
Removes the given
Savepointobject from the current transaction. Any reference to the savepoint after it have been removed will cause anSQLExceptionto be thrown.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
releaseSavepointin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
createStatement
public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException
-
Creates a
Statementobject that will generateResultSetobjects with the given type, concurrency, and holdability. This method is the same as thecreateStatementmethod above, but it allows the default result set type, concurrency, and holdability to be overridden.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
createStatementin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException
-
Creates a
PreparedStatementobject that will generateResultSetobjects with the given type, concurrency, and holdability.This method is the same as the
prepareStatementmethod above, but it allows the default result set type, concurrency, and holdability to be overridden.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
prepareStatementin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
prepareCall
public java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException
-
Creates a
CallableStatementobject that will generateResultSetobjects with the given type and concurrency. This method is the same as theprepareCallmethod above, but it allows the default result set type, result set concurrency type and holdability to be overridden.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
prepareCallin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException
-
Creates a default
PreparedStatementobject that has the capability to retrieve auto-generated keys. The given constant tells the driver whether it should make auto-generated keys available for retrieval. This parameter is ignored if the SQL statement is not anINSERTstatement.Note: This method is optimized for handling parametric SQL statements that benefit from precompilation. If the driver supports precompilation, the method
prepareStatementwill send the statement to the database for precompilation. Some drivers may not support precompilation. In this case, the statement may not be sent to the database until thePreparedStatementobject is executed. This has no direct effect on users; however, it does affect which methods throw certain SQLExceptions.Result sets created using the returned
PreparedStatementobject will by default be typeTYPE_FORWARD_ONLYand have a concurrency level ofCONCUR_READ_ONLY.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
prepareStatementin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException
-
Creates a default
PreparedStatementobject capable of returning the auto-generated keys designated by the given array. This array contains the indexes of the columns in the target table that contain the auto-generated keys that should be made available. This array is ignored if the SQL statement is not anINSERTstatement.An SQL statement with or without IN parameters can be pre-compiled and stored in a
PreparedStatementobject. This object can then be used to efficiently execute this statement multiple times.Note: This method is optimized for handling parametric SQL statements that benefit from precompilation. If the driver supports precompilation, the method
prepareStatementwill send the statement to the database for precompilation. Some drivers may not support precompilation. In this case, the statement may not be sent to the database until thePreparedStatementobject is executed. This has no direct effect on users; however, it does affect which methods throw certain SQLExceptions.Result sets created using the returned
PreparedStatementobject will by default be typeTYPE_FORWARD_ONLYand have a concurrency level ofCONCUR_READ_ONLY.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.- Specified by:
prepareStatementin interfacejava.sql.Connection
- Since:
- JDK 1.4, HSQLDB 1.7
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException
-
Creates a default
PreparedStatementobject capable of returning the auto-generated keys designated by the given array. This array contains the names of the columns in the target table that contain the auto-generated keys that should be returned. This array is ignored if the SQL statement is not anINSERTstatement.An SQL statement with or without IN parameters can be pre-compiled and stored in a
PreparedStatementobject. This object can then be used to efficiently execute this statement multiple times.Note: This method is optimized for handling parametric SQL statements that benefit from precompilation. If the driver supports precompilation, the method
prepareStatementwill send the statement to the database for precompilation. Some drivers may not support precompilation. In this case, the statement may not be sent to the database until thePreparedStatementobject is executed. This has no direct effect on users; however, it does affect which methods throw certain SQLExceptions.Result sets created using the returned
PreparedStatementobject will by default be typeTYPE_FORWARD_ONLYand have a concurrency level ofCONCUR_READ_ONLY.HSQLDB-Specific Information:
HSQLDB 1.7.1 does not support this feature.
Calling this method always throws a
SQLException, stating that the function is not supported.
JAVADOC
org.hsqldb.jdbcConnection