Module org.hsqldb
Package org.hsqldb.jdbc

## Class JDBCResultSet

- java.lang.Object
- - org.hsqldb.jdbc.JDBCResultSet

- All Implemented Interfaces:
    `java.lang.AutoCloseable`, `java.sql.ResultSet`, `java.sql.Wrapper`

      public class JDBCResultSet
      extends java.lang.Object
      implements java.sql.ResultSet

  A table of data representing a database result set, which is usually generated by executing a statement that queries the database.

  A `ResultSet` object maintains a cursor pointing to its current row of data. Initially the cursor is positioned before the first row. The `next` method moves the cursor to the next row, and because it returns `false` when there are no more rows in the `ResultSet` object, it can be used in a `while` loop to iterate through the result set.

  A default `ResultSet` object is not updatable and has a cursor that moves forward only. Thus, you can iterate through it only once and only from the first row to the last row. It is possible to produce `ResultSet` objects that are scrollable and/or updatable. The following code fragment, in which `con` is a valid `Connection` object, illustrates how to make a result set that is scrollable and insensitive to updates by others, and that is updatable. See `ResultSet` fields for other options.

             Statement stmt = con.createStatement(
                                            ResultSet.TYPE_SCROLL_INSENSITIVE,
                                            ResultSet.CONCUR_UPDATABLE);
             ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
             // rs will be scrollable, will not show changes made by others,
             // and will be updatable

  The `ResultSet` interface provides getter methods (`getBoolean`, `getLong`, and so on) for retrieving column values from the current row. Values can be retrieved using either the index number of the column or the name of the column. In general, using the column index will be more efficient. Columns are numbered from 1. For maximum portability, result set columns within each row should be read in left-to-right order, and each column should be read only once.

  For the getter methods, a JDBC driver attempts to convert the underlying data to the Java type specified in the getter method and returns a suitable Java value. The JDBC specification has a table showing the allowable mappings from SQL types to Java types that can be used by the `ResultSet` getter methods.

  Column names used as input to getter methods are case insensitive. When a getter method is called with a column name and several columns have the same name, the value of the first matching column will be returned. The column name option is designed to be used when column names are used in the SQL query that generated the result set. For columns that are NOT explicitly named in the query, it is best to use column numbers. If column names are used, the programmer should take care to guarantee that they uniquely refer to the intended columns, which can be assured with the SQL AS clause.

  A set of updater methods were added to this interface in the JDBC 2.0 API (Java 2 SDK, Standard Edition, version 1.2). The comments regarding parameters to the getter methods also apply to parameters to the updater methods.

  The updater methods may be used in two ways:

  1. to update a column value in the current row. In a scrollable `ResultSet` object, the cursor can be moved backwards and forwards, to an absolute position, or to a position relative to the current row. The following code fragment updates the `NAME` column in the fifth row of the `ResultSet` object `rs` and then uses the method `updateRow` to update the data source table from which `rs` was derived.

                rs.absolute(5); // moves the cursor to the fifth row of rs
                rs.updateString("NAME", "AINSWORTH"); // updates the
                   // NAME column of row 5 to be AINSWORTH
                rs.updateRow(); // updates the row in the data source

  2. to insert column values into the insert row. An updatable `ResultSet` object has a special row associated with it that serves as a staging area for building a row to be inserted. The following code fragment moves the cursor to the insert row, builds a three-column row, and inserts it into `rs` and into the data source table using the method `insertRow`.

                rs.moveToInsertRow(); // moves cursor to the insert row
                rs.updateString(1, "AINSWORTH"); // updates the
                   // first column of the insert row to be AINSWORTH
                rs.updateInt(2,35); // updates the second column to be 35
                rs.updateBoolean(3, true); // updates the third column to true
                rs.insertRow();
                rs.moveToCurrentRow();

  A `ResultSet` object is automatically closed when the `Statement` object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results.

  The number, types and properties of a `ResultSet` object's columns are provided by the `ResultSetMetaData` object returned by the `ResultSet.getMetaData` method.

  HSQLDB-Specific Information:

  A `ResultSet` object generated by HSQLDB is by default of `ResultSet.TYPE_FORWARD_ONLY` (as is standard JDBC behavior) and does not allow the use of absolute and relative positioning methods. If a statement is created with:

       Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

  then the `ResultSet` objects it produces support using all of the absolute and relative positioning methods of JDBC2 to set the position of the current row, for example:

       rs.absolute(5);
       String fifthRowValue = rs.getString(1);
       rs.relative(4);
       String ninthRowValue = rs.getString(1);

  A non-updatable HSQLDB `ResultSet` object stays open if it is not explicitly closed, even after its connection is closed. A connection opened with the property setting `close_result=true` closes any remaining open results when the connection is closed.

  From HSQLDB 2.0, there is full support for updatable result sets. Supported methods include all updateXXX methods for the supported types, as well as the `insertRow()`, `updateRow()`, `deleteRow()`, `moveToInsertRow()` methods.

  The Statement must be created with ResultSet.CONCUR_UPDATABLE instead of CONCUR_READ_ONLY.

  Updatability of a result set follows the SQL standards. Some or all columns of an updatable result set can be updated. The current row in such result sets can be deleted using the `deleteRow()` method. Some updatable result set can also be inserted into and support `moveToInsertRow()`.

  A result set is updatable if the SELECT statement is updatable. This includes SELECT from TABLE and updatable VIEW objects. An updatable SELECT statement has a single underlying table or view. HSQLDB supports both scrollable and forward-only result sets for updatability.

       -- In the SELECT below, columns A and B are updatable, any row can be
       -- deleted, but it is not insertable-into as column C is not directly from
       -- the table.
       SELECT A, B, A + B AS C FROM T WHERE ...

       -- The SELECT below can be insertable-into so long as other columns of the
       -- table that do not appear in the SELECT list have a default value.
       SELECT A, B FROM T WHERE ...

  From version 2.7.4, support for updatable result sets is extended to make updates and deletes visible. This feature is useful with scrollable result sets. After calling `updateRow`, the `rowUpdated` method now returns `true` on an updated row. After calling `deleteRow`, the `rowDeleted` method now returns `true` on a deleted row. Calling a `getXXX` method returns the updated values for updated rows and `null` for deleted rows. (fredt@users)
  (campbell-burnet@users)
  Since:
    JDK 1.1 HSQLDB 1.9.0
  Author:
    Campbell Burnet (campbell-burnet@users dot sourceforge.net), Fred Toussi (fredt@users dot sourceforge.net)
  See Also:
    `JDBCStatement.executeQuery(java.lang.String)`, `JDBCStatement.getResultSet()`, `ResultSetMetaData`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `org.hsqldb.result.Result` | `result` | The underlying result.

    - ### Fields inherited from interface java.sql.ResultSet

      `CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JDBCResultSet​(JDBCConnection conn, org.hsqldb.jdbc.JDBCStatementBase s, org.hsqldb.result.Result r, org.hsqldb.result.ResultMetaData metaData)` | Constructs a new `JDBCResultSet` object using the specified navigator and `org.hsqldb.result.ResultMetaData`.
    `JDBCResultSet​(JDBCConnection conn, org.hsqldb.result.Result r, org.hsqldb.result.ResultMetaData metaData)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `absolute​(int row)` | Moves the cursor to the given row number in this `ResultSet` object.
    `void` | `afterLast()` | Moves the cursor to the end of this `ResultSet` object, just after the last row.
    `void` | `beforeFirst()` | Moves the cursor to the front of this `ResultSet` object, just before the first row.
    `void` | `cancelRowUpdates()` | Cancels the updates made to the current row in this `ResultSet` object.
    `void` | `clearWarnings()` | Clears all warnings reported on this `ResultSet` object.
    `void` | `close()` | Releases this `ResultSet` object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed.
    `void` | `deleteRow()` | Deletes the current row from this `ResultSet` object and from the underlying database.
    `int` | `findColumn​(java.lang.String columnLabel)` | Maps the given `ResultSet` column label to its `ResultSet` column index.
    `boolean` | `first()` | Moves the cursor to the first row in this `ResultSet` object.
    `java.sql.Array` | `getArray​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as an `Array` object in the Java programming language.
    `java.sql.Array` | `getArray​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as an `Array` object in the Java programming language.
    `java.io.InputStream` | `getAsciiStream​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a stream of ASCII characters.
    `java.io.InputStream` | `getAsciiStream​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a stream of ASCII characters.
    `java.math.BigDecimal` | `getBigDecimal​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.math.BigDecimal` with full precision.
    `java.math.BigDecimal` | `getBigDecimal​(int columnIndex, int scale)` | Deprecated. Use `getBigDecimal(int columnIndex)` or `getBigDecimal(String columnLabel)`
    `java.math.BigDecimal` | `getBigDecimal​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.math.BigDecimal` with full precision.
    `java.math.BigDecimal` | `getBigDecimal​(java.lang.String columnLabel, int scale)` | Deprecated. Use `getBigDecimal(int columnIndex)` or `getBigDecimal(String columnLabel)`
    `java.io.InputStream` | `getBinaryStream​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a stream of uninterpreted bytes.
    `java.io.InputStream` | `getBinaryStream​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a stream of uninterpreted `byte`s.
    `java.sql.Blob` | `getBlob​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Blob` object in the Java programming language.
    `java.sql.Blob` | `getBlob​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Blob` object in the Java programming language.
    `boolean` | `getBoolean​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `boolean` in the Java programming language.
    `boolean` | `getBoolean​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `boolean` in the Java programming language.
    `byte` | `getByte​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `byte` in the Java programming language.
    `byte` | `getByte​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `byte` in the Java programming language.
    `byte[]` | `getBytes​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `byte` array in the Java programming language.
    `byte[]` | `getBytes​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `byte` array in the Java programming language.
    `java.io.Reader` | `getCharacterStream​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.io.Reader` object.
    `java.io.Reader` | `getCharacterStream​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.io.Reader` object.
    `java.sql.Clob` | `getClob​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Clob` object in the Java programming language.
    `java.sql.Clob` | `getClob​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Clob` object in the Java programming language.
    `int` | `getConcurrency()` | Retrieves the concurrency mode of this `ResultSet` object.
    `java.lang.String` | `getCursorName()` | Retrieves the name of the SQL cursor used by this `ResultSet` object.
    `java.sql.Date` | `getDate​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Date` object in the Java programming language.
    `java.sql.Date` | `getDate​(int columnIndex, java.util.Calendar cal)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Date` object in the Java programming language.
    `java.sql.Date` | `getDate​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Date` object in the Java programming language.
    `java.sql.Date` | `getDate​(java.lang.String columnLabel, java.util.Calendar cal)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Date` object in the Java programming language.
    `double` | `getDouble​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `double` in the Java programming language.
    `double` | `getDouble​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `double` in the Java programming language.
    `int` | `getFetchDirection()` | Retrieves the fetch direction for this `ResultSet` object.
    `int` | `getFetchSize()` | Retrieves the fetch size for this `ResultSet` object.
    `float` | `getFloat​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `float` in the Java programming language.
    `float` | `getFloat​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `float` in the Java programming language.
    `int` | `getHoldability()` | Retrieves the holdability of this `ResultSet` object
    `int` | `getInt​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as an `int` in the Java programming language.
    `int` | `getInt​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as an `int` in the Java programming language.
    `long` | `getLong​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `long` in the Java programming language.
    `long` | `getLong​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `long` in the Java programming language.
    `java.sql.ResultSetMetaData` | `getMetaData()` | Retrieves the number, types and properties of this `ResultSet` object's columns.
    `java.io.Reader` | `getNCharacterStream​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.io.Reader` object.
    `java.io.Reader` | `getNCharacterStream​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.io.Reader` object.
    `java.sql.NClob` | `getNClob​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `NClob` object in the Java programming language.
    `java.sql.NClob` | `getNClob​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `NClob` object in the Java programming language.
    `java.lang.String` | `getNString​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `String` in the Java programming language.
    `java.lang.String` | `getNString​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `String` in the Java programming language.
    `java.lang.Object` | `getObject​(int columnIndex)` | Gets the value of the designated column in the current row of this `ResultSet` object as an `Object` in the Java programming language.
    `<T> T` | `getObject​(int columnIndex, java.lang.Class<T> type)` | Retrieves the value of the designated column in the current row of this `ResultSet` object and will convert from the SQL type of the column to the requested Java data type, if the conversion is supported.
    `java.lang.Object` | `getObject​(int columnIndex, java.util.Map map)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as an `Object` in the Java programming language.
    `java.lang.Object` | `getObject​(java.lang.String columnLabel)` | Gets the value of the designated column in the current row of this `ResultSet` object as an `Object` in the Java programming language.
    `<T> T` | `getObject​(java.lang.String columnLabel, java.lang.Class<T> type)` | Retrieves the value of the designated column in the current row of this `ResultSet` object and will convert from the SQL type of the column to the requested Java data type, if the conversion is supported.
    `java.lang.Object` | `getObject​(java.lang.String columnLabel, java.util.Map map)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as an `Object` in the Java programming language.
    `java.sql.Ref` | `getRef​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Ref` object in the Java programming language.
    `java.sql.Ref` | `getRef​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Ref` object in the Java programming language.
    `int` | `getRow()` | Retrieves the current row number.
    `java.sql.RowId` | `getRowId​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.RowId` object in the Java programming language.
    `java.sql.RowId` | `getRowId​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.RowId` object in the Java programming language.
    `short` | `getShort​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `short` in the Java programming language.
    `short` | `getShort​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `short` in the Java programming language.
    `java.sql.SQLXML` | `getSQLXML​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` as a `java.sql.SQLXML` object in the Java programming language.
    `java.sql.SQLXML` | `getSQLXML​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` as a `java.sql.SQLXML` object in the Java programming language.
    `java.sql.Statement` | `getStatement()` | Retrieves the `Statement` object that produced this `ResultSet` object.
    `java.lang.String` | `getString​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `String` in the Java programming language.
    `java.lang.String` | `getString​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `String` in the Java programming language.
    `java.sql.Time` | `getTime​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Time` object in the Java programming language.
    `java.sql.Time` | `getTime​(int columnIndex, java.util.Calendar cal)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Time` object in the Java programming language.
    `java.sql.Time` | `getTime​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Time` object in the Java programming language.
    `java.sql.Time` | `getTime​(java.lang.String columnLabel, java.util.Calendar cal)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Time` object in the Java programming language.
    `java.sql.Timestamp` | `getTimestamp​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Timestamp` object in the Java programming language.
    `java.sql.Timestamp` | `getTimestamp​(int columnIndex, java.util.Calendar cal)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Timestamp` object in the Java programming language.
    `java.sql.Timestamp` | `getTimestamp​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Timestamp` object in the Java programming language.
    `java.sql.Timestamp` | `getTimestamp​(java.lang.String columnLabel, java.util.Calendar cal)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Timestamp` object in the Java programming language.
    `int` | `getType()` | Retrieves the type of this `ResultSet` object.
    `java.io.InputStream` | `getUnicodeStream​(int columnIndex)` | Deprecated. use `getCharacterStream` in place of `getUnicodeStream`
    `java.io.InputStream` | `getUnicodeStream​(java.lang.String columnLabel)` | Deprecated. use `getCharacterStream` instead
    `java.net.URL` | `getURL​(int columnIndex)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.net.URL` object in the Java programming language.
    `java.net.URL` | `getURL​(java.lang.String columnLabel)` | Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.net.URL` object in the Java programming language.
    `java.sql.SQLWarning` | `getWarnings()` | Retrieves the first warning reported by calls on this `ResultSet` object.
    `void` | `insertRow()` | Inserts the contents of the insert row into this `ResultSet` object and into the database.
    `boolean` | `isAfterLast()` | Retrieves whether the cursor is after the last row in this `ResultSet` object.
    `boolean` | `isBeforeFirst()` | Retrieves whether the cursor is before the first row in this `ResultSet` object.
    `boolean` | `isClosed()` | Retrieves whether this `ResultSet` object has been closed.
    `boolean` | `isFirst()` | Retrieves whether the cursor is on the first row of this `ResultSet` object.
    `boolean` | `isLast()` | Retrieves whether the cursor is on the last row of this `ResultSet` object.
    `boolean` | `isWrapperFor​(java.lang.Class<?> iface)` | Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.
    `boolean` | `last()` | Moves the cursor to the last row in this `ResultSet` object.
    `void` | `moveToCurrentRow()` | Moves the cursor to the remembered cursor position, usually the current row.
    `void` | `moveToInsertRow()` | Moves the cursor to the insert row.
    `static JDBCResultSet` | `newEmptyResultSet()` |
    `static JDBCResultSet` | `newJDBCResultSet​(org.hsqldb.result.Result r, org.hsqldb.result.ResultMetaData metaData)` | Factory method returns a new `JDBCResultSet` object for use with user defined functions that return a ResultSet object.
    `boolean` | `next()` | Moves the cursor forward one row from its current position.
    `boolean` | `previous()` | Moves the cursor to the previous row in this `ResultSet` object.
    `void` | `refreshRow()` | Refreshes the current row with its most recent value in the database.
    `boolean` | `relative​(int rows)` | Moves the cursor a relative number of rows, either positive or negative.
    `boolean` | `rowDeleted()` | Retrieves whether a row has been deleted.
    `boolean` | `rowInserted()` | Retrieves whether the current row has had an insertion.
    `boolean` | `rowUpdated()` | Retrieves whether the current row has been updated.
    `void` | `setFetchDirection​(int direction)` | Gives a hint as to the direction in which the rows in this `ResultSet` object will be processed.
    `void` | `setFetchSize​(int rows)` | Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this `ResultSet` object.
    `<T> T` | `unwrap​(java.lang.Class<T> iface)` | Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy.
    `void` | `updateArray​(int columnIndex, java.sql.Array x)` | Updates the designated column with a `java.sql.Array` value.
    `void` | `updateArray​(java.lang.String columnLabel, java.sql.Array x)` | Updates the designated column with a `java.sql.Array` value.
    `void` | `updateAsciiStream​(int columnIndex, java.io.InputStream x)` | Updates the designated column with an ascii stream value.
    `void` | `updateAsciiStream​(int columnIndex, java.io.InputStream x, int length)` | Updates the designated column with an ascii stream value, which will have the specified number of bytes.
    `void` | `updateAsciiStream​(int columnIndex, java.io.InputStream x, long length)` | Updates the designated column with an ascii stream value, which will have the specified number of bytes.
    `void` | `updateAsciiStream​(java.lang.String columnLabel, java.io.InputStream x)` | Updates the designated column with an ascii stream value.
    `void` | `updateAsciiStream​(java.lang.String columnLabel, java.io.InputStream x, int length)` | Updates the designated column with an ascii stream value, which will have the specified number of bytes.
    `void` | `updateAsciiStream​(java.lang.String columnLabel, java.io.InputStream x, long length)` | Updates the designated column with an ascii stream value, which will have the specified number of bytes.
    `void` | `updateBigDecimal​(int columnIndex, java.math.BigDecimal x)` | Updates the designated column with a `java.math.BigDecimal` value.
    `void` | `updateBigDecimal​(java.lang.String columnLabel, java.math.BigDecimal x)` | Updates the designated column with a `java.sql.BigDecimal` value.
    `void` | `updateBinaryStream​(int columnIndex, java.io.InputStream x)` | Updates the designated column with a binary stream value.
    `void` | `updateBinaryStream​(int columnIndex, java.io.InputStream x, int length)` | Updates the designated column with a binary stream value, which will have the specified number of bytes.
    `void` | `updateBinaryStream​(int columnIndex, java.io.InputStream x, long length)` | Updates the designated column with a binary stream value, which will have the specified number of bytes.
    `void` | `updateBinaryStream​(java.lang.String columnLabel, java.io.InputStream x)` | Updates the designated column with a binary stream value.
    `void` | `updateBinaryStream​(java.lang.String columnLabel, java.io.InputStream x, int length)` | Updates the designated column with a binary stream value, which will have the specified number of bytes.
    `void` | `updateBinaryStream​(java.lang.String columnLabel, java.io.InputStream x, long length)` | Updates the designated column with a binary stream value, which will have the specified number of bytes.
    `void` | `updateBlob​(int columnIndex, java.io.InputStream inputStream)` | Updates the designated column using the given input stream.
    `void` | `updateBlob​(int columnIndex, java.io.InputStream inputStream, long length)` | Updates the designated column using the given input stream, which will have the specified number of bytes.
    `void` | `updateBlob​(int columnIndex, java.sql.Blob x)` | Updates the designated column with a `java.sql.Blob` value.
    `void` | `updateBlob​(java.lang.String columnLabel, java.io.InputStream inputStream)` | Updates the designated column using the given input stream.
    `void` | `updateBlob​(java.lang.String columnLabel, java.io.InputStream inputStream, long length)` | Updates the designated column using the given input stream, which will have the specified number of bytes.
    `void` | `updateBlob​(java.lang.String columnLabel, java.sql.Blob x)` | Updates the designated column with a `java.sql.Blob` value.
    `void` | `updateBoolean​(int columnIndex, boolean x)` | Updates the designated column with a `boolean` value.
    `void` | `updateBoolean​(java.lang.String columnLabel, boolean x)` | Updates the designated column with a `boolean` value.
    `void` | `updateByte​(int columnIndex, byte x)` | Updates the designated column with a `byte` value.
    `void` | `updateByte​(java.lang.String columnLabel, byte x)` | Updates the designated column with a `byte` value.
    `void` | `updateBytes​(int columnIndex, byte[] x)` | Updates the designated column with a `byte` array value.
    `void` | `updateBytes​(java.lang.String columnLabel, byte[] x)` | Updates the designated column with a byte array value.
    `void` | `updateCharacterStream​(int columnIndex, java.io.Reader x)` | Updates the designated column with a character stream value.
    `void` | `updateCharacterStream​(int columnIndex, java.io.Reader x, int length)` | Updates the designated column with a character stream value, which will have the specified number of (CHECKME: characters?) bytes.
    `void` | `updateCharacterStream​(int columnIndex, java.io.Reader x, long length)` | Updates the designated column with a character stream value, which will have the specified number of bytes.
    `void` | `updateCharacterStream​(java.lang.String columnLabel, java.io.Reader reader)` | Updates the designated column with a character stream value.
    `void` | `updateCharacterStream​(java.lang.String columnLabel, java.io.Reader reader, int length)` | Updates the designated column with a character stream value, which will have the specified number of (CHECKME: characters?) bytes.
    `void` | `updateCharacterStream​(java.lang.String columnLabel, java.io.Reader reader, long length)` | Updates the designated column with a character stream value, which will have the specified number of bytes.
    `void` | `updateClob​(int columnIndex, java.io.Reader reader)` | Updates the designated column using the given `Reader` object.
    `void` | `updateClob​(int columnIndex, java.io.Reader reader, long length)` | Updates the designated column using the given `Reader` object, which is the given number of characters long.
    `void` | `updateClob​(int columnIndex, java.sql.Clob x)` | Updates the designated column with a `java.sql.Clob` value.
    `void` | `updateClob​(java.lang.String columnLabel, java.io.Reader reader)` | Updates the designated column using the given `Reader` object.
    `void` | `updateClob​(java.lang.String columnLabel, java.io.Reader reader, long length)` | Updates the designated column using the given `Reader` object, which is the given number of characters long.
    `void` | `updateClob​(java.lang.String columnLabel, java.sql.Clob x)` | Updates the designated column with a `java.sql.Clob` value.
    `void` | `updateDate​(int columnIndex, java.sql.Date x)` | Updates the designated column with a `java.sql.Date` value.
    `void` | `updateDate​(java.lang.String columnLabel, java.sql.Date x)` | Updates the designated column with a `java.sql.Date` value.
    `void` | `updateDouble​(int columnIndex, double x)` | Updates the designated column with a `double` value.
    `void` | `updateDouble​(java.lang.String columnLabel, double x)` | Updates the designated column with a `double` value.
    `void` | `updateFloat​(int columnIndex, float x)` | Updates the designated column with a `float` value.
    `void` | `updateFloat​(java.lang.String columnLabel, float x)` | Updates the designated column with a `float` value.
    `void` | `updateInt​(int columnIndex, int x)` | Updates the designated column with an `int` value.
    `void` | `updateInt​(java.lang.String columnLabel, int x)` | Updates the designated column with an `int` value.
    `void` | `updateLong​(int columnIndex, long x)` | Updates the designated column with a `long` value.
    `void` | `updateLong​(java.lang.String columnLabel, long x)` | Updates the designated column with a `long` value.
    `void` | `updateNCharacterStream​(int columnIndex, java.io.Reader reader)` | Updates the designated column with a character stream value.
    `void` | `updateNCharacterStream​(int columnIndex, java.io.Reader x, long length)` | Updates the designated column with a character stream value, which will have the specified number of bytes.
    `void` | `updateNCharacterStream​(java.lang.String columnLabel, java.io.Reader reader)` | Updates the designated column with a character stream value.
    `void` | `updateNCharacterStream​(java.lang.String columnLabel, java.io.Reader reader, long length)` | Updates the designated column with a character stream value, which will have the specified number of bytes.
    `void` | `updateNClob​(int columnIndex, java.io.Reader reader)` | Updates the designated column using the given `Reader` The data will be read from the stream as needed until end-of-stream is reached.
    `void` | `updateNClob​(int columnIndex, java.io.Reader reader, long length)` | Updates the designated column using the given `Reader` object, which is the given number of characters long.
    `void` | `updateNClob​(int columnIndex, java.sql.NClob nClob)` | Updates the designated column with a `java.sql.NClob` value.
    `void` | `updateNClob​(java.lang.String columnLabel, java.io.Reader reader)` | Updates the designated column using the given `Reader` object.
    `void` | `updateNClob​(java.lang.String columnLabel, java.io.Reader reader, long length)` | Updates the designated column using the given `Reader` object, which is the given number of characters long.
    `void` | `updateNClob​(java.lang.String columnLabel, java.sql.NClob nClob)` | Updates the designated column with a `java.sql.NClob` value.
    `void` | `updateNString​(int columnIndex, java.lang.String nString)` | Updates the designated column with a `String` value.
    `void` | `updateNString​(java.lang.String columnLabel, java.lang.String nString)` | Updates the designated column with a `String` value.
    `void` | `updateNull​(int columnIndex)` | Updates the designated column with a `null` value.
    `void` | `updateNull​(java.lang.String columnLabel)` | Updates the designated column with a `null` value.
    `void` | `updateObject​(int columnIndex, java.lang.Object x)` | Updates the designated column with an `Object` value.
    `void` | `updateObject​(int columnIndex, java.lang.Object x, int scaleOrLength)` | Updates the designated column with an `Object` value.
    `void` | `updateObject​(int columnIndex, java.lang.Object x, java.sql.SQLType targetSqlType)` | Updates the designated column with an `Object` value.
    `void` | `updateObject​(int columnIndex, java.lang.Object x, java.sql.SQLType targetSqlType, int scaleOrLength)` | Updates the designated column with an `Object` value.
    `void` | `updateObject​(java.lang.String columnLabel, java.lang.Object x)` | Updates the designated column with an `Object` value.
    `void` | `updateObject​(java.lang.String columnLabel, java.lang.Object x, int scaleOrLength)` | Updates the designated column with an `Object` value.
    `void` | `updateObject​(java.lang.String columnLabel, java.lang.Object x, java.sql.SQLType targetSqlType)` | Updates the designated column with an `Object` value.
    `void` | `updateObject​(java.lang.String columnLabel, java.lang.Object x, java.sql.SQLType targetSqlType, int scaleOrLength)` | Updates the designated column with an `Object` value.
    `void` | `updateRef​(int columnIndex, java.sql.Ref x)` | Updates the designated column with a `java.sql.Ref` value.
    `void` | `updateRef​(java.lang.String columnLabel, java.sql.Ref x)` | Updates the designated column with a `java.sql.Ref` value.
    `void` | `updateRow()` | Updates the underlying database with the new contents of the current row of this `ResultSet` object.
    `void` | `updateRowId​(int columnIndex, java.sql.RowId x)` | Updates the designated column with a `RowId` value.
    `void` | `updateRowId​(java.lang.String columnLabel, java.sql.RowId x)` | Updates the designated column with a `RowId` value.
    `void` | `updateShort​(int columnIndex, short x)` | Updates the designated column with a `short` value.
    `void` | `updateShort​(java.lang.String columnLabel, short x)` | Updates the designated column with a `short` value.
    `void` | `updateSQLXML​(int columnIndex, java.sql.SQLXML xmlObject)` | Updates the designated column with a `java.sql.SQLXML` value.
    `void` | `updateSQLXML​(java.lang.String columnLabel, java.sql.SQLXML xmlObject)` | Updates the designated column with a `java.sql.SQLXML` value.
    `void` | `updateString​(int columnIndex, java.lang.String x)` | Updates the designated column with a `String` value.
    `void` | `updateString​(java.lang.String columnLabel, java.lang.String x)` | Updates the designated column with a `String` value.
    `void` | `updateTime​(int columnIndex, java.sql.Time x)` | Updates the designated column with a `java.sql.Time` value.
    `void` | `updateTime​(java.lang.String columnLabel, java.sql.Time x)` | Updates the designated column with a `java.sql.Time` value.
    `void` | `updateTimestamp​(int columnIndex, java.sql.Timestamp x)` | Updates the designated column with a `java.sql.Timestamp` value.
    `void` | `updateTimestamp​(java.lang.String columnLabel, java.sql.Timestamp x)` | Updates the designated column with a `java.sql.Timestamp` value.
    `boolean` | `wasNull()` | Reports whether the last column read had a value of SQL `NULL`.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### result

          public org.hsqldb.result.Result result

      The underlying result.

  - ### Constructor Detail

    - #### JDBCResultSet

          public JDBCResultSet​(JDBCConnection conn,
                               org.hsqldb.jdbc.JDBCStatementBase s,
                               org.hsqldb.result.Result r,
                               org.hsqldb.result.ResultMetaData metaData)

      Constructs a new `JDBCResultSet` object using the specified navigator and `org.hsqldb.result.ResultMetaData`.
      Parameters:
        `conn` - JDBCConnection
        `s` - the statement
        `r` - the internal result form that the new `JDBCResultSet` represents
        `metaData` - the connection properties

    - #### JDBCResultSet

          public JDBCResultSet​(JDBCConnection conn,
                               org.hsqldb.result.Result r,
                               org.hsqldb.result.ResultMetaData metaData)

  - ### Method Detail

    - #### next

          public boolean next()
                       throws java.sql.SQLException

      Moves the cursor forward one row from its current position. A `ResultSet` cursor is initially positioned before the first row; the first call to the method `next` makes the first row the current row; the second call makes the second row the current row, and so on.

      When a call to the `next` method returns `false`, the cursor is positioned after the last row. Any invocation of a `ResultSet` method which requires a current row will result in a `SQLException` being thrown. If the result set type is `TYPE_FORWARD_ONLY`, it is vendor specified whether their JDBC driver implementation will return `false` or throw an `SQLException` on a subsequent call to `next`.

      If an input stream is open for the current row, a call to the method `next` will implicitly close it. A `ResultSet` object's warning chain is cleared when a new row is read.

      Specified by:
        `next` in interface `java.sql.ResultSet`
      Returns:
        `true` if the new current row is valid; `false` if there are no more rows
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set

    - #### close

          public void close()
                     throws java.sql.SQLException

      Releases this `ResultSet` object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed.

      The closing of a `ResultSet` object does not close the `Blob`, `Clob` or `NClob` objects created by the `ResultSet`. `Blob`, `Clob` or `NClob` objects remain valid for at least the duration of the transaction in which they are created, unless their `free` method is invoked.

      When a `ResultSet` is closed, any `ResultSetMetaData` instances that were created by calling the `getMetaData` method remain accessible.

      Note: A `ResultSet` object is automatically closed by the `Statement` object that generated it when that `Statement` object is closed, re-executed, or is used to retrieve the next result from a sequence of multiple results.

      Calling the method `close` on a `ResultSet` object that is already closed is a no-op.

      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Specified by:
        `close` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### wasNull

          public boolean wasNull()
                          throws java.sql.SQLException

      Reports whether the last column read had a value of SQL `NULL`. Note that you must first call one of the getter methods on a column to try to read its value and then call the method `wasNull` to see if the value read was SQL `NULL`.
      Specified by:
        `wasNull` in interface `java.sql.ResultSet`
      Returns:
        `true` if the last column value read was SQL `NULL` and `false` otherwise
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set

    - #### getString

          public java.lang.String getString​(int columnIndex)
                                     throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `String` in the Java programming language.
      Specified by:
        `getString` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getBoolean

          public boolean getBoolean​(int columnIndex)
                             throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `boolean` in the Java programming language.

      If the designated column has a datatype of CHAR or VARCHAR and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT and contains a 0, a value of `false` is returned. If the designated column has a datatype of CHAR or VARCHAR and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT and contains a 1, a value of `true` is returned.

      Specified by:
        `getBoolean` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `false`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getByte

          public byte getByte​(int columnIndex)
                       throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `byte` in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB converts the numeric value to the return type. If the value is out of the range for the return type, an error is returned. For example, this can happen if getByte() or getShort() is used to retrieve a value of type INTEGER or BIGINT and the value is beyond the range covered by the return type.
      Specified by:
        `getByte` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getShort

          public short getShort​(int columnIndex)
                         throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `short` in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB converts the numeric value to the return type. If the value is out of the range for the return type, an error is returned. For example, this can happen if getByte() or getShort() is used to retrieve a value of type INTEGER or BIGINT and the value is beyond the range covered by the return type.
      Specified by:
        `getShort` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getInt

          public int getInt​(int columnIndex)
                     throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as an `int` in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB converts the numeric value to the return type. If the value is out of the range for the return type, an error is returned. For example, this can happen if getInt() or getLong() is used to retrieve a value of type DECIMAL or NUMERIC with a large precision and the value is beyond the range covered by the return type.
      Specified by:
        `getInt` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getLong

          public long getLong​(int columnIndex)
                       throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `long` in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB converts the numeric value to the return type. If the value is out of the range for the return type, an error is returned. For example, this can happen if getInt() or getLong() is used to retrieve a value of type DECIMAL or NUMERIC with a large precision and the value is beyond the range covered by the return type.
      Specified by:
        `getLong` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getFloat

          public float getFloat​(int columnIndex)
                         throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `float` in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB converts the numeric value to the return type. If the value is out of the range for the return type, an error is returned. For example, this can happen if getFloat() or getDouble() is used to retrieve a value of type DECIMAL or NUMERIC with a large precision and the value is beyond the range covered by the return type.
      Specified by:
        `getFloat` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getDouble

          public double getDouble​(int columnIndex)
                           throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `double` in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB converts the numeric value to the return type. If the value is out of the range for the return type, an error is returned. For example, this can happen if getFloat() or getDouble() is used to retrieve a value of type DECIMAL or NUMERIC with a large precision and the value is beyond the range covered by the return type.
      Specified by:
        `getDouble` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getBigDecimal

          @Deprecated
          public java.math.BigDecimal getBigDecimal​(int columnIndex,
                                                    int scale)
                                             throws java.sql.SQLException

      Deprecated.
      Use `getBigDecimal(int columnIndex)` or `getBigDecimal(String columnLabel)`
      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.BigDecimal` in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB converts the result and sets the scale with BigDecimal.ROUND_HALF_DOWN.
      Specified by:
        `getBigDecimal` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `scale` - the number of digits to the right of the decimal point
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method

    - #### getBytes

          public byte[] getBytes​(int columnIndex)
                          throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `byte` array in the Java programming language. The bytes represent the raw values returned by the driver.

      HSQLDB-Specific Information:

      HSQLDB returns correct values for columns of binary types `BINARY`, `BIT`, `BLOB`
      Specified by:
        `getBytes` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getDate

          public java.sql.Date getDate​(int columnIndex)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Date` object in the Java programming language.
      Specified by:
        `getDate` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getTime

          public java.sql.Time getTime​(int columnIndex)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Time` object in the Java programming language.
      Specified by:
        `getTime` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp​(int columnIndex)
                                          throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Timestamp` object in the Java programming language.

      HSQLDB-Specific Information:

      The JDBC specification for this method is vague. HSQLDB interprets the specification as follows:
      1. If the SQL type of the column is WITH TIME ZONE, then the UTC value of the returned java.sql.Timestamp object is the UTC of the SQL value without modification.
      2. If the SQL type of the column is WITHOUT TIME ZONE, then the UTC value of the returned java.sql.Timestamp will represent the correct timestamp for the time zone (including daylight saving time) of the SQL session.
      Specified by:
        `getTimestamp` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getAsciiStream

          public java.io.InputStream getAsciiStream​(int columnIndex)
                                             throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a stream of ASCII characters. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large `LONGVARCHAR` values. The JDBC driver will do any necessary conversion from the database format into ASCII.

      Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return `0` when the method `InputStream.available` is called whether there is data available or not.

      HSQLDB-Specific Information:

      The limitation noted above does not apply to HSQLDB.

      When the column is of type CHAR and its variations, it requires no conversion since it is represented internally already as a Java String object. When the column is not of type CHAR and its variations, the returned stream is based on a conversion to the Java `String` representation of the value. In either case, the obtained stream is always equivalent to a stream of the low order bytes from the value's String representation.

      HSQLDB SQL `CHAR` and its variations are all Unicode strings internally, so the recommended alternatives to this method are `getString`, `getUnicodeStream` (deprecated) and new to 1.7.0: `getCharacterStream` (now preferred over the deprecated getUnicodeStream alternative).

      Specified by:
        `getAsciiStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a Java input stream that delivers the database column value as a stream of one-byte ASCII characters; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getUnicodeStream

          @Deprecated
          public java.io.InputStream getUnicodeStream​(int columnIndex)
                                               throws java.sql.SQLException

      Deprecated.
      use `getCharacterStream` in place of `getUnicodeStream`
      Retrieves the value of the designated column in the current row of this `ResultSet` object as a stream of two-byte Unicode characters. The first byte is the high byte; the second byte is the low byte. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large `LONGVARCHAR`values. The JDBC driver will do any necessary conversion from the database format into Unicode.

      Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return `0` when the method `InputStream.available` is called, whether there is data available or not.

      HSQLDB-Specific Information:

      The limitation noted above does not apply to HSQLDB.

      When the column is of type CHAR and its variations, it requires no conversion since it is represented internally already as Java Strings. When the column is not of type CHAR and its variations, the returned stream is based on a conversion to the Java `String` representation of the value. In either case, the obtained stream is always equivalent to a stream of bytes from the value's String representation, with high-byte first.

      Specified by:
        `getUnicodeStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a Java input stream that delivers the database column value as a stream of two-byte Unicode characters; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method

    - #### getBinaryStream

          public java.io.InputStream getBinaryStream​(int columnIndex)
                                              throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a stream of uninterpreted bytes. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large `LONGVARBINARY` values.

      Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return `0` when the method `InputStream.available` is called whether there is data available or not.

      Specified by:
        `getBinaryStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a Java input stream that delivers the database column value as a stream of uninterpreted bytes; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getString

          public java.lang.String getString​(java.lang.String columnLabel)
                                     throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `String` in the Java programming language.
      Specified by:
        `getString` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getBoolean

          public boolean getBoolean​(java.lang.String columnLabel)
                             throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `boolean` in the Java programming language.

      If the designated column has a datatype of CHAR or VARCHAR and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT and contains a 0, a value of `false` is returned. If the designated column has a datatype of CHAR or VARCHAR and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT and contains a 1, a value of `true` is returned.

      Specified by:
        `getBoolean` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `false`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getByte

          public byte getByte​(java.lang.String columnLabel)
                       throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `byte` in the Java programming language.
      Specified by:
        `getByte` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getShort

          public short getShort​(java.lang.String columnLabel)
                         throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `short` in the Java programming language.
      Specified by:
        `getShort` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getInt

          public int getInt​(java.lang.String columnLabel)
                     throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as an `int` in the Java programming language.
      Specified by:
        `getInt` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getLong

          public long getLong​(java.lang.String columnLabel)
                       throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `long` in the Java programming language.
      Specified by:
        `getLong` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getFloat

          public float getFloat​(java.lang.String columnLabel)
                         throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `float` in the Java programming language.
      Specified by:
        `getFloat` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getDouble

          public double getDouble​(java.lang.String columnLabel)
                           throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `double` in the Java programming language.
      Specified by:
        `getDouble` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `0`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getBigDecimal

          @Deprecated
          public java.math.BigDecimal getBigDecimal​(java.lang.String columnLabel,
                                                    int scale)
                                             throws java.sql.SQLException

      Deprecated.
      Use `getBigDecimal(int columnIndex)` or `getBigDecimal(String columnLabel)`
      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.math.BigDecimal` in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB converts the result and sets the scale with BigDecimal.ROUND_HALF_DOWN.
      Specified by:
        `getBigDecimal` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `scale` - the number of digits to the right of the decimal point
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method

    - #### getBytes

          public byte[] getBytes​(java.lang.String columnLabel)
                          throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `byte` array in the Java programming language. The bytes represent the raw values returned by the driver.
      Specified by:
        `getBytes` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getDate

          public java.sql.Date getDate​(java.lang.String columnLabel)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Date` object in the Java programming language.
      Specified by:
        `getDate` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getTime

          public java.sql.Time getTime​(java.lang.String columnLabel)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Time` object in the Java programming language.
      Specified by:
        `getTime` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp​(java.lang.String columnLabel)
                                          throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Timestamp` object in the Java programming language.

      HSQLDB-Specific Information:

      The JDBC specification for this method is vague. HSQLDB interprets the specification as follows:
      1. If the SQL type of the column is WITH TIME ZONE, then the UTC value of the returned java.sql.Timestamp object is the UTC of the SQL value without modification.
      2. If the SQL type of the column is WITHOUT TIME ZONE, then the UTC value of the returned java.sql.Timestamp will represent the correct timestamp for the time zone (including daylight saving time) of the SQL session.
      Specified by:
        `getTimestamp` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getAsciiStream

          public java.io.InputStream getAsciiStream​(java.lang.String columnLabel)
                                             throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a stream of ASCII characters. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large `LONGVARCHAR` values. The JDBC driver will do any necessary conversion from the database format into ASCII.

      Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return `0` when the method `available` is called whether there is data available or not.

      Specified by:
        `getAsciiStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a Java input stream that delivers the database column value as a stream of one-byte ASCII characters. If the value is SQL `NULL`, the value returned is `null`.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getUnicodeStream

          @Deprecated
          public java.io.InputStream getUnicodeStream​(java.lang.String columnLabel)
                                               throws java.sql.SQLException

      Deprecated.
      use `getCharacterStream` instead
      Retrieves the value of the designated column in the current row of this `ResultSet` object as a stream of two-byte Unicode characters. The first byte is the high byte; the second byte is the low byte. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large `LONGVARCHAR` values. The JDBC technology-enabled driver will do any necessary conversion from the database format into Unicode.

      Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return `0` when the method `InputStream.available` is called, whether there is data available or not.

      Specified by:
        `getUnicodeStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a Java input stream that delivers the database column value as a stream of two-byte Unicode characters. If the value is SQL `NULL`, the value returned is `null`.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method

    - #### getBinaryStream

          public java.io.InputStream getBinaryStream​(java.lang.String columnLabel)
                                              throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a stream of uninterpreted `byte`s. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large `LONGVARBINARY` values.

      Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return `0` when the method `available` is called whether there is data available or not.

      Specified by:
        `getBinaryStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a Java input stream that delivers the database column value as a stream of uninterpreted bytes; if the value is SQL `NULL`, the result is `null`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getWarnings

          public java.sql.SQLWarning getWarnings()
                                          throws java.sql.SQLException

      Retrieves the first warning reported by calls on this `ResultSet` object. Subsequent warnings on this `ResultSet` object will be chained to the `SQLWarning` object that this method returns.

      The warning chain is automatically cleared each time a new row is read. This method may not be called on a `ResultSet` object that has been closed; doing so will cause an `SQLException` to be thrown.

      Note: This warning chain only covers warnings caused by `ResultSet` methods. Any warning caused by `Statement` methods (such as reading OUT parameters) will be chained on the `Statement` object.

      HSQLDB-Specific Information:

      HSQLDB does not produce `SQLWarning` objects on any ResultSet object warning chain; this method always returns `null`.
      Specified by:
        `getWarnings` in interface `java.sql.ResultSet`
      Returns:
        the first `SQLWarning` object reported or `null` if there are none
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set

    - #### clearWarnings

          public void clearWarnings()
                             throws java.sql.SQLException

      Clears all warnings reported on this `ResultSet` object. After this method is called, the method `getWarnings` returns `null` until a new warning is reported for this `ResultSet` object.

      HSQLDB-Specific Information:

      HSQLDB does not produce `SQLWarning` objects on any ResultSet object warning chain; calls to this method are ignored.
      Specified by:
        `clearWarnings` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set

    - #### getCursorName

          public java.lang.String getCursorName()
                                         throws java.sql.SQLException

      Retrieves the name of the SQL cursor used by this `ResultSet` object.

      In SQL, a result table is retrieved through a cursor that is named. The current row of a result set can be updated or deleted using a positioned update/delete statement that references the cursor name. To ensure that the cursor has the proper isolation level to support update, the cursor's `SELECT` statement should be of the form `SELECT FOR UPDATE`. If `FOR UPDATE` is omitted, the positioned updates may fail.

      The JDBC API supports this SQL feature by providing the name of the SQL cursor used by a `ResultSet` object. The current row of a `ResultSet` object is also the current row of this SQL cursor.

      HSQLDB-Specific Information:

      HSQLDB supports this feature when the cursor has a name.
      Specified by:
        `getCursorName` in interface `java.sql.ResultSet`
      Returns:
        the SQL name for this `ResultSet` object's cursor
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method

    - #### getMetaData

          public java.sql.ResultSetMetaData getMetaData()
                                                 throws java.sql.SQLException

      Retrieves the number, types and properties of this `ResultSet` object's columns.

      HSQLDB-Specific Information:

      Example:

      The following code fragment creates a `ResultSet` object rs, creates a `ResultSetMetaData` object rsmd, and uses rsmd to find out how many columns rs has and whether the first column in rs can be used in a `WHERE` clause.

           ResultSet rs   = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
           ResultSetMetaData rsmd = rs.getMetaData();

           int numberOfColumns = rsmd.getColumnCount();

           boolean b = rsmd.isSearchable(1);

      Changes:

      With version 2.0, the engine's SQL implementation has been completely rewritten. Changes to this class and the implementation of ResultSetMetaData reflect the engine's new capabilities and provide more accurate information.

      changes to consider:

      1. isAutoIncrement(int) always returned `false`
      2. isNullable(int) returns the nullability of a real table or view column in the ResultSet and returns `columnNoNulls` for non-base-column ResultSet columns (columns of the ResultSet that are based on expressions or aggregates).
      3. getColumnDisplaySize(int) returns correct results even for expression columns.
      4. getPrecision(int) returns the correct precision even for expression columns.
      5. getScale(int) returns the correct precision even for expression columns.
      6. getCatalogName(int) returns the catalog name of the database.

      Specified by:
        `getMetaData` in interface `java.sql.ResultSet`
      Returns:
        the description of this `ResultSet` object's columns
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set

    - #### getObject

          public java.lang.Object getObject​(int columnIndex)
                                     throws java.sql.SQLException

      Gets the value of the designated column in the current row of this `ResultSet` object as an `Object` in the Java programming language.

      This method will return the value of the given column as a Java object. The type of the Java object will be the default Java object type corresponding to the column's SQL type, following the mapping for built-in types specified in the JDBC specification. If the value is an SQL `NULL`, the driver returns a Java `null`.

      This method may also be used to read database-specific abstract data types. In the JDBC 2.0 API, the behavior of method `getObject` is extended to materialize data of SQL user-defined types.

      If `Connection.getTypeMap` does not throw a `SQLFeatureNotSupportedException`, then when a column contains a structured or distinct value, the behavior of this method is as if it were a call to: `getObject(columnIndex, this.getStatement().getConnection().getTypeMap())`. If `Connection.getTypeMap` does throw a `SQLFeatureNotSupportedException`, then structured values are not supported, and distinct values are mapped to the default Java class as determined by the underlying SQL type of the DISTINCT type.

      Specified by:
        `getObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a `java.lang.Object` holding the column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

    - #### getObject

          public java.lang.Object getObject​(java.lang.String columnLabel)
                                     throws java.sql.SQLException

      Gets the value of the designated column in the current row of this `ResultSet` object as an `Object` in the Java programming language.

      This method will return the value of the given column as a Java object. The type of the Java object will be the default Java object type corresponding to the column's SQL type, following the mapping for built-in types specified in the JDBC specification. If the value is an SQL `NULL`, the driver returns a Java `null`.

      This method may also be used to read database-specific abstract data types.

      In the JDBC 2.0 API, the behavior of the method `getObject` is extended to materialize data of SQL user-defined types. When a column contains a structured or distinct value, the behavior of this method is as if it were a call to: `getObject(columnIndex, this.getStatement().getConnection().getTypeMap())`.

      Specified by:
        `getObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a `java.lang.Object` holding the column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

    - #### findColumn

          public int findColumn​(java.lang.String columnLabel)
                         throws java.sql.SQLException

      Maps the given `ResultSet` column label to its `ResultSet` column index.

      HSQLDB-Specific Information:

      Starting with 1.9.x, HSQLDB does an exhaustive search, backed by a cache lookup (to improve performance for subsequent invocations with a given input).

      Upon careful investigation of the JDBC specification and the behaviour of existing JDBC drivers, there is actually nothing preventing the findColumn method from doing an exhaustive search, as long as it conforms to the following rules (which describe the new implementation):

      1. the entire search is case insensitive
      2. each search iteration occurs from leftmost to rightmost column, returning the first match encountered
      3. the first pass matches only bare column labels
      4. the second pass matches only simple column names
      5. further passes conform to the identifier qualification and identifier quoting rules of the engine
      In this implementation, the SQL tokenizer is not employed, both because it does not yet correctly handle greater than two part qualification and also because is is not immediately considered important to do a truly exhaustive search, handling the full range of possibly mixed quoted and unquoted identifier components.

      Instead:

      - a third pass matches simple table-dot-column qualified names
      - a fourth pass matches simple schema-dot-table-dot-column qualified column names
      Specified by:
        `findColumn` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column index of the given column name
      Throws:
        `java.sql.SQLException` - if the `ResultSet` object does not contain a column labeled `columnLabel`, a database access error occurs or this method is called on a closed result set

    - #### getCharacterStream

          public java.io.Reader getCharacterStream​(int columnIndex)
                                            throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.io.Reader` object.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `getCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a `java.io.Reader` object that contains the column value; if the value is SQL `NULL`, the value returned is `null` in the Java programming language.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getCharacterStream

          public java.io.Reader getCharacterStream​(java.lang.String columnLabel)
                                            throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.io.Reader` object.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `getCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a `java.io.Reader` object that contains the column value; if the value is SQL `NULL`, the value returned is `null` in the Java programming language
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getBigDecimal

          public java.math.BigDecimal getBigDecimal​(int columnIndex)
                                             throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.math.BigDecimal` with full precision.
      Specified by:
        `getBigDecimal` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value (full precision); if the value is SQL `NULL`, the value returned is `null` in the Java programming language.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getBigDecimal

          public java.math.BigDecimal getBigDecimal​(java.lang.String columnLabel)
                                             throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.math.BigDecimal` with full precision.
      Specified by:
        `getBigDecimal` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value (full precision); if the value is SQL `NULL`, the value returned is `null` in the Java programming language.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### isBeforeFirst

          public boolean isBeforeFirst()
                                throws java.sql.SQLException

      Retrieves whether the cursor is before the first row in this `ResultSet` object.

      Note:Support for the `isBeforeFirst` method is optional for `ResultSet`s with a result set type of `TYPE_FORWARD_ONLY`

      Specified by:
        `isBeforeFirst` in interface `java.sql.ResultSet`
      Returns:
        `true` if the cursor is before the first row; `false` if the cursor is at any other position or the result set contains no rows
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### isAfterLast

          public boolean isAfterLast()
                              throws java.sql.SQLException

      Retrieves whether the cursor is after the last row in this `ResultSet` object.

      Note:Support for the `isAfterLast` method is optional for `ResultSet`s with a result set type of `TYPE_FORWARD_ONLY`

      Specified by:
        `isAfterLast` in interface `java.sql.ResultSet`
      Returns:
        `true` if the cursor is after the last row; `false` if the cursor is at any other position or the result set contains no rows
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### isFirst

          public boolean isFirst()
                          throws java.sql.SQLException

      Retrieves whether the cursor is on the first row of this `ResultSet` object.

      Note:Support for the `isFirst` method is optional for `ResultSet`s with a result set type of `TYPE_FORWARD_ONLY`

      Specified by:
        `isFirst` in interface `java.sql.ResultSet`
      Returns:
        `true` if the cursor is on the first row; `false` otherwise
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### isLast

          public boolean isLast()
                         throws java.sql.SQLException

      Retrieves whether the cursor is on the last row of this `ResultSet` object. Note: Calling the method `isLast` may be expensive because the JDBC driver might need to fetch ahead one row in order to determine whether the current row is the last row in the result set.

      Note: Support for the `isLast` method is optional for `ResultSet`s with a result set type of `TYPE_FORWARD_ONLY`

      Specified by:
        `isLast` in interface `java.sql.ResultSet`
      Returns:
        `true` if the cursor is on the last row; `false` otherwise
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### beforeFirst

          public void beforeFirst()
                           throws java.sql.SQLException

      Moves the cursor to the front of this `ResultSet` object, just before the first row. This method has no effect if the result set contains no rows.
      Specified by:
        `beforeFirst` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the result set type is `TYPE_FORWARD_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### afterLast

          public void afterLast()
                         throws java.sql.SQLException

      Moves the cursor to the end of this `ResultSet` object, just after the last row. This method has no effect if the result set contains no rows.
      Specified by:
        `afterLast` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the result set type is `TYPE_FORWARD_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### first

          public boolean first()
                        throws java.sql.SQLException

      Moves the cursor to the first row in this `ResultSet` object.
      Specified by:
        `first` in interface `java.sql.ResultSet`
      Returns:
        `true` if the cursor is on a valid row; `false` if there are no rows in the result set
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the result set type is `TYPE_FORWARD_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### last

          public boolean last()
                       throws java.sql.SQLException

      Moves the cursor to the last row in this `ResultSet` object.
      Specified by:
        `last` in interface `java.sql.ResultSet`
      Returns:
        `true` if the cursor is on a valid row; `false` if there are no rows in the result set
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the result set type is `TYPE_FORWARD_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getRow

          public int getRow()
                     throws java.sql.SQLException

      Retrieves the current row number. The first row is number 1, the second number 2, and so on.

      Note:Support for the `getRow` method is optional for `ResultSet`s with a result set type of `TYPE_FORWARD_ONLY`

      Specified by:
        `getRow` in interface `java.sql.ResultSet`
      Returns:
        the current row number; `0` if there is no current row
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### absolute

          public boolean absolute​(int row)
                           throws java.sql.SQLException

      Moves the cursor to the given row number in this `ResultSet` object.

      If the row number is positive, the cursor moves to the given row number with respect to the beginning of the result set. The first row is row 1, the second is row 2, and so on.

      If the given row number is negative, the cursor moves to an absolute row position with respect to the end of the result set. For example, calling the method `absolute(-1)` positions the cursor on the last row; calling the method `absolute(-2)` moves the cursor to the next-to-last row, and so on.

      If the row number specified is zero, the cursor is moved to before the first row.

      An attempt to position the cursor beyond the first/last row in the result set leaves the cursor before the first row or after the last row.

      Note: Calling `absolute(1)` is the same as calling `first()`. Calling `absolute(-1)` is the same as calling `last()`.

      Specified by:
        `absolute` in interface `java.sql.ResultSet`
      Parameters:
        `row` - the number of the row to which the cursor should move. A value of zero indicates that the cursor will be positioned before the first row; a positive number indicates the row number counting from the beginning of the result set; a negative number indicates the row number counting from the end of the result set
      Returns:
        `true` if the cursor is moved to a position in this `ResultSet` object; `false` if the cursor is before the first row or after the last row
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the result set type is `TYPE_FORWARD_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### relative

          public boolean relative​(int rows)
                           throws java.sql.SQLException

      Moves the cursor a relative number of rows, either positive or negative. Attempting to move beyond the first/last row in the result set positions the cursor before/after the first/last row. Calling `relative(0)` is valid, but does not change the cursor position.

      Note: Calling the method `relative(1)` is identical to calling the method `next()` and calling the method `relative(-1)` is identical to calling the method `previous()`.

      Specified by:
        `relative` in interface `java.sql.ResultSet`
      Parameters:
        `rows` - an `int` specifying the number of rows to move from the current row; a positive number moves the cursor forward; a negative number moves the cursor backward
      Returns:
        `true` if the cursor is on a row; `false` otherwise
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the result set type is `TYPE_FORWARD_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### previous

          public boolean previous()
                           throws java.sql.SQLException

      Moves the cursor to the previous row in this `ResultSet` object.

      When a call to the `previous` method returns `false`, the cursor is positioned before the first row. Any invocation of a `ResultSet` method which requires a current row will result in a `SQLException` being thrown.

      If an input stream is open for the current row, a call to the method `previous` will implicitly close it. A `ResultSet` object's warning change is cleared when a new row is read.

      Specified by:
        `previous` in interface `java.sql.ResultSet`
      Returns:
        `true` if the cursor is now positioned on a valid row; `false` if the cursor is positioned before the first row
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the result set type is `TYPE_FORWARD_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### setFetchDirection

          public void setFetchDirection​(int direction)
                                 throws java.sql.SQLException

      Gives a hint as to the direction in which the rows in this `ResultSet` object will be processed. The initial value is determined by the `Statement` object that produced this `ResultSet` object. The fetch direction may be changed at any time.

      HSQLDB-Specific Information:

      HSQLDB does not need this hint. However, as mandated by the JDBC standard, an SQLException is thrown if the result set type is TYPE_FORWARD_ONLY and a fetch direction other than FETCH_FORWARD is requested.
      Specified by:
        `setFetchDirection` in interface `java.sql.ResultSet`
      Parameters:
        `direction` - an `int` specifying the suggested fetch direction; one of `ResultSet.FETCH_FORWARD`, `ResultSet.FETCH_REVERSE`, or `ResultSet.FETCH_UNKNOWN`
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the result set type is `TYPE_FORWARD_ONLY` and the fetch direction is not `FETCH_FORWARD`
      Since:
        JDK 1.2
      See Also:
        `JDBCStatement.setFetchDirection(int)`, `getFetchDirection()`

    - #### getFetchDirection

          public int getFetchDirection()
                                throws java.sql.SQLException

      Retrieves the fetch direction for this `ResultSet` object.

      HSQLDB-Specific Information:

      HSQLDB does not depend on fetch direction and always returns `FETCH_FORWARD`, but the value has no real meaning.
      Specified by:
        `getFetchDirection` in interface `java.sql.ResultSet`
      Returns:
        the current fetch direction for this `ResultSet` object
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2
      See Also:
        `setFetchDirection(int)`

    - #### setFetchSize

          public void setFetchSize​(int rows)
                            throws java.sql.SQLException

      Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this `ResultSet` object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. The default value is set by the `Statement` object that created the result set. The fetch size may be changed at any time.

      HSQLDB-Specific Information:

      HSQLDB may not build and return a result set as a whole. Therefore the supplied, non-zero, fetch size value is used for some ResultSet objects.
      Specified by:
        `setFetchSize` in interface `java.sql.ResultSet`
      Parameters:
        `rows` - the number of rows to fetch
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the condition `rows >= 0` is not satisfied
      Since:
        JDK 1.2
      See Also:
        `getFetchSize()`, `JDBCStatement.setFetchSize(int)`, `JDBCStatement.getFetchSize()`

    - #### getFetchSize

          public int getFetchSize()
                           throws java.sql.SQLException

      Retrieves the fetch size for this `ResultSet` object.

      HSQLDB-Specific Information:

      HSQLDB may not build and return a result set as a whole. The actual fetch size for this result set is returned.
      Specified by:
        `getFetchSize` in interface `java.sql.ResultSet`
      Returns:
        the current fetch size for this `ResultSet` object
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2
      See Also:
        `setFetchSize(int)`, `JDBCStatement.getFetchSize()`, `JDBCStatement.setFetchSize(int)`

    - #### getType

          public int getType()
                      throws java.sql.SQLException

      Retrieves the type of this `ResultSet` object. The type is determined by the `Statement` object that created the result set.

      HSQLDB-Specific Information:

      HSQLDB accurately reports the actual runtime scrollability of this result set instance.
      Specified by:
        `getType` in interface `java.sql.ResultSet`
      Returns:
        `ResultSet.TYPE_FORWARD_ONLY`, `ResultSet.TYPE_SCROLL_INSENSITIVE`, or `ResultSet.TYPE_SCROLL_SENSITIVE`
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getConcurrency

          public int getConcurrency()
                             throws java.sql.SQLException

      Retrieves the concurrency mode of this `ResultSet` object. The concurrency used is determined by the `Statement` object that created the result set.

      HSQLDB-Specific Information:

      HSQLDB supports updatable result sets and accurately reports the actual runtime concurrency of this result set instance.
      Specified by:
        `getConcurrency` in interface `java.sql.ResultSet`
      Returns:
        the concurrency type, either `ResultSet.CONCUR_READ_ONLY` or `ResultSet.CONCUR_UPDATABLE`
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### rowUpdated

          public boolean rowUpdated()
                             throws java.sql.SQLException

      Retrieves whether the current row has been updated. The value returned depends on whether or not the result set can detect updates.

      Note: Support for the `rowUpdated` method is optional with a result set concurrency of `CONCUR_READ_ONLY`

      HSQLDB-Specific Information:

      HSQLDB supports updatable result sets and accurately reports the actual value.
      Specified by:
        `rowUpdated` in interface `java.sql.ResultSet`
      Returns:
        `true` if the current row is detected to have been visibly updated by the owner or another; `false` otherwise
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2
      See Also:
        `JDBCDatabaseMetaData.updatesAreDetected(int)`

    - #### rowInserted

          public boolean rowInserted()
                              throws java.sql.SQLException

      Retrieves whether the current row has had an insertion. The value returned depends on whether or not this `ResultSet` object can detect visible inserts.

      Note: Support for the `rowInserted` method is optional with a result set concurrency of `CONCUR_READ_ONLY`

      HSQLDB-Specific Information:

      HSQLDB always returns false as it does not add inserted rows to the original result set.
      Specified by:
        `rowInserted` in interface `java.sql.ResultSet`
      Returns:
        `true` if the current row is detected to have been inserted; `false` otherwise
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2
      See Also:
        `JDBCDatabaseMetaData.insertsAreDetected(int)`

    - #### rowDeleted

          public boolean rowDeleted()
                             throws java.sql.SQLException

      Retrieves whether a row has been deleted. A deleted row may leave a visible "hole" in a result set. This method can be used to detect holes in a result set. The value returned depends on whether or not this `ResultSet` object can detect deletions.

      Note: Support for the `rowDeleted` method is optional with a result set concurrency of `CONCUR_READ_ONLY`

      HSQLDB-Specific Information:

      HSQLDB supports updatable result sets and accurately reports the actual value.
      Specified by:
        `rowDeleted` in interface `java.sql.ResultSet`
      Returns:
        `true` if the current row is detected to have been deleted by the owner or another; `false` otherwise
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2
      See Also:
        `JDBCDatabaseMetaData.deletesAreDetected(int)`

    - #### updateNull

          public void updateNull​(int columnIndex)
                          throws java.sql.SQLException

      Updates the designated column with a `null` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateNull` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateBoolean

          public void updateBoolean​(int columnIndex,
                                    boolean x)
                             throws java.sql.SQLException

      Updates the designated column with a `boolean` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateBoolean` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateByte

          public void updateByte​(int columnIndex,
                                 byte x)
                          throws java.sql.SQLException

      Updates the designated column with a `byte` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateByte` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateShort

          public void updateShort​(int columnIndex,
                                  short x)
                           throws java.sql.SQLException

      Updates the designated column with a `short` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateShort` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateInt

          public void updateInt​(int columnIndex,
                                int x)
                         throws java.sql.SQLException

      Updates the designated column with an `int` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateInt` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateLong

          public void updateLong​(int columnIndex,
                                 long x)
                          throws java.sql.SQLException

      Updates the designated column with a `long` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateLong` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateFloat

          public void updateFloat​(int columnIndex,
                                  float x)
                           throws java.sql.SQLException

      Updates the designated column with a `float` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateFloat` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateDouble

          public void updateDouble​(int columnIndex,
                                   double x)
                            throws java.sql.SQLException

      Updates the designated column with a `double` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateDouble` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateBigDecimal

          public void updateBigDecimal​(int columnIndex,
                                       java.math.BigDecimal x)
                                throws java.sql.SQLException

      Updates the designated column with a `java.math.BigDecimal` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateBigDecimal` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateString

          public void updateString​(int columnIndex,
                                   java.lang.String x)
                            throws java.sql.SQLException

      Updates the designated column with a `String` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateString` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateBytes

          public void updateBytes​(int columnIndex,
                                  byte[] x)
                           throws java.sql.SQLException

      Updates the designated column with a `byte` array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateBytes` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateDate

          public void updateDate​(int columnIndex,
                                 java.sql.Date x)
                          throws java.sql.SQLException

      Updates the designated column with a `java.sql.Date` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateDate` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateTime

          public void updateTime​(int columnIndex,
                                 java.sql.Time x)
                          throws java.sql.SQLException

      Updates the designated column with a `java.sql.Time` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateTime` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateTimestamp

          public void updateTimestamp​(int columnIndex,
                                      java.sql.Timestamp x)
                               throws java.sql.SQLException

      Updates the designated column with a `java.sql.Timestamp` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateTimestamp` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateAsciiStream

          public void updateAsciiStream​(int columnIndex,
                                        java.io.InputStream x,
                                        int length)
                                 throws java.sql.SQLException

      Updates the designated column with an ascii stream value, which will have the specified number of bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateAsciiStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateBinaryStream

          public void updateBinaryStream​(int columnIndex,
                                         java.io.InputStream x,
                                         int length)
                                  throws java.sql.SQLException

      Updates the designated column with a binary stream value, which will have the specified number of bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateBinaryStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateCharacterStream

          public void updateCharacterStream​(int columnIndex,
                                            java.io.Reader x,
                                            int length)
                                     throws java.sql.SQLException

      Updates the designated column with a character stream value, which will have the specified number of (CHECKME: characters?) bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateObject

          public void updateObject​(int columnIndex,
                                   java.lang.Object x,
                                   int scaleOrLength)
                            throws java.sql.SQLException

      Updates the designated column with an `Object` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      If the second argument is an `InputStream` then the stream must contain the number of bytes specified by scaleOrLength. If the second argument is a `Reader` then the reader must contain the number of characters specified by scaleOrLength. If these conditions are not true the driver will generate a `SQLException` when the statement is executed.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `scaleOrLength` - for an object of `java.math.BigDecimal` , this is the number of digits after the decimal point. For Java Object types `InputStream` and `Reader`, this is the length of the data in the stream or reader. For all other types, this value will be ignored.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateObject

          public void updateObject​(int columnIndex,
                                   java.lang.Object x)
                            throws java.sql.SQLException

      Updates the designated column with an `Object` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateNull

          public void updateNull​(java.lang.String columnLabel)
                          throws java.sql.SQLException

      Updates the designated column with a `null` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateNull` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateBoolean

          public void updateBoolean​(java.lang.String columnLabel,
                                    boolean x)
                             throws java.sql.SQLException

      Updates the designated column with a `boolean` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateBoolean` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateByte

          public void updateByte​(java.lang.String columnLabel,
                                 byte x)
                          throws java.sql.SQLException

      Updates the designated column with a `byte` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateByte` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateShort

          public void updateShort​(java.lang.String columnLabel,
                                  short x)
                           throws java.sql.SQLException

      Updates the designated column with a `short` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateShort` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateInt

          public void updateInt​(java.lang.String columnLabel,
                                int x)
                         throws java.sql.SQLException

      Updates the designated column with an `int` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateInt` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateLong

          public void updateLong​(java.lang.String columnLabel,
                                 long x)
                          throws java.sql.SQLException

      Updates the designated column with a `long` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateLong` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateFloat

          public void updateFloat​(java.lang.String columnLabel,
                                  float x)
                           throws java.sql.SQLException

      Updates the designated column with a `float` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateFloat` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateDouble

          public void updateDouble​(java.lang.String columnLabel,
                                   double x)
                            throws java.sql.SQLException

      Updates the designated column with a `double` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateDouble` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateBigDecimal

          public void updateBigDecimal​(java.lang.String columnLabel,
                                       java.math.BigDecimal x)
                                throws java.sql.SQLException

      Updates the designated column with a `java.sql.BigDecimal` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateBigDecimal` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateString

          public void updateString​(java.lang.String columnLabel,
                                   java.lang.String x)
                            throws java.sql.SQLException

      Updates the designated column with a `String` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateString` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateBytes

          public void updateBytes​(java.lang.String columnLabel,
                                  byte[] x)
                           throws java.sql.SQLException

      Updates the designated column with a byte array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateBytes` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateDate

          public void updateDate​(java.lang.String columnLabel,
                                 java.sql.Date x)
                          throws java.sql.SQLException

      Updates the designated column with a `java.sql.Date` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateDate` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateTime

          public void updateTime​(java.lang.String columnLabel,
                                 java.sql.Time x)
                          throws java.sql.SQLException

      Updates the designated column with a `java.sql.Time` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateTime` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateTimestamp

          public void updateTimestamp​(java.lang.String columnLabel,
                                      java.sql.Timestamp x)
                               throws java.sql.SQLException

      Updates the designated column with a `java.sql.Timestamp` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateTimestamp` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateAsciiStream

          public void updateAsciiStream​(java.lang.String columnLabel,
                                        java.io.InputStream x,
                                        int length)
                                 throws java.sql.SQLException

      Updates the designated column with an ascii stream value, which will have the specified number of bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateAsciiStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateBinaryStream

          public void updateBinaryStream​(java.lang.String columnLabel,
                                         java.io.InputStream x,
                                         int length)
                                  throws java.sql.SQLException

      Updates the designated column with a binary stream value, which will have the specified number of bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateBinaryStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateCharacterStream

          public void updateCharacterStream​(java.lang.String columnLabel,
                                            java.io.Reader reader,
                                            int length)
                                     throws java.sql.SQLException

      Updates the designated column with a character stream value, which will have the specified number of (CHECKME: characters?) bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `reader` - the `java.io.Reader` object containing the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateObject

          public void updateObject​(java.lang.String columnLabel,
                                   java.lang.Object x,
                                   int scaleOrLength)
                            throws java.sql.SQLException

      Updates the designated column with an `Object` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      If the second argument is an `InputStream` then the stream must contain the number of bytes specified by scaleOrLength. If the second argument is a `Reader` then the reader must contain the number of characters specified by scaleOrLength. If these conditions are not true the driver will generate a `SQLException` when the statement is executed.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
        `scaleOrLength` - for an object of `java.math.BigDecimal` , this is the number of digits after the decimal point. For Java Object types `InputStream` and `Reader`, this is the length of the data in the stream or reader. For all other types, this value will be ignored.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateObject

          public void updateObject​(java.lang.String columnLabel,
                                   java.lang.Object x)
                            throws java.sql.SQLException

      Updates the designated column with an `Object` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### insertRow

          public void insertRow()
                         throws java.sql.SQLException

      Inserts the contents of the insert row into this `ResultSet` object and into the database. The cursor must be on the insert row when this method is called.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `insertRow` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY`, this method is called on a closed result set, if this method is called when the cursor is not on the insert row, or if not all of non-nullable columns in the insert row have been given a non-null value
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### updateRow

          public void updateRow()
                         throws java.sql.SQLException

      Updates the underlying database with the new contents of the current row of this `ResultSet` object. This method cannot be called when the cursor is on the insert row.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.

      After updating any values in the current row, it is not possible to move the cursor position without calling this method, or alternatively calling cancelRowUpdates() to abandon the row update.

      After calling this method, the `getXXX` methods return the updated values for the updated row.

      Specified by:
        `updateRow` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY`; this method is called on a closed result set or if this method is called when the cursor is on the insert row
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### deleteRow

          public void deleteRow()
                         throws java.sql.SQLException

      Deletes the current row from this `ResultSet` object and from the underlying database. This method cannot be called when the cursor is on the insert row.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.

      After a successful call to this method, the row is deleted. All column values returned by `getXXX` methods are null for a row that has been deleted.

      Specified by:
        `deleteRow` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY`; this method is called on a closed result set or if this method is called when the cursor is on the insert row
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### refreshRow

          public void refreshRow()
                          throws java.sql.SQLException

      Refreshes the current row with its most recent value in the database. This method cannot be called when the cursor is on the insert row.

      The `refreshRow` method provides a way for an application to explicitly tell the JDBC driver to refetch a row(s) from the database. An application may want to call `refreshRow` when caching or prefetching is being done by the JDBC driver to fetch the latest value of a row from the database. The JDBC driver may actually refresh multiple rows at once if the fetch size is greater than one.

      All values are refetched subject to the transaction isolation level and cursor sensitivity. If `refreshRow` is called after calling an updater method, but before calling the method `updateRow`, then the updates made to the row are lost. Calling the method `refreshRow` frequently will likely slow performance.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `refreshRow` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set; the result set type is `TYPE_FORWARD_ONLY` or if this method is called when the cursor is on the insert row
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method or this method is not supported for the specified result set type and result set concurrency.
      Since:
        JDK 1.2

    - #### cancelRowUpdates

          public void cancelRowUpdates()
                                throws java.sql.SQLException

      Cancels the updates made to the current row in this `ResultSet` object. This method may be called after calling an updater method(s) and before calling the method `updateRow` to roll back the updates made to a row. If no updates have been made or `updateRow` has already been called, this method has no effect.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `cancelRowUpdates` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set; the result set concurrency is `CONCUR_READ_ONLY` or if this method is called when the cursor is on the insert row
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### moveToInsertRow

          public void moveToInsertRow()
                               throws java.sql.SQLException

      Moves the cursor to the insert row. The current cursor position is remembered while the cursor is positioned on the insert row. The insert row is a special row associated with an updatable result set. It is essentially a buffer where a new row may be constructed by calling the updater methods prior to inserting the row into the result set. Only the updater, getter, and `insertRow` methods may be called when the cursor is on the insert row. All of the columns in a result set must be given a value each time this method is called before calling `insertRow`. An updater method must be called before a getter method can be called on a column value.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `moveToInsertRow` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the result set concurrency is `CONCUR_READ_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### moveToCurrentRow

          public void moveToCurrentRow()
                                throws java.sql.SQLException

      Moves the cursor to the remembered cursor position, usually the current row. This method has no effect if the cursor is not on the insert row.

      HSQLDB-Specific Information:

      HSQLDB supports this feature.
      Specified by:
        `moveToCurrentRow` in interface `java.sql.ResultSet`
      Throws:
        `java.sql.SQLException` - if a database access error occurs; this method is called on a closed result set or the result set concurrency is `CONCUR_READ_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getStatement

          public java.sql.Statement getStatement()
                                          throws java.sql.SQLException

      Retrieves the `Statement` object that produced this `ResultSet` object. If the result set was generated some other way, such as by a `DatabaseMetaData` method, this method may return `null`.
      Specified by:
        `getStatement` in interface `java.sql.ResultSet`
      Returns:
        the `Statement` object that produced this `ResultSet` object or `null` if the result set was produced some other way
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getObject

          public java.lang.Object getObject​(int columnIndex,
                                            java.util.Map map)
                                     throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as an `Object` in the Java programming language. If the value is an SQL `NULL`, the driver returns a Java `null`. This method uses the given `Map` object for the custom mapping of the SQL structured or distinct type that is being retrieved.

      HSQLDB-Specific Information:

      HSQLDB supports this feature, but ignores the map.
      Specified by:
        `getObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `map` - a `java.util.Map` object that contains the mapping from SQL type names to classes in the Java programming language
      Returns:
        an `Object` in the Java programming language representing the SQL value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getRef

          public java.sql.Ref getRef​(int columnIndex)
                              throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Ref` object in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB does not support this feature; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `getRef` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a `Ref` object representing an SQL `REF` value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getBlob

          public java.sql.Blob getBlob​(int columnIndex)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Blob` object in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB 2.0 supports this feature for objects of type BLOB and BINARY. The Blob returned for BINARY objects is a memory object. The Blob return for BLOB objects is not held entirely in memory. Its contents are fetched from the database when its getXXX() methods are called.
      Specified by:
        `getBlob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a `Blob` object representing the SQL `BLOB` value in the specified column
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getClob

          public java.sql.Clob getClob​(int columnIndex)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Clob` object in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB 2.0 supports this feature for objects of type CLOB and the variations of CHAR. The Clob returned for CHAR objects is a memory object. The Clob return for CLOB objects is not held entirely in memory. Its contents are fetched from the database when its getXXX() methods are called.
      Specified by:
        `getClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a `Clob` object representing the SQL `CLOB` value in the specified column
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getArray

          public java.sql.Array getArray​(int columnIndex)
                                  throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as an `Array` object in the Java programming language.

      HSQLDB-Specific Information:

      From version 2.0, HSQLDB supports array types.
      Specified by:
        `getArray` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        an `Array` object representing the SQL `ARRAY` value in the specified column
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getObject

          public java.lang.Object getObject​(java.lang.String columnLabel,
                                            java.util.Map map)
                                     throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as an `Object` in the Java programming language. If the value is an SQL `NULL`, the driver returns a Java `null`. This method uses the specified `Map` object for custom mapping if appropriate.

      HSQLDB-Specific Information:

      HSQLDB supports this feature. But the Map parameter is ignored.
      Specified by:
        `getObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `map` - a `java.util.Map` object that contains the mapping from SQL type names to classes in the Java programming language
      Returns:
        an `Object` representing the SQL value in the specified column
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getRef

          public java.sql.Ref getRef​(java.lang.String columnLabel)
                              throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Ref` object in the Java programming language.

      HSQLDB-Specific Information:

      Including 2.0, HSQLDB does not support reference types; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `getRef` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a `Ref` object representing the SQL `REF` value in the specified column
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getBlob

          public java.sql.Blob getBlob​(java.lang.String columnLabel)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Blob` object in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB 2.0 supports this feature for objects of type BLOB and BINARY. The Blob returned for BINARY objects is a memory object. The Blob return for BLOB objects is not held entirely in memory. Its contents are fetched from the database when its getXXX() methods are called.
      Specified by:
        `getBlob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a `Blob` object representing the SQL `BLOB` value in the specified column
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getClob

          public java.sql.Clob getClob​(java.lang.String columnLabel)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `Clob` object in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB 2.0 supports this feature for objects of type CLOB and the variations of CHAR. The Clob returned for CHAR objects is a memory object. The Clob return for CLOB objects is not held entirely in memory. Its contents are fetched from the database when its getXXX() methods are called.
      Specified by:
        `getClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a `Clob` object representing the SQL `CLOB` value in the specified column
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getArray

          public java.sql.Array getArray​(java.lang.String columnLabel)
                                  throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as an `Array` object in the Java programming language.

      HSQLDB-Specific Information:

      From version 2.0, HSQLDB supports array types.
      Specified by:
        `getArray` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        an `Array` object representing the SQL `ARRAY` value in the specified column
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.2

    - #### getDate

          public java.sql.Date getDate​(int columnIndex,
                                       java.util.Calendar cal)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Date` object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the date if the underlying database does not store timezone information.
      Specified by:
        `getDate` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `cal` - the `java.util.Calendar` object to use in constructing the date
      Returns:
        the column value as a `java.sql.Date` object; if the value is SQL `NULL`, the value returned is `null` in the Java programming language
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getDate

          public java.sql.Date getDate​(java.lang.String columnLabel,
                                       java.util.Calendar cal)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Date` object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the date if the underlying database does not store timezone information.
      Specified by:
        `getDate` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `cal` - the `java.util.Calendar` object to use in constructing the date
      Returns:
        the column value as a `java.sql.Date` object; if the value is SQL `NULL`, the value returned is `null` in the Java programming language
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getTime

          public java.sql.Time getTime​(int columnIndex,
                                       java.util.Calendar cal)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Time` object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the time if the underlying database does not store timezone information.

      HSQLDB-Specific Information:

      The JDBC specification for this method is vague. HSQLDB interprets the specification as follows:
      1. If the SQL type of the column is WITH TIME ZONE, then the UTC value of the returned java.sql.Time object is the UTC of the SQL value without modification. In other words, the Calendar object is not used.
      2. If the SQL type of the column is WITHOUT TIME ZONE, then the UTC value of the returned java.sql.Time is correct for the given Calendar's time zone.
      3. If the cal argument is null, it it ignored and the method returns the same Object as the method without the Calendar parameter.
      Specified by:
        `getTime` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `cal` - the `java.util.Calendar` object to use in constructing the time
      Returns:
        the column value as a `java.sql.Time` object; if the value is SQL `NULL`, the value returned is `null` in the Java programming language
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getTime

          public java.sql.Time getTime​(java.lang.String columnLabel,
                                       java.util.Calendar cal)
                                throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Time` object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the time if the underlying database does not store timezone information.

      HSQLDB-Specific Information:

      The JDBC specification for this method is vague. HSQLDB interprets the specification as follows:
      1. If the SQL type of the column is WITH TIME ZONE, then the UTC value of the returned java.sql.Time object is the UTC of the SQL value without modification. In other words, the Calendar object is not used.
      2. If the SQL type of the column is WITHOUT TIME ZONE, then the UTC value of the returned java.sql.Time will represent the correct time for the time zone (including daylight saving time) of the given Calendar.
      3. If the cal argument is null, it it ignored and the method returns the same Object as the method without the Calendar parameter.
      Specified by:
        `getTime` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `cal` - the `java.util.Calendar` object to use in constructing the time
      Returns:
        the column value as a `java.sql.Time` object; if the value is SQL `NULL`, the value returned is `null` in the Java programming language
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp​(int columnIndex,
                                                 java.util.Calendar cal)
                                          throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Timestamp` object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the timestamp if the underlying database does not store timezone information.

      HSQLDB-Specific Information:

      The JDBC specification for this method is vague. HSQLDB interprets the specification as follows:
      1. If the SQL type of the column is WITH TIME ZONE, then the UTC value of the returned java.sql.Timestamp object is the UTC of the SQL value without modification. In other words, the Calendar object is not used.
      2. If the SQL type of the column is WITHOUT TIME ZONE, then the UTC value of the returned java.sql.Timestamp will represent the correct timestamp for the time zone (including daylight saving time) of the given Calendar object.
      3. In this case, if the cal argument is null, then the default Calendar of the JVM is used, which results in the same Object as one returned by the getTimestamp() methods without the Calendar parameter.
      Specified by:
        `getTimestamp` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `cal` - the `java.util.Calendar` object to use in constructing the timestamp
      Returns:
        the column value as a `java.sql.Timestamp` object; if the value is SQL `NULL`, the value returned is `null` in the Java programming language
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp​(java.lang.String columnLabel,
                                                 java.util.Calendar cal)
                                          throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.Timestamp` object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the timestamp if the underlying database does not store timezone information.

      HSQLDB-Specific Information:

      The JDBC specification for this method is vague. HSQLDB interprets the specification as follows:
      1. If the SQL type of the column is WITH TIME ZONE, then the UTC value of the returned java.sql.Timestamp object is the UTC of the SQL value without modification. In other words, the Calendar object is not used.
      2. If the SQL type of the column is WITHOUT TIME ZONE, then the UTC value of the returned java.sql.Timestamp is correct for the given Calendar object.
      3. If the cal argument is null, it it ignored and the method returns the same Object as the method without the Calendar parameter.
      Specified by:
        `getTimestamp` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `cal` - the `java.util.Calendar` object to use in constructing the date
      Returns:
        the column value as a `java.sql.Timestamp` object; if the value is SQL `NULL`, the value returned is `null` in the Java programming language
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid or if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.2

    - #### getURL

          public java.net.URL getURL​(int columnIndex)
                              throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.net.URL` object in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB does not support the datalink type; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `getURL` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the index of the column 1 is the first, 2 is the second,...
      Returns:
        the column value as a `java.net.URL` object; if the value is SQL `NULL`, the value returned is `null` in the Java programming language
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; this method is called on a closed result set or if a URL is malformed
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.4, HSQLDB 1.7.0

    - #### getURL

          public java.net.URL getURL​(java.lang.String columnLabel)
                              throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.net.URL` object in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB does not support the datalink type; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `getURL` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value as a `java.net.URL` object; if the value is SQL `NULL`, the value returned is `null` in the Java programming language
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; this method is called on a closed result set or if a URL is malformed
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.4, HSQLDB 1.7.0

    - #### updateRef

          public void updateRef​(int columnIndex,
                                java.sql.Ref x)
                         throws java.sql.SQLException

      Updates the designated column with a `java.sql.Ref` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB does not support reference types; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `updateRef` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.4, HSQLDB 1.7.0

    - #### updateRef

          public void updateRef​(java.lang.String columnLabel,
                                java.sql.Ref x)
                         throws java.sql.SQLException

      Updates the designated column with a `java.sql.Ref` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB does not support reference types; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `updateRef` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.4, HSQLDB 1.7.0

    - #### updateBlob

          public void updateBlob​(int columnIndex,
                                 java.sql.Blob x)
                          throws java.sql.SQLException

      Updates the designated column with a `java.sql.Blob` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB 2.0 supports this feature for columns of type BLOB.
      Specified by:
        `updateBlob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.4, HSQLDB 1.7.0

    - #### updateBlob

          public void updateBlob​(java.lang.String columnLabel,
                                 java.sql.Blob x)
                          throws java.sql.SQLException

      Updates the designated column with a `java.sql.Blob` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB 2.0 supports this feature for columns of type BLOB.
      Specified by:
        `updateBlob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.4, HSQLDB 1.7.0

    - #### updateClob

          public void updateClob​(int columnIndex,
                                 java.sql.Clob x)
                          throws java.sql.SQLException

      Updates the designated column with a `java.sql.Clob` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB 2.0 supports this feature for columns of type CLOB.
      Specified by:
        `updateClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.4, HSQLDB 1.7.0

    - #### updateClob

          public void updateClob​(java.lang.String columnLabel,
                                 java.sql.Clob x)
                          throws java.sql.SQLException

      Updates the designated column with a `java.sql.Clob` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB 2.0 supports this feature for columns of type CLOB.
      Specified by:
        `updateClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.4, HSQLDB 1.7.0

    - #### updateArray

          public void updateArray​(int columnIndex,
                                  java.sql.Array x)
                           throws java.sql.SQLException

      Updates the designated column with a `java.sql.Array` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB does not support array types; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `updateArray` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.4, HSQLDB 1.7.0

    - #### updateArray

          public void updateArray​(java.lang.String columnLabel,
                                  java.sql.Array x)
                           throws java.sql.SQLException

      Updates the designated column with a `java.sql.Array` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB does not support array types; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `updateArray` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.4, HSQLDB 1.7.0

    - #### getRowId

          public java.sql.RowId getRowId​(int columnIndex)
                                  throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.RowId` object in the Java programming language.
      Specified by:
        `getRowId` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second 2, ...
      Returns:
        the column value; if the value is a SQL `NULL` the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getRowId

          public java.sql.RowId getRowId​(java.lang.String columnLabel)
                                  throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.sql.RowId` object in the Java programming language.

      HSQLDB-Specific Information:

      HSQLDB does not support the RowId type; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `getRowId` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value ; if the value is a SQL `NULL` the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateRowId

          public void updateRowId​(int columnIndex,
                                  java.sql.RowId x)
                           throws java.sql.SQLException

      Updates the designated column with a `RowId` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB does not support the RowId type; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `updateRowId` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second 2, ...
        `x` - the column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateRowId

          public void updateRowId​(java.lang.String columnLabel,
                                  java.sql.RowId x)
                           throws java.sql.SQLException

      Updates the designated column with a `RowId` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      HSQLDB-Specific Information:

      HSQLDB does not support the RowId type; this method always throws an `SQLException` stating that the operation is not supported.
      Specified by:
        `updateRowId` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the column value
      Throws:
        `java.sql.SQLException` - if a database access error occurs, the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getHoldability

          public int getHoldability()
                             throws java.sql.SQLException

      Retrieves the holdability of this `ResultSet` object
      Specified by:
        `getHoldability` in interface `java.sql.ResultSet`
      Returns:
        either `ResultSet.HOLD_CURSORS_OVER_COMMIT` or `ResultSet.CLOSE_CURSORS_AT_COMMIT`
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed result set
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### isClosed

          public boolean isClosed()
                           throws java.sql.SQLException

      Retrieves whether this `ResultSet` object has been closed. A `ResultSet` is closed if the method close has been called on it, or if it is automatically closed.
      Specified by:
        `isClosed` in interface `java.sql.ResultSet`
      Returns:
        true if this `ResultSet` object is closed; false if it is still open
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateNString

          public void updateNString​(int columnIndex,
                                    java.lang.String nString)
                             throws java.sql.SQLException

      Updates the designated column with a `String` value. It is intended for use when updating `NCHAR`,`NVARCHAR` and `LONGNVARCHAR` columns. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.
      Specified by:
        `updateNString` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second 2, ...
        `nString` - the value for the column to be updated
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; the result set concurrency is `CONCUR_READ_ONLY` or if a database access error occurs
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateNString

          public void updateNString​(java.lang.String columnLabel,
                                    java.lang.String nString)
                             throws java.sql.SQLException

      Updates the designated column with a `String` value. It is intended for use when updating `NCHAR`,`NVARCHAR` and `LONGNVARCHAR` columns. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.
      Specified by:
        `updateNString` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `nString` - the value for the column to be updated
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; the result set concurrency is `CONCUR_READ_ONLY` or if a database access error occurs
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateNClob

          public void updateNClob​(int columnIndex,
                                  java.sql.NClob nClob)
                           throws java.sql.SQLException

      Updates the designated column with a `java.sql.NClob` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.
      Specified by:
        `updateNClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second 2, ...
        `nClob` - the value for the column to be updated
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; if a database access error occurs or the result set concurrency is `CONCUR_READ_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateNClob

          public void updateNClob​(java.lang.String columnLabel,
                                  java.sql.NClob nClob)
                           throws java.sql.SQLException

      Updates the designated column with a `java.sql.NClob` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.
      Specified by:
        `updateNClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `nClob` - the value for the column to be updated
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; if a database access error occurs or the result set concurrency is `CONCUR_READ_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getNClob

          public java.sql.NClob getNClob​(int columnIndex)
                                  throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `NClob` object in the Java programming language.
      Specified by:
        `getNClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a `NClob` object representing the SQL `NCLOB` value in the specified column
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set or if a database access error occurs
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getNClob

          public java.sql.NClob getNClob​(java.lang.String columnLabel)
                                  throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `NClob` object in the Java programming language.
      Specified by:
        `getNClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a `NClob` object representing the SQL `NCLOB` value in the specified column
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set or if a database access error occurs
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getSQLXML

          public java.sql.SQLXML getSQLXML​(int columnIndex)
                                    throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` as a `java.sql.SQLXML` object in the Java programming language.
      Specified by:
        `getSQLXML` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a `SQLXML` object that maps an `SQL XML` value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getSQLXML

          public java.sql.SQLXML getSQLXML​(java.lang.String columnLabel)
                                    throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` as a `java.sql.SQLXML` object in the Java programming language.
      Specified by:
        `getSQLXML` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a `SQLXML` object that maps an `SQL XML` value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateSQLXML

          public void updateSQLXML​(int columnIndex,
                                   java.sql.SQLXML xmlObject)
                            throws java.sql.SQLException

      Updates the designated column with a `java.sql.SQLXML` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.
      Specified by:
        `updateSQLXML` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second 2, ...
        `xmlObject` - the value for the column to be updated
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; this method is called on a closed result set; the `java.xml.transform.Result`, `Writer` or `OutputStream` has not been closed for the `SQLXML` object; if there is an error processing the XML value or the result set concurrency is `CONCUR_READ_ONLY`. The `getCause` method of the exception may provide a more detailed exception, for example, if the stream does not contain valid XML.
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateSQLXML

          public void updateSQLXML​(java.lang.String columnLabel,
                                   java.sql.SQLXML xmlObject)
                            throws java.sql.SQLException

      Updates the designated column with a `java.sql.SQLXML` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.
      Specified by:
        `updateSQLXML` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `xmlObject` - the column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; this method is called on a closed result set; the `java.xml.transform.Result`, `Writer` or `OutputStream` has not been closed for the `SQLXML` object; if there is an error processing the XML value or the result set concurrency is `CONCUR_READ_ONLY`. The `getCause` method of the exception may provide a more detailed exception, for example, if the stream does not contain valid XML.
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getNString

          public java.lang.String getNString​(int columnIndex)
                                      throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `String` in the Java programming language. It is intended for use when accessing `NCHAR`,`NVARCHAR` and `LONGNVARCHAR` columns.
      Specified by:
        `getNString` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getNString

          public java.lang.String getNString​(java.lang.String columnLabel)
                                      throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `String` in the Java programming language. It is intended for use when accessing `NCHAR`,`NVARCHAR` and `LONGNVARCHAR` columns.
      Specified by:
        `getNString` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        the column value; if the value is SQL `NULL`, the value returned is `null`
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getNCharacterStream

          public java.io.Reader getNCharacterStream​(int columnIndex)
                                             throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.io.Reader` object. It is intended for use when accessing `NCHAR`,`NVARCHAR` and `LONGNVARCHAR` columns.
      Specified by:
        `getNCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
      Returns:
        a `java.io.Reader` object that contains the column value; if the value is SQL `NULL`, the value returned is `null` in the Java programming language.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getNCharacterStream

          public java.io.Reader getNCharacterStream​(java.lang.String columnLabel)
                                             throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object as a `java.io.Reader` object. It is intended for use when accessing `NCHAR`,`NVARCHAR` and `LONGNVARCHAR` columns.
      Specified by:
        `getNCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
      Returns:
        a `java.io.Reader` object that contains the column value; if the value is SQL `NULL`, the value returned is `null` in the Java programming language
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateNCharacterStream

          public void updateNCharacterStream​(int columnIndex,
                                             java.io.Reader x,
                                             long length)
                                      throws java.sql.SQLException

      Updates the designated column with a character stream value, which will have the specified number of bytes. The driver does the necessary conversion from Java character format to the national character set in the database. It is intended for use when updating `NCHAR`,`NVARCHAR` and `LONGNVARCHAR` columns.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateNCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateNCharacterStream

          public void updateNCharacterStream​(java.lang.String columnLabel,
                                             java.io.Reader reader,
                                             long length)
                                      throws java.sql.SQLException

      Updates the designated column with a character stream value, which will have the specified number of bytes. The driver does the necessary conversion from Java character format to the national character set in the database. It is intended for use when updating `NCHAR`,`NVARCHAR` and `LONGNVARCHAR` columns.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateNCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `reader` - the `java.io.Reader` object containing the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateAsciiStream

          public void updateAsciiStream​(int columnIndex,
                                        java.io.InputStream x,
                                        long length)
                                 throws java.sql.SQLException

      Updates the designated column with an ascii stream value, which will have the specified number of bytes.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateAsciiStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateBinaryStream

          public void updateBinaryStream​(int columnIndex,
                                         java.io.InputStream x,
                                         long length)
                                  throws java.sql.SQLException

      Updates the designated column with a binary stream value, which will have the specified number of bytes.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateBinaryStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateCharacterStream

          public void updateCharacterStream​(int columnIndex,
                                            java.io.Reader x,
                                            long length)
                                     throws java.sql.SQLException

      Updates the designated column with a character stream value, which will have the specified number of bytes.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateAsciiStream

          public void updateAsciiStream​(java.lang.String columnLabel,
                                        java.io.InputStream x,
                                        long length)
                                 throws java.sql.SQLException

      Updates the designated column with an ascii stream value, which will have the specified number of bytes.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateAsciiStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateBinaryStream

          public void updateBinaryStream​(java.lang.String columnLabel,
                                         java.io.InputStream x,
                                         long length)
                                  throws java.sql.SQLException

      Updates the designated column with a binary stream value, which will have the specified number of bytes.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateBinaryStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateCharacterStream

          public void updateCharacterStream​(java.lang.String columnLabel,
                                            java.io.Reader reader,
                                            long length)
                                     throws java.sql.SQLException

      Updates the designated column with a character stream value, which will have the specified number of bytes.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `reader` - the `java.io.Reader` object containing the new column value
        `length` - the length of the stream
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateBlob

          public void updateBlob​(int columnIndex,
                                 java.io.InputStream inputStream,
                                 long length)
                          throws java.sql.SQLException

      Updates the designated column using the given input stream, which will have the specified number of bytes.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateBlob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `inputStream` - An object that contains the data to set the parameter value to.
        `length` - the number of bytes in the parameter data.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateBlob

          public void updateBlob​(java.lang.String columnLabel,
                                 java.io.InputStream inputStream,
                                 long length)
                          throws java.sql.SQLException

      Updates the designated column using the given input stream, which will have the specified number of bytes.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateBlob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `inputStream` - An object that contains the data to set the parameter value to.
        `length` - the number of bytes in the parameter data.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateClob

          public void updateClob​(int columnIndex,
                                 java.io.Reader reader,
                                 long length)
                          throws java.sql.SQLException

      Updates the designated column using the given `Reader` object, which is the given number of characters long. When a very large UNICODE value is input to a `LONGVARCHAR` parameter, it may be more practical to send it via a `java.io.Reader` object. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `reader` - An object that contains the data to set the parameter value to.
        `length` - the number of characters in the parameter data.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateClob

          public void updateClob​(java.lang.String columnLabel,
                                 java.io.Reader reader,
                                 long length)
                          throws java.sql.SQLException

      Updates the designated column using the given `Reader` object, which is the given number of characters long. When a very large UNICODE value is input to a `LONGVARCHAR` parameter, it may be more practical to send it via a `java.io.Reader` object. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `reader` - An object that contains the data to set the parameter value to.
        `length` - the number of characters in the parameter data.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateNClob

          public void updateNClob​(int columnIndex,
                                  java.io.Reader reader,
                                  long length)
                           throws java.sql.SQLException

      Updates the designated column using the given `Reader` object, which is the given number of characters long. When a very large UNICODE value is input to a `LONGVARCHAR` parameter, it may be more practical to send it via a `java.io.Reader` object. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateNClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second 2, ...
        `reader` - An object that contains the data to set the parameter value to.
        `length` - the number of characters in the parameter data.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set, if a database access error occurs or the result set concurrency is `CONCUR_READ_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateNClob

          public void updateNClob​(java.lang.String columnLabel,
                                  java.io.Reader reader,
                                  long length)
                           throws java.sql.SQLException

      Updates the designated column using the given `Reader` object, which is the given number of characters long. When a very large UNICODE value is input to a `LONGVARCHAR` parameter, it may be more practical to send it via a `java.io.Reader` object. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Specified by:
        `updateNClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `reader` - An object that contains the data to set the parameter value to.
        `length` - the number of characters in the parameter data.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; if a database access error occurs or the result set concurrency is `CONCUR_READ_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### updateNCharacterStream

          public void updateNCharacterStream​(int columnIndex,
                                             java.io.Reader reader)
                                      throws java.sql.SQLException

      Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached. The driver does the necessary conversion from Java character format to the national character set in the database. It is intended for use when updating `NCHAR`,`NVARCHAR` and `LONGNVARCHAR` columns.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateNCharacterStream` which takes a length parameter.

      Specified by:
        `updateNCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `reader` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateNCharacterStream

          public void updateNCharacterStream​(java.lang.String columnLabel,
                                             java.io.Reader reader)
                                      throws java.sql.SQLException

      Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached. The driver does the necessary conversion from Java character format to the national character set in the database. It is intended for use when updating `NCHAR`,`NVARCHAR` and `LONGNVARCHAR` columns.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateNCharacterStream` which takes a length parameter.

      Specified by:
        `updateNCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `reader` - the `java.io.Reader` object containing the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateAsciiStream

          public void updateAsciiStream​(int columnIndex,
                                        java.io.InputStream x)
                                 throws java.sql.SQLException

      Updates the designated column with an ascii stream value. The data will be read from the stream as needed until end-of-stream is reached.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateAsciiStream` which takes a length parameter.

      Specified by:
        `updateAsciiStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateBinaryStream

          public void updateBinaryStream​(int columnIndex,
                                         java.io.InputStream x)
                                  throws java.sql.SQLException

      Updates the designated column with a binary stream value. The data will be read from the stream as needed until end-of-stream is reached.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateBinaryStream` which takes a length parameter.

      Specified by:
        `updateBinaryStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateCharacterStream

          public void updateCharacterStream​(int columnIndex,
                                            java.io.Reader x)
                                     throws java.sql.SQLException

      Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateCharacterStream` which takes a length parameter.

      Specified by:
        `updateCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateAsciiStream

          public void updateAsciiStream​(java.lang.String columnLabel,
                                        java.io.InputStream x)
                                 throws java.sql.SQLException

      Updates the designated column with an ascii stream value. The data will be read from the stream as needed until end-of-stream is reached.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateAsciiStream` which takes a length parameter.

      Specified by:
        `updateAsciiStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateBinaryStream

          public void updateBinaryStream​(java.lang.String columnLabel,
                                         java.io.InputStream x)
                                  throws java.sql.SQLException

      Updates the designated column with a binary stream value. The data will be read from the stream as needed until end-of-stream is reached.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateBinaryStream` which takes a length parameter.

      Specified by:
        `updateBinaryStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateCharacterStream

          public void updateCharacterStream​(java.lang.String columnLabel,
                                            java.io.Reader reader)
                                     throws java.sql.SQLException

      Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateCharacterStream` which takes a length parameter.

      Specified by:
        `updateCharacterStream` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `reader` - the `java.io.Reader` object containing the new column value
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateBlob

          public void updateBlob​(int columnIndex,
                                 java.io.InputStream inputStream)
                          throws java.sql.SQLException

      Updates the designated column using the given input stream. The data will be read from the stream as needed until end-of-stream is reached.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateBlob` which takes a length parameter.

      Specified by:
        `updateBlob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `inputStream` - An object that contains the data to set the parameter value to.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateBlob

          public void updateBlob​(java.lang.String columnLabel,
                                 java.io.InputStream inputStream)
                          throws java.sql.SQLException

      Updates the designated column using the given input stream. The data will be read from the stream as needed until end-of-stream is reached.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateBlob` which takes a length parameter.

      Specified by:
        `updateBlob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `inputStream` - An object that contains the data to set the parameter value to.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateClob

          public void updateClob​(int columnIndex,
                                 java.io.Reader reader)
                          throws java.sql.SQLException

      Updates the designated column using the given `Reader` object. The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateClob` which takes a length parameter.

      Specified by:
        `updateClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `reader` - An object that contains the data to set the parameter value to.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateClob

          public void updateClob​(java.lang.String columnLabel,
                                 java.io.Reader reader)
                          throws java.sql.SQLException

      Updates the designated column using the given `Reader` object. The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateClob` which takes a length parameter.

      Specified by:
        `updateClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `reader` - An object that contains the data to set the parameter value to.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateNClob

          public void updateNClob​(int columnIndex,
                                  java.io.Reader reader)
                           throws java.sql.SQLException

      Updates the designated column using the given `Reader` The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateNClob` which takes a length parameter.

      Specified by:
        `updateNClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second 2, ...
        `reader` - An object that contains the data to set the parameter value to.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set, if a database access error occurs or the result set concurrency is `CONCUR_READ_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### updateNClob

          public void updateNClob​(java.lang.String columnLabel,
                                  java.io.Reader reader)
                           throws java.sql.SQLException

      Updates the designated column using the given `Reader` object. The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

      The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of `updateNClob` which takes a length parameter.

      Specified by:
        `updateNClob` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `reader` - An object that contains the data to set the parameter value to.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; if a database access error occurs or the result set concurrency is `CONCUR_READ_ONLY`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        1.6

    - #### unwrap

          public <T> T unwrap​(java.lang.Class<T> iface)
                       throws java.sql.SQLException

      Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy. If the receiver implements the interface then the result is the receiver or a proxy for the receiver. If the receiver is a wrapper and the wrapped object implements the interface then the result is the wrapped object or a proxy for the wrapped object. Otherwise return the result of calling `unwrap` recursively on the wrapped object or a proxy for that result. If the receiver is not a wrapper and does not implement the interface, then an `SQLException` is thrown.
      Specified by:
        `unwrap` in interface `java.sql.Wrapper`
      Parameters:
        `iface` - A Class defining an interface that the result must implement.
      Returns:
        an object that implements the interface. May be a proxy for the actual implementing object.
      Throws:
        `java.sql.SQLException` - If no object found that implements the interface
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### isWrapperFor

          public boolean isWrapperFor​(java.lang.Class<?> iface)
                               throws java.sql.SQLException

      Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does. Returns false otherwise. If this implements the interface then return true, else if this is a wrapper then return the result of recursively calling `isWrapperFor` on the wrapped object. If this does not implement the interface and is not a wrapper, return false. This method should be implemented as a low-cost operation compared to `unwrap` so that callers can use this method to avoid expensive `unwrap` calls that may fail. If this method returns true then calling `unwrap` with the same argument should succeed.
      Specified by:
        `isWrapperFor` in interface `java.sql.Wrapper`
      Parameters:
        `iface` - a Class defining an interface.
      Returns:
        true if this implements the interface or directly or indirectly wraps an object that does.
      Throws:
        `java.sql.SQLException` - if an error occurs while determining whether this is a wrapper for an object with the given interface.
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getObject

          public <T> T getObject​(int columnIndex,
                                 java.lang.Class<T> type)
                          throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object and will convert from the SQL type of the column to the requested Java data type, if the conversion is supported. If the conversion is not supported or null is specified for the type, a `SQLException` is thrown.

      At a minimum, an implementation must support the conversions defined in Appendix B, Table B-3 and conversion of appropriate user defined SQL types to a Java type which implements `SQLData`, or `Struct`. Additional conversions may be supported and are vendor defined.

      Specified by:
        `getObject` in interface `java.sql.ResultSet`
      Type Parameters:
        `T` - the type of the class modeled by this Class object
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `type` - Class representing the Java data type to convert the designated column to.
      Returns:
        an instance of `type` holding the column value
      Throws:
        `java.sql.SQLException` - if conversion is not supported, type is null or another error occurs. The getCause() method of the exception may provide a more detailed exception, for example, if a conversion error occurs
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.7, HSQLDB 2.0.1

    - #### getObject

          public <T> T getObject​(java.lang.String columnLabel,
                                 java.lang.Class<T> type)
                          throws java.sql.SQLException

      Retrieves the value of the designated column in the current row of this `ResultSet` object and will convert from the SQL type of the column to the requested Java data type, if the conversion is supported. If the conversion is not supported or null is specified for the type, a `SQLException` is thrown.

      At a minimum, an implementation must support the conversions defined in Appendix B, Table B-3 and conversion of appropriate user defined SQL types to a Java type which implements `SQLData`, or `Struct`. Additional conversions may be supported and are vendor defined.

      Specified by:
        `getObject` in interface `java.sql.ResultSet`
      Type Parameters:
        `T` - the type of the class modeled by this Class object
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `type` - Class representing the Java data type to convert the designated column to.
      Returns:
        an instance of `type` holding the column value
      Throws:
        `java.sql.SQLException` - if conversion is not supported, type is null or another error occurs. The getCause() method of the exception may provide a more detailed exception, for example, if a conversion error occurs
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.7, HSQLDB 2.0.1

    - #### updateObject

          public void updateObject​(int columnIndex,
                                   java.lang.Object x,
                                   java.sql.SQLType targetSqlType,
                                   int scaleOrLength)
                            throws java.sql.SQLException

      Updates the designated column with an `Object` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      If the second argument is an `InputStream` then the stream must contain the number of bytes specified by scaleOrLength. If the second argument is a `Reader` then the reader must contain the number of characters specified by scaleOrLength. If these conditions are not true the driver will generate a `SQLException` when the statement is executed.

      The default implementation will throw `SQLFeatureNotSupportedException`

      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `targetSqlType` - the SQL type to be sent to the database
        `scaleOrLength` - for an object of `java.math.BigDecimal` , this is the number of digits after the decimal point. For Java Object types `InputStream` and `Reader`, this is the length of the data in the stream or reader. For all other types, this value will be ignored.
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method; if the JDBC driver does not support the specified targetSqlType
      Since:
        1.8
      See Also:
        `JDBCType`, `SQLType`

    - #### updateObject

          public void updateObject​(java.lang.String columnLabel,
                                   java.lang.Object x,
                                   java.sql.SQLType targetSqlType,
                                   int scaleOrLength)
                            throws java.sql.SQLException

      Updates the designated column with an `Object` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      If the second argument is an `InputStream` then the stream must contain number of bytes specified by scaleOrLength. If the second argument is a `Reader` then the reader must contain the number of characters specified by scaleOrLength. If these conditions are not true the driver will generate a `SQLException` when the statement is executed.

      The default implementation will throw `SQLFeatureNotSupportedException`

      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
        `targetSqlType` - the SQL type to be sent to the database
        `scaleOrLength` - for an object of `java.math.BigDecimal` , this is the number of digits after the decimal point. For Java Object types `InputStream` and `Reader`, this is the length of the data in the stream or reader. For all other types, this value will be ignored.
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method; if the JDBC driver does not support the specified targetSqlType
      Since:
        1.8
      See Also:
        `JDBCType`, `SQLType`

    - #### updateObject

          public void updateObject​(int columnIndex,
                                   java.lang.Object x,
                                   java.sql.SQLType targetSqlType)
                            throws java.sql.SQLException

      Updates the designated column with an `Object` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      The default implementation will throw `SQLFeatureNotSupportedException`

      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnIndex` - the first column is 1, the second is 2, ...
        `x` - the new column value
        `targetSqlType` - the SQL type to be sent to the database
      Throws:
        `java.sql.SQLException` - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method; if the JDBC driver does not support the specified targetSqlType
      Since:
        1.8
      See Also:
        `JDBCType`, `SQLType`

    - #### updateObject

          public void updateObject​(java.lang.String columnLabel,
                                   java.lang.Object x,
                                   java.sql.SQLType targetSqlType)
                            throws java.sql.SQLException

      Updates the designated column with an `Object` value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the `updateRow` or `insertRow` methods are called to update the database.

      The default implementation will throw `SQLFeatureNotSupportedException`

      Specified by:
        `updateObject` in interface `java.sql.ResultSet`
      Parameters:
        `columnLabel` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        `x` - the new column value
        `targetSqlType` - the SQL type to be sent to the database
      Throws:
        `java.sql.SQLException` - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is `CONCUR_READ_ONLY` or this method is called on a closed result set
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method; if the JDBC driver does not support the specified targetSqlType
      Since:
        1.8
      See Also:
        `JDBCType`, `SQLType`

    - #### newJDBCResultSet

          public static JDBCResultSet newJDBCResultSet​(org.hsqldb.result.Result r,
                                                       org.hsqldb.result.ResultMetaData metaData)

      Factory method returns a new `JDBCResultSet` object for use with user defined functions that return a ResultSet object. See `org.hsqldb.jdbc.JDBCArrayBasic` for usage example.
      Parameters:
        `r` - the internal result form that the new `JDBCResultSet` represents
        `metaData` - the connection properties
      Returns:
        ResultSet

    - #### newEmptyResultSet

          public static JDBCResultSet newEmptyResultSet()