Package net.snowflake.client.core

## Class SFArrowResultSet

- java.lang.Object
- - net.snowflake.client.core.SFBaseResultSet
  - - net.snowflake.client.core.SFArrowResultSet

All Implemented Interfaces:
  `DataConversionContext`

    public class SFArrowResultSet
    extends SFBaseResultSet
    implements DataConversionContext

Arrow result set implementation

### Field Summary

Fields
`protected Converters` `converters`
`protected SFBaseStatement` `statement` statement generate current result set

### Fields inherited from class net.snowflake.client.core.SFBaseResultSet

`isClosed, metaDataOfBinds, numberOfBinds, parameters, resultSetMetaData, resultSetSerializable, resultVersion, row, session, sessionTimeZone`

### Constructor Summary

Constructors
`SFArrowResultSet​(SnowflakeResultSetSerializableV1 resultSetSerializable, SFBaseSession session, SFBaseStatement statement, boolean sortResult)` Constructor takes a result from the API response that we get from executing a SQL statement.
`SFArrowResultSet​(SnowflakeResultSetSerializableV1 resultSetSerializable, Telemetry telemetryClient, boolean sortResult)` This is a minimum initialization for SFArrowResult.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `close()`
`static void` `closeRootAllocator​(org.apache.arrow.memory.RootAllocator rootAllocator)`
`Date` `convertToDate​(Object object, TimeZone tz)`
`Time` `convertToTime​(Object object, int scale)`
`Timestamp` `convertToTimestamp​(Object object, int columnType, int columnSubType, TimeZone tz, int scale)`
`SQLInput` `createSqlInputForColumn​(Object input, Class<?> parentObjectClass, int columnIndex, SFBaseSession session, List<FieldMetadata> fields)`
`Array` `getArray​(int columnIndex)`
`BigDecimal` `getBigDecimal​(int columnIndex)`
`BigDecimal` `getBigDecimal​(int columnIndex, int scale)`
`net.snowflake.common.core.SFBinaryFormat` `getBinaryFormatter()`
`boolean` `getBoolean​(int columnIndex)`
`byte` `getByte​(int columnIndex)`
`byte[]` `getBytes​(int columnIndex)`
`Converters` `getConverters()`
`Date` `getDate​(int columnIndex, TimeZone tz)`
`net.snowflake.common.core.SnowflakeDateTimeFormat` `getDateFormatter()`
`double` `getDouble​(int columnIndex)`
`float` `getFloat​(int columnIndex)`
`boolean` `getHonorClientTZForTimestampNTZ()`
`int` `getInt​(int columnIndex)`
`long` `getLong​(int columnIndex)`
`Object` `getObject​(int columnIndex)`
`Object` `getObjectWithoutString​(int columnIndex)`
`String` `getQueryId()`
`long` `getResultVersion()`
`int` `getScale​(int columnIndex)` get scale from Snowflake metadata
`short` `getShort​(int columnIndex)`
`SFStatementType` `getStatementType()`
`String` `getString​(int columnIndex)`
`Time` `getTime​(int columnIndex)`
`net.snowflake.common.core.SnowflakeDateTimeFormat` `getTimeFormatter()`
`Timestamp` `getTimestamp​(int columnIndex, TimeZone tz)`
`net.snowflake.common.core.SnowflakeDateTimeFormat` `getTimestampLTZFormatter()`
`net.snowflake.common.core.SnowflakeDateTimeFormat` `getTimestampNTZFormatter()`
`net.snowflake.common.core.SnowflakeDateTimeFormat` `getTimestampTZFormatter()`
`TimeZone` `getTimeZone()`
`boolean` `isAfterLast()`
`boolean` `isArrayBindSupported()`
`boolean` `isLast()`
`boolean` `next()` Advance to next row
`void` `setStatementType​(SFStatementType statementType)`

### Methods inherited from class net.snowflake.client.core.SFBaseResultSet

`absolute, convertStringToDate, convertStringToTime, convertStringToTimestamp, createJsonSqlInputForColumn, getJsonArray, getMetaData, getMetaDataOfBinds, getNumberOfBinds, getResultSetSerializables, getRow, getSession, getSessionTimezone, getSessionTimeZone, isBeforeFirst, isClosed, isFirst, previous, relative, setSession, wasNull`

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

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

### Methods inherited from interface net.snowflake.client.core.DataConversionContext

`getSession`

### Field Detail

#### statement

    protected SFBaseStatement statement

statement generate current result set

#### converters

    @SnowflakeJdbcInternalApi
    protected Converters converters

### Constructor Detail

#### SFArrowResultSet

    public SFArrowResultSet​(SnowflakeResultSetSerializableV1 resultSetSerializable,
                            SFBaseSession session,
                            SFBaseStatement statement,
                            boolean sortResult)
                     throws SQLException

Constructor takes a result from the API response that we get from executing a SQL statement.

The constructor will initialize the ResultSetMetaData.

Parameters:
  `resultSetSerializable` - result data after parsing json
  `session` - SFBaseSession object
  `statement` - statement object
  `sortResult` - true if sort results otherwise false
Throws:
  `SQLException` - exception raised from general SQL layers

#### SFArrowResultSet

    public SFArrowResultSet​(SnowflakeResultSetSerializableV1 resultSetSerializable,
                            Telemetry telemetryClient,
                            boolean sortResult)
                     throws SQLException

This is a minimum initialization for SFArrowResult. Mainly used for testing purpose. However, real prod constructor will call this constructor as well

Parameters:
  `resultSetSerializable` - data returned in query response
  `telemetryClient` - telemetryClient
  `sortResult` - set if results should be sorted
Throws:
  `SQLException` - if exception encountered

### Method Detail

#### getConverters

    @SnowflakeJdbcInternalApi
    public Converters getConverters()

Overrides:
  `getConverters` in class `SFBaseResultSet`

#### createSqlInputForColumn

    @SnowflakeJdbcInternalApi
    public SQLInput createSqlInputForColumn​(Object input,
                                            Class<?> parentObjectClass,
                                            int columnIndex,
                                            SFBaseSession session,
                                            List<FieldMetadata> fields)

Overrides:
  `createSqlInputForColumn` in class `SFBaseResultSet`

#### convertToDate

    @SnowflakeJdbcInternalApi
    public Date convertToDate​(Object object,
                              TimeZone tz)
                       throws SFException

Overrides:
  `convertToDate` in class `SFBaseResultSet`
Throws:
  `SFException`

#### convertToTime

    @SnowflakeJdbcInternalApi
    public Time convertToTime​(Object object,
                              int scale)
                       throws SFException

Overrides:
  `convertToTime` in class `SFBaseResultSet`
Throws:
  `SFException`

#### convertToTimestamp

    @SnowflakeJdbcInternalApi
    public Timestamp convertToTimestamp​(Object object,
                                        int columnType,
                                        int columnSubType,
                                        TimeZone tz,
                                        int scale)
                                 throws SFException

Overrides:
  `convertToTimestamp` in class `SFBaseResultSet`
Throws:
  `SFException`

#### next

    public boolean next()
                 throws SFException,
                        SnowflakeSQLException

Advance to next row

Overrides:
  `next` in class `SFBaseResultSet`
Returns:
  true if next row exists, false otherwise
Throws:
  `SFException`
  `SnowflakeSQLException`

#### getByte

    public byte getByte​(int columnIndex)
                 throws SFException

Specified by:
  `getByte` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getString

    public String getString​(int columnIndex)
                     throws SFException

Specified by:
  `getString` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getBoolean

    public boolean getBoolean​(int columnIndex)
                       throws SFException

Specified by:
  `getBoolean` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getShort

    public short getShort​(int columnIndex)
                   throws SFException

Specified by:
  `getShort` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getInt

    public int getInt​(int columnIndex)
               throws SFException

Specified by:
  `getInt` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getLong

    public long getLong​(int columnIndex)
                 throws SFException

Specified by:
  `getLong` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getFloat

    public float getFloat​(int columnIndex)
                   throws SFException

Specified by:
  `getFloat` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getDouble

    public double getDouble​(int columnIndex)
                     throws SFException

Specified by:
  `getDouble` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getBytes

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

Specified by:
  `getBytes` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getDate

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

Specified by:
  `getDate` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getTime

    public Time getTime​(int columnIndex)
                 throws SFException

Specified by:
  `getTime` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getTimestamp

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

Specified by:
  `getTimestamp` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getObject

    public Object getObject​(int columnIndex)
                     throws SFException

Specified by:
  `getObject` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getObjectWithoutString

    @SnowflakeJdbcInternalApi
    public Object getObjectWithoutString​(int columnIndex)
                                  throws SFException

Specified by:
  `getObjectWithoutString` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getArray

    public Array getArray​(int columnIndex)
                   throws SFException

Overrides:
  `getArray` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getBigDecimal

    public BigDecimal getBigDecimal​(int columnIndex)
                             throws SFException

Specified by:
  `getBigDecimal` in class `SFBaseResultSet`
Throws:
  `SFException`

#### getBigDecimal

    public BigDecimal getBigDecimal​(int columnIndex,
                                    int scale)
                             throws SFException

Specified by:
  `getBigDecimal` in class `SFBaseResultSet`
Throws:
  `SFException`

#### isLast

    public boolean isLast()

Specified by:
  `isLast` in class `SFBaseResultSet`

#### isAfterLast

    public boolean isAfterLast()

Specified by:
  `isAfterLast` in class `SFBaseResultSet`

#### close

    public void close()
               throws SnowflakeSQLException

Overrides:
  `close` in class `SFBaseResultSet`
Throws:
  `SnowflakeSQLException`

#### closeRootAllocator

    public static void closeRootAllocator​(org.apache.arrow.memory.RootAllocator rootAllocator)

#### getStatementType

    public SFStatementType getStatementType()

Specified by:
  `getStatementType` in class `SFBaseResultSet`

#### setStatementType

    public void setStatementType​(SFStatementType statementType)

Specified by:
  `setStatementType` in class `SFBaseResultSet`

#### isArrayBindSupported

    public boolean isArrayBindSupported()

Overrides:
  `isArrayBindSupported` in class `SFBaseResultSet`

#### getQueryId

    public String getQueryId()

Specified by:
  `getQueryId` in class `SFBaseResultSet`

#### getTimestampLTZFormatter

    public net.snowflake.common.core.SnowflakeDateTimeFormat getTimestampLTZFormatter()

Specified by:
  `getTimestampLTZFormatter` in interface `DataConversionContext`
Returns:
  timestamp_ltz formatter

#### getTimestampNTZFormatter

    public net.snowflake.common.core.SnowflakeDateTimeFormat getTimestampNTZFormatter()

Specified by:
  `getTimestampNTZFormatter` in interface `DataConversionContext`
Returns:
  timestamp_ntz formatter

#### getTimestampTZFormatter

    public net.snowflake.common.core.SnowflakeDateTimeFormat getTimestampTZFormatter()

Specified by:
  `getTimestampTZFormatter` in interface `DataConversionContext`
Returns:
  timestamp_ntz formatter

#### getDateFormatter

    public net.snowflake.common.core.SnowflakeDateTimeFormat getDateFormatter()

Specified by:
  `getDateFormatter` in interface `DataConversionContext`
Returns:
  date formatter

#### getTimeFormatter

    public net.snowflake.common.core.SnowflakeDateTimeFormat getTimeFormatter()

Specified by:
  `getTimeFormatter` in interface `DataConversionContext`
Returns:
  time formatter

#### getBinaryFormatter

    public net.snowflake.common.core.SFBinaryFormat getBinaryFormatter()

Specified by:
  `getBinaryFormatter` in interface `DataConversionContext`
Returns:
  binary formatter

#### getScale

    public int getScale​(int columnIndex)

Description copied from interface: `DataConversionContext`
get scale from Snowflake metadata

Specified by:
  `getScale` in interface `DataConversionContext`
Parameters:
  `columnIndex` - column index
Returns:
  scale value

#### getTimeZone

    public TimeZone getTimeZone()

Specified by:
  `getTimeZone` in interface `DataConversionContext`
Returns:
  session time zone

#### getHonorClientTZForTimestampNTZ

    public boolean getHonorClientTZForTimestampNTZ()

Specified by:
  `getHonorClientTZForTimestampNTZ` in interface `DataConversionContext`
Returns:
  whether to honor client time zone for timestamp_ntz

#### getResultVersion

    public long getResultVersion()

Specified by:
  `getResultVersion` in interface `DataConversionContext`
Returns:
  result version