## Uses of Class
net.snowflake.client.core.SFSession

Packages that use SFSession
net.snowflake.client.core
net.snowflake.client.core.bind
net.snowflake.client.jdbc
net.snowflake.client.jdbc.cloud.storage
net.snowflake.client.jdbc.telemetry

### Uses of SFSession in net.snowflake.client.core

Fields in net.snowflake.client.core declared as SFSession
`protected SFSession` SFBaseResultSet.`session`

Methods in net.snowflake.client.core that return SFSession
`protected SFSession` SFStatement.`getSession()`
`SFSession` SFResultSetMetaData.`getSession()` get the session
`SFSession` SFBaseResultSet.`getSession()`
`SFSession` DataConversionContext.`getSession()`

Methods in net.snowflake.client.core with parameters of type SFSession
`protected void` HeartbeatBackground.`addSession(SFSession session, long masterTokenValidityInSecs, int heartbeatFrequencyInSecs)` Method to add a session
`static Throwable` IncidentUtil.`generateIncidentV2WithException(SFSession session, Throwable exc, String jobId, String requestId)` Makes a V2 incident object and triggers ir, effectively reporting the given exception to GS and possibly to crashmanager
`static List<SFChildResult>` ResultUtil.`getChildResults(SFSession session, String requestId, com.fasterxml.jackson.databind.JsonNode result)` Return the list of child results provided in a result, if available; otherwise return an empty list
`static Date` ResultUtil.`getDate(String str, TimeZone tz, SFSession session)` Deprecated.
`protected static com.fasterxml.jackson.databind.JsonNode` StmtUtil.`getQueryResultJSON(String queryId, SFSession session)` Issue get-result call to get query result given an in progress response.
`static net.snowflake.common.core.SFTime` ResultUtil.`getSFTime(String obj, int scale, SFSession session)` Convert a time internal value (scaled number of seconds + fractional seconds) into an SFTime.
`static net.snowflake.common.core.SFTimestamp` ResultUtil.`getSFTimestamp(String timestampStr, int scale, int internalColumnType, long resultVersion, TimeZone sessionTZ, SFSession session)` Convert a timestamp internal value (scaled number of seconds + fractional seconds) into a SFTimestamp.
`static String` ResultUtil.`getSFTimestampAsString(net.snowflake.common.core.SFTimestamp sfTS, int columnType, int scale, net.snowflake.common.core.SnowflakeDateTimeFormat timestampNTZFormatter, net.snowflake.common.core.SnowflakeDateTimeFormat timestampLTZFormatter, net.snowflake.common.core.SnowflakeDateTimeFormat timestampTZFormatter, SFSession session)` Convert a SFTimestamp to a string value.
`protected void` HeartbeatBackground.`removeSession(SFSession session)` Method to remove a session.
`void` SFBaseResultSet.`setSession(SFSession session)`

Constructors in net.snowflake.client.core with parameters of type SFSession
Constructor and Description
`Incident(SFSession session, Throwable exc, String jobId, String requestId)` Submit an exception to GS from a Throwable, this is the only constructor that should be used to report incidents
`SFResultSetMetaData(int columnCount, List<String> columnNames, List<String> columnTypeNames, List<Integer> columnTypes, SFSession session)`

`SFResultSetMetaData(List<SnowflakeColumnMetadata> columnMetadata, SFSession session, net.snowflake.common.core.SnowflakeDateTimeFormat timestampNTZFormatter, net.snowflake.common.core.SnowflakeDateTimeFormat timestampLTZFormatter, net.snowflake.common.core.SnowflakeDateTimeFormat timestampTZFormatter, net.snowflake.common.core.SnowflakeDateTimeFormat dateFormatter, net.snowflake.common.core.SnowflakeDateTimeFormat timeFormatter)`

`SFResultSetMetaData(List<SnowflakeColumnMetadata> columnMetadata, String queryId, SFSession session, boolean isResultColumnCaseInsensitive, net.snowflake.common.core.SnowflakeDateTimeFormat timestampNTZFormatter, net.snowflake.common.core.SnowflakeDateTimeFormat timestampLTZFormatter, net.snowflake.common.core.SnowflakeDateTimeFormat timestampTZFormatter, net.snowflake.common.core.SnowflakeDateTimeFormat dateFormatter, net.snowflake.common.core.SnowflakeDateTimeFormat timeFormatter)`

`SFStatement(SFSession session)`

### Uses of SFSession in net.snowflake.client.core.bind

Methods in net.snowflake.client.core.bind with parameters of type SFSession
`static BindUploader` BindUploader.`newInstance(SFSession session, String stageDir)` Create a new BindUploader which will upload to the given stage path.

### Uses of SFSession in net.snowflake.client.jdbc

Methods in net.snowflake.client.jdbc that return SFSession
`SFSession` SnowflakeFileTransferConfig.`getSession()`
`SFSession` SnowflakeConnectionV1.`getSfSession()`

Methods in net.snowflake.client.jdbc that return types with arguments of type SFSession
`Optional<SFSession>` SnowflakeResultSetSerializableV1.`getSession()`

Methods in net.snowflake.client.jdbc with parameters of type SFSession
`void` ResultJsonParserV2.`continueParsing(ByteBuffer in, SFSession session)` Continue parsing with the given data
`static SnowflakeResultSetSerializableV1` SnowflakeResultSetSerializableV1.`create(com.fasterxml.jackson.databind.JsonNode rootNode, SFSession sfSession, SFStatement sfStatement)` A factory function to create SnowflakeResultSetSerializable object from result JSON node.
`List<SnowflakeColumnMetadata>` SnowflakeFixedView.`describeColumns(SFSession session)`
`List<SnowflakeColumnMetadata>` SnowflakeFileTransferAgent.`describeColumns(SFSession session)` Describe the metadata of a fixed view.
`void` ResultJsonParserV2.`endParsing(SFSession session)` Check if the chunk has been parsed correctly.
`static SnowflakeColumnMetadata` SnowflakeUtil.`extractColumnMetadata(com.fasterxml.jackson.databind.JsonNode colNode, boolean jdbcTreatDecimalAsInt, SFSession session)`

`static Callable<Void>`

SnowflakeFileTransferAgent.`getDownloadFileCallable(StageInfo stage, String srcFilePath, String localLocation, Map<String,net.snowflake.client.jdbc.SnowflakeFileTransferAgent.FileMetadata> fileMetadataMap, SnowflakeStorageClient client, SFSession session, String command, int parallel, net.snowflake.common.core.RemoteStoreFileEncryptionMaterial encMat, String presignedUrl)`
A callable that can be executed in a separate thread using executor service.

`static Callable<Void>`

SnowflakeFileTransferAgent.`getUploadFileCallable(StageInfo stage, String srcFilePath, net.snowflake.client.jdbc.SnowflakeFileTransferAgent.FileMetadata metadata, SnowflakeStorageClient client, SFSession session, String command, InputStream inputStream, boolean sourceFromStream, int parallel, File srcFile, net.snowflake.common.core.RemoteStoreFileEncryptionMaterial encMat)`
A callable that can be executed in a separate thread using exeuctor service.

`static SnowflakeType` SnowflakeType.`javaTypeToSFType(int javaType, SFSession session)`
`static void` SnowflakeFileTransferAgent.`renewExpiredToken(SFSession session, String command, SnowflakeStorageClient client)` This static method is called when we are handling an expired token exception It retrieves a fresh token from GS and then calls .renew() on the storage client to refresh itself with the new token
`static void` SnowflakeSQLLoggedException.`sendTelemetryData(String queryId, String SQLState, int vendorCode, SFSession session, SQLException ex)` Function to construct log data based on possible exception inputs and send data through in-band telemetry, or oob if in-band does not work
`SnowflakeFileTransferConfig.Builder` SnowflakeFileTransferConfig.Builder.`setSFSession(SFSession session)`
`void` ResultJsonParserV2.`startParsing(JsonResultChunk resultChunk, SFSession session)`

Constructors in net.snowflake.client.jdbc with parameters of type SFSession
Constructor and Description
`ArrowResultChunk(String url, int rowCount, int colCount, int uncompressedSize, org.apache.arrow.memory.RootAllocator rootAllocator, SFSession session)`
`JsonResultChunk(String url, int rowCount, int colCount, int uncompressedSize, SFSession session)`
`SnowflakeFileTransferAgent(String command, SFSession session, SFStatement statement)`
`SnowflakeLoggedFeatureNotSupportedException(SFSession session)`
`SnowflakeSQLLoggedException(SFSession session, ErrorCode errorCode, Object... params)`
`SnowflakeSQLLoggedException(SFSession session, ErrorCode errorCode, Throwable ex, Object... params)`
`SnowflakeSQLLoggedException(SFSession session, int vendorCode, String SQLState)`
`SnowflakeSQLLoggedException(SFSession session, int vendorCode, String SQLState, Object... params)`
`SnowflakeSQLLoggedException(SFSession session, SFException e)`
`SnowflakeSQLLoggedException(SFSession session, String reason)`
`SnowflakeSQLLoggedException(SFSession session, String SQLState, int vendorCode, Throwable ex, Object... params)`
`SnowflakeSQLLoggedException(SFSession session, String SQLState, String reason)`
`SnowflakeSQLLoggedException(SFSession session, String reason, String SQLState, int vendorCode, String queryId)`

### Uses of SFSession in net.snowflake.client.jdbc.cloud.storage

Methods in net.snowflake.client.jdbc.cloud.storage with parameters of type SFSession
`SnowflakeStorageClient` StorageClientFactory.`createClient(StageInfo stage, int parallel, net.snowflake.common.core.RemoteStoreFileEncryptionMaterial encMat, SFSession session)` Creates a storage client based on the value of stageLocationType
`static SnowflakeAzureClient` SnowflakeAzureClient.`createSnowflakeAzureClient(StageInfo stage, net.snowflake.common.core.RemoteStoreFileEncryptionMaterial encMat, SFSession sfSession)`
`static SnowflakeGCSClient` SnowflakeGCSClient.`createSnowflakeGCSClient(StageInfo stage, net.snowflake.common.core.RemoteStoreFileEncryptionMaterial encMat, SFSession session)`
`void` SnowflakeStorageClient.`download(SFSession connection, String command, String localLocation, String destFileName, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage.
`void` SnowflakeS3Client.`download(SFSession session, String command, String localLocation, String destFileName, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from S3.
`void` SnowflakeGCSClient.`download(SFSession session, String command, String localLocation, String destFileName, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage.
`void` SnowflakeAzureClient.`download(SFSession session, String command, String localLocation, String destFileName, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage.
`InputStream` SnowflakeStorageClient.`downloadToStream(SFSession connection, String command, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage
`InputStream` SnowflakeS3Client.`downloadToStream(SFSession session, String command, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage
`InputStream` SnowflakeGCSClient.`downloadToStream(SFSession session, String command, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage
`InputStream` SnowflakeAzureClient.`downloadToStream(SFSession session, String command, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage
`void` SnowflakeStorageClient.`handleStorageException(Exception ex, int retryCount, String operation, SFSession connection, String command)` Handles exceptions thrown by the remote storage provider
`void` SnowflakeS3Client.`handleStorageException(Exception ex, int retryCount, String operation, SFSession session, String command)`
`void` SnowflakeGCSClient.`handleStorageException(Exception ex, int retryCount, String operation, SFSession session, String command)`
`void` SnowflakeAzureClient.`handleStorageException(Exception ex, int retryCount, String operation, SFSession session, String command)` Handles exceptions thrown by Azure Storage
`void` SnowflakeStorageClient.`upload(SFSession connection, String command, int parallelism, boolean uploadFromStream, String remoteStorageLocation, File srcFile, String destFileName, InputStream inputStream, FileBackedOutputStream fileBackedOutputStream, StorageObjectMetadata meta, String stageRegion, String presignedUrl)` Upload a file (-stream) to remote storage
`void` SnowflakeS3Client.`upload(SFSession session, String command, int parallelism, boolean uploadFromStream, String remoteStorageLocation, File srcFile, String destFileName, InputStream inputStream, FileBackedOutputStream fileBackedOutputStream, StorageObjectMetadata meta, String stageRegion, String presignedUrl)` Upload a file (-stream) to S3.
`void` SnowflakeGCSClient.`upload(SFSession session, String command, int parallelism, boolean uploadFromStream, String remoteStorageLocation, File srcFile, String destFileName, InputStream inputStream, FileBackedOutputStream fileBackedOutputStream, StorageObjectMetadata meta, String stageRegion, String presignedUrl)` Upload a file/stream to remote storage
`void` SnowflakeAzureClient.`upload(SFSession session, String command, int parallelism, boolean uploadFromStream, String remoteStorageLocation, File srcFile, String destFileName, InputStream inputStream, FileBackedOutputStream fileBackedOutputStream, StorageObjectMetadata meta, String stageRegion, String presignedUrl)` Upload a file/stream to remote storage

Constructors in net.snowflake.client.jdbc.cloud.storage with parameters of type SFSession
Constructor and Description
`SnowflakeS3Client(Map<?,?> stageCredentials, com.amazonaws.ClientConfiguration clientConfig, net.snowflake.common.core.RemoteStoreFileEncryptionMaterial encMat, String stageRegion, String stageEndPoint, boolean isClientSideEncrypted, SFSession session)`

### Uses of SFSession in net.snowflake.client.jdbc.telemetry

Methods in net.snowflake.client.jdbc.telemetry with parameters of type SFSession
`static Telemetry` TelemetryClient.`createTelemetry(SFSession session)` Initialize the telemetry connector
`static Telemetry` TelemetryClient.`createTelemetry(SFSession session, int flushSize)` Initialize the telemetry connector