Package net.snowflake.client.jdbc

## Class SFAsyncResultSet

- java.lang.Object
- - net.snowflake.client.jdbc.SnowflakeBaseResultSet
  - - net.snowflake.client.jdbc.SFAsyncResultSet

All Implemented Interfaces:
  `AutoCloseable`, `ResultSet`, `Wrapper`, `SnowflakeResultSet`

    public class SFAsyncResultSet
    extends SnowflakeBaseResultSet
    implements SnowflakeResultSet, ResultSet

SFAsyncResultSet implementation. Note: For Snowflake internal use

### Field Summary

### Fields inherited from class net.snowflake.client.jdbc.SnowflakeBaseResultSet

`parameters, resultSetMetaData, sfBaseResultSet, statement`

### 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
`SFAsyncResultSet​(String queryID, Statement statement)`
`SFAsyncResultSet​(SFBaseResultSet sfBaseResultSet, SnowflakeResultSetSerializableV1 resultSetSerializable)` Constructor takes a result set serializable object to create a sessionless result set.

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`void` `close()`
`void` `close​(boolean removeClosedResultSetFromStatement)`
`BigDecimal` `getBigDecimal​(int columnIndex)`
`BigDecimal` `getBigDecimal​(int columnIndex, int scale)` Deprecated.
`boolean` `getBoolean​(int columnIndex)`
`byte` `getByte​(int columnIndex)`
`byte[]` `getBytes​(int columnIndex)`
`Date` `getDate​(int columnIndex, TimeZone tz)`
`double` `getDouble​(int columnIndex)`
`float` `getFloat​(int columnIndex)`
`int` `getInt​(int columnIndex)`
`long` `getLong​(int columnIndex)`
`ResultSetMetaData` `getMetaData()`
`Object` `getObject​(int columnIndex)`
`String` `getQueryErrorMessage()` This function retrieves the error message recorded from the error status of an asynchronous query.
`String` `getQueryID()`
`List<SnowflakeResultSetSerializable>` `getResultSetSerializables​(long maxSizeInBytes)` Get a list of ResultSetSerializables for the ResultSet in order to parallel processing
`int` `getRow()`
`short` `getShort​(int columnIndex)`
`QueryStatus` `getStatus()` This function retrieves the status of an asynchronous query.
`QueryStatusV2` `getStatusV2()` This function retrieves the status of an asynchronous query.
`String` `getString​(int columnIndex)`
`Time` `getTime​(int columnIndex)`
`Timestamp` `getTimestamp​(int columnIndex, TimeZone tz)`
`boolean` `isAfterLast()`
`boolean` `isBeforeFirst()`
`boolean` `isClosed()`
`boolean` `isFirst()`
`boolean` `isLast()`
`boolean` `isWrapperFor​(Class<?> iface)`
`boolean` `next()` Advance to next row
`protected void` `raiseSQLExceptionIfResultSetIsClosed()` Raises SQLException if the result set is closed
`void` `setSession​(SFSession session)`
`void` `setStatement​(Statement statement)`
`<T> T` `unwrap​(Class<T> iface)`
`boolean` `wasNull()`

### Methods inherited from class net.snowflake.client.jdbc.SnowflakeBaseResultSet

`absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, deleteRow, findColumn, first, getArray, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getByte, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getConcurrency, getCursorName, getDate, getDate, getDate, getDate, getDouble, getFetchDirection, getFetchSize, getFloat, getHoldability, getInt, getList, getLong, getMap, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRowId, getRowId, getShort, getSQLXML, getSQLXML, getStatement, getString, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, last, moveToCurrentRow, moveToInsertRow, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp`

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

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

### Methods inherited from interface java.sql.ResultSet

`absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, deleteRow, findColumn, first, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getByte, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getConcurrency, getCursorName, getDate, getDate, getDate, getDate, getDouble, getFetchDirection, getFetchSize, getFloat, getHoldability, getInt, getLong, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRowId, getRowId, getShort, getSQLXML, getSQLXML, getStatement, getString, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, last, moveToCurrentRow, moveToInsertRow, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp`

### Constructor Detail

#### SFAsyncResultSet

    public SFAsyncResultSet​(SFBaseResultSet sfBaseResultSet,
                            SnowflakeResultSetSerializableV1 resultSetSerializable)
                     throws SQLException

Constructor takes a result set serializable object to create a sessionless result set.

Parameters:
  `sfBaseResultSet` - snowflake core base result rest object
  `resultSetSerializable` - The result set serializable object which includes all metadata to create the result set
Throws:
  `SQLException` - if fails to create the result set object

#### SFAsyncResultSet

    public SFAsyncResultSet​(String queryID,
                            Statement statement)
                     throws SQLException

Throws:
  `SQLException`

### Method Detail

#### raiseSQLExceptionIfResultSetIsClosed

    protected void raiseSQLExceptionIfResultSetIsClosed()
                                                 throws SQLException

Description copied from class: `SnowflakeBaseResultSet`
Raises SQLException if the result set is closed

Overrides:
  `raiseSQLExceptionIfResultSetIsClosed` in class `SnowflakeBaseResultSet`
Throws:
  `SQLException` - if the result set is closed.

#### getStatus

    public QueryStatus getStatus()
                          throws SQLException

Description copied from interface: `SnowflakeResultSet`
This function retrieves the status of an asynchronous query. An empty ResultSet object has already been returned but the query may still be running. This function can be used to poll to see if it is possible to retrieve results from the ResultSet yet. See Client/src/main/java/net/snowflake/client/core/QueryStatus.java for the list of all possible query statuses. QueryStatus = SUCCESS means results can be retrieved.

Specified by:
  `getStatus` in interface `SnowflakeResultSet`
Returns:
  QueryStatus enum showing status of query
Throws:
  `SQLException`

#### getQueryErrorMessage

    public String getQueryErrorMessage()
                                throws SQLException

Description copied from interface: `SnowflakeResultSet`
This function retrieves the error message recorded from the error status of an asynchronous query. If there is no error or no error is returned by the server, an empty string will be returned.

Specified by:
  `getQueryErrorMessage` in interface `SnowflakeResultSet`
Returns:
  String value of query's error message
Throws:
  `SQLException`

#### getStatusV2

    public QueryStatusV2 getStatusV2()
                              throws SQLException

Description copied from interface: `SnowflakeResultSet`
This function retrieves the status of an asynchronous query. An empty ResultSet object has already been returned, but the query may still be running. This function can be used to query whether it is possible to retrieve results from the ResultSet already.

`status.isSuccess()` means that results can be retrieved.

Specified by:
  `getStatusV2` in interface `SnowflakeResultSet`
Returns:
  an instance containing query metadata
Throws:
  `SQLException`

#### next

    public boolean next()
                 throws SQLException

Advance to next row

Specified by:
  `next` in interface `ResultSet`
Specified by:
  `next` in class `SnowflakeBaseResultSet`
Returns:
  true if next row exists, false otherwise
Throws:
  `SQLException` - if failed to move to the next row

#### close

    public void close()
               throws SQLException

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `ResultSet`
Throws:
  `SQLException`

#### close

    public void close​(boolean removeClosedResultSetFromStatement)
               throws SQLException

Throws:
  `SQLException`

#### getQueryID

    public String getQueryID()

Specified by:
  `getQueryID` in interface `SnowflakeResultSet`
Returns:
  the Snowflake query ID of the query which generated this result set

#### wasNull

    public boolean wasNull()
                    throws SQLException

Specified by:
  `wasNull` in interface `ResultSet`
Throws:
  `SQLException`

#### getString

    public String getString​(int columnIndex)
                     throws SQLException

Specified by:
  `getString` in interface `ResultSet`
Throws:
  `SQLException`

#### setSession

    public void setSession​(SFSession session)

#### setStatement

    public void setStatement​(Statement statement)

#### getBoolean

    public boolean getBoolean​(int columnIndex)
                       throws SQLException

Specified by:
  `getBoolean` in interface `ResultSet`
Throws:
  `SQLException`

#### getByte

    public byte getByte​(int columnIndex)
                 throws SQLException

Specified by:
  `getByte` in interface `ResultSet`
Throws:
  `SQLException`

#### getShort

    public short getShort​(int columnIndex)
                   throws SQLException

Specified by:
  `getShort` in interface `ResultSet`
Throws:
  `SQLException`

#### getInt

    public int getInt​(int columnIndex)
               throws SQLException

Specified by:
  `getInt` in interface `ResultSet`
Throws:
  `SQLException`

#### getLong

    public long getLong​(int columnIndex)
                 throws SQLException

Specified by:
  `getLong` in interface `ResultSet`
Throws:
  `SQLException`

#### getFloat

    public float getFloat​(int columnIndex)
                   throws SQLException

Specified by:
  `getFloat` in interface `ResultSet`
Throws:
  `SQLException`

#### getDouble

    public double getDouble​(int columnIndex)
                     throws SQLException

Specified by:
  `getDouble` in interface `ResultSet`
Throws:
  `SQLException`

#### getDate

    public Date getDate​(int columnIndex,
                        TimeZone tz)
                 throws SQLException

Specified by:
  `getDate` in class `SnowflakeBaseResultSet`
Throws:
  `SQLException`

#### getTime

    public Time getTime​(int columnIndex)
                 throws SQLException

Specified by:
  `getTime` in interface `ResultSet`
Specified by:
  `getTime` in class `SnowflakeBaseResultSet`
Throws:
  `SQLException`

#### getTimestamp

    public Timestamp getTimestamp​(int columnIndex,
                                  TimeZone tz)
                           throws SQLException

Specified by:
  `getTimestamp` in class `SnowflakeBaseResultSet`
Throws:
  `SQLException`

#### getMetaData

    public ResultSetMetaData getMetaData()
                                  throws SQLException

Specified by:
  `getMetaData` in interface `ResultSet`
Overrides:
  `getMetaData` in class `SnowflakeBaseResultSet`
Throws:
  `SQLException`

#### getObject

    public Object getObject​(int columnIndex)
                     throws SQLException

Specified by:
  `getObject` in interface `ResultSet`
Throws:
  `SQLException`

#### getBigDecimal

    public BigDecimal getBigDecimal​(int columnIndex)
                             throws SQLException

Specified by:
  `getBigDecimal` in interface `ResultSet`
Throws:
  `SQLException`

#### getBigDecimal

    @Deprecated
    public BigDecimal getBigDecimal​(int columnIndex,
                                    int scale)
                             throws SQLException

Deprecated.

Specified by:
  `getBigDecimal` in interface `ResultSet`
Throws:
  `SQLException`

#### getBytes

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

Specified by:
  `getBytes` in interface `ResultSet`
Specified by:
  `getBytes` in class `SnowflakeBaseResultSet`
Throws:
  `SQLException`

#### getRow

    public int getRow()
               throws SQLException

Specified by:
  `getRow` in interface `ResultSet`
Throws:
  `SQLException`

#### isFirst

    public boolean isFirst()
                    throws SQLException

Specified by:
  `isFirst` in interface `ResultSet`
Throws:
  `SQLException`

#### isClosed

    public boolean isClosed()
                     throws SQLException

Specified by:
  `isClosed` in interface `ResultSet`
Specified by:
  `isClosed` in class `SnowflakeBaseResultSet`
Throws:
  `SQLException`

#### isLast

    public boolean isLast()
                   throws SQLException

Specified by:
  `isLast` in interface `ResultSet`
Throws:
  `SQLException`

#### isAfterLast

    public boolean isAfterLast()
                        throws SQLException

Specified by:
  `isAfterLast` in interface `ResultSet`
Throws:
  `SQLException`

#### isBeforeFirst

    public boolean isBeforeFirst()
                          throws SQLException

Specified by:
  `isBeforeFirst` in interface `ResultSet`
Throws:
  `SQLException`

#### isWrapperFor

    public boolean isWrapperFor​(Class<?> iface)
                         throws SQLException

Specified by:
  `isWrapperFor` in interface `Wrapper`
Overrides:
  `isWrapperFor` in class `SnowflakeBaseResultSet`
Throws:
  `SQLException`

#### unwrap

    public <T> T unwrap​(Class<T> iface)
                 throws SQLException

Specified by:
  `unwrap` in interface `Wrapper`
Overrides:
  `unwrap` in class `SnowflakeBaseResultSet`
Throws:
  `SQLException`

#### getResultSetSerializables

    public List<SnowflakeResultSetSerializable> getResultSetSerializables​(long maxSizeInBytes)
                                                                   throws SQLException

Get a list of ResultSetSerializables for the ResultSet in order to parallel processing

Not currently supported for asynchronous result sets.

Specified by:
  `getResultSetSerializables` in interface `SnowflakeResultSet`
Parameters:
  `maxSizeInBytes` - The expected max data size wrapped in the ResultSetSerializables object. NOTE: this parameter is intended to make the data size in each serializable object to be less than it. But if user specifies a small value which may be smaller than the data size of one result chunk. So the definition can't be guaranteed completely. For this special case, one serializable object is used to wrap the data chunk.
Returns:
  a list of ResultSetSerializables
Throws:
  `SQLException` - if fails to get the ResultSetSerializable objects.