Showing preview only (7,154K chars total). Download the full file or copy to clipboard to get everything.
Repository: snowflakedb/snowflake-jdbc
Branch: master
Commit: 342336349d2a
Files: 1042
Total size: 87.1 MB
Directory structure:
gitextract_690hkf8e/
├── .cursor/
│ └── skills/
│ └── graphite-pr-workflow/
│ └── SKILL.md
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE/
│ │ ├── BUG_REPORT.md
│ │ └── FEATURE_REQUEST.md
│ ├── pull_request_template.md
│ ├── repo_meta.yaml
│ └── workflows/
│ ├── build-test.yml
│ ├── changelog.yml
│ ├── check-style.yml
│ ├── cla_bot.yml
│ ├── jira_close.yml
│ ├── jira_comment.yml
│ ├── jira_issue.yml
│ ├── parameters_aws.json.gpg
│ ├── parameters_aws_auth_tests.json.gpg
│ ├── parameters_azure.json.gpg
│ ├── parameters_gcp.json.gpg
│ ├── rsa_keys/
│ │ ├── rsa_key_jdbc_aws.p8.gpg
│ │ ├── rsa_key_jdbc_azure.p8.gpg
│ │ └── rsa_key_jdbc_gcp.p8.gpg
│ ├── semgrep.yml
│ ├── snyk-issue.yml
│ ├── snyk-pr.yml
│ └── snyk-scan.yml
├── .gitignore
├── .mvn/
│ └── wrapper/
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── .pre-commit-config.yaml
├── CHANGELOG.md
├── FIPS/
│ ├── .gitignore
│ ├── pom.xml
│ ├── public_pom.xml
│ ├── scripts/
│ │ └── check_content.sh
│ └── src/
│ └── test/
│ └── java/
│ └── net/
│ └── snowflake/
│ └── client/
│ ├── AbstractDriverIT.java
│ ├── DontRunOnGCP.java
│ ├── DontRunOnGithubActions.java
│ ├── TestUtil.java
│ ├── category/
│ │ └── FipsTestSuite.java
│ └── jdbc/
│ └── ConnectionFipsIT.java
├── Jenkinsfile
├── LICENSE.txt
├── README.rst
├── SECURITY.md
├── TestOnly/
│ ├── .gitignore
│ ├── README.rst
│ └── pom.xml
├── ci/
│ ├── _init.sh
│ ├── build.sh
│ ├── container/
│ │ ├── build_component.sh
│ │ ├── change_snowflake_test_pwd.py
│ │ ├── create_schema.py
│ │ ├── download_artifact.sh
│ │ ├── drop_schema.py
│ │ ├── hang_webserver.py
│ │ ├── sf_test_utils.py
│ │ ├── test_authentication.sh
│ │ ├── test_component.sh
│ │ └── upload_artifact.sh
│ ├── image/
│ │ ├── .gitignore
│ │ ├── Dockerfile.jdbc-rockylinux-openjdk-test
│ │ ├── Dockerfile.jdbc-rockylinux8-openjdk-test
│ │ ├── build.sh
│ │ ├── scripts/
│ │ │ ├── aws.sh
│ │ │ ├── entrypoint.sh
│ │ │ ├── git.sh
│ │ │ ├── npmrc
│ │ │ ├── pip.sh
│ │ │ └── python3.6.sh
│ │ └── update.sh
│ ├── log_analyze_setup.sh
│ ├── scripts/
│ │ ├── check_content.sh
│ │ ├── check_no_raw_system_calls.sh
│ │ ├── login_docker.sh
│ │ ├── set_git_info.sh
│ │ └── setup_gpg.sh
│ ├── test.sh
│ ├── test_authentication.sh
│ ├── test_mac.sh
│ ├── test_revocation.sh
│ ├── test_wif.sh
│ ├── test_windows.bat
│ └── wif/
│ ├── aws-lambda/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ ├── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── snowflake/
│ │ │ └── wif/
│ │ │ └── aws/
│ │ │ └── WifLambdaFunctionE2e.java
│ │ └── test.sh
│ ├── azure-function/
│ │ ├── Dockerfile
│ │ ├── README.md
│ │ ├── host.json
│ │ ├── pom.xml
│ │ ├── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── snowflake/
│ │ │ └── wif/
│ │ │ └── azure/
│ │ │ └── WifAzureFunctionE2e.java
│ │ └── test.sh
│ ├── gcp-function/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ ├── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── snowflake/
│ │ │ └── wif/
│ │ │ └── gcp/
│ │ │ └── WifGcpFunctionE2e.java
│ │ └── test.sh
│ ├── parameters/
│ │ ├── parameters_wif.json.gpg
│ │ ├── parameters_wif_function.json.gpg
│ │ ├── rsa_gcp_function.gpg
│ │ ├── rsa_wif_aws_azure.gpg
│ │ └── rsa_wif_gcp.gpg
│ ├── shared/
│ │ └── com/
│ │ └── snowflake/
│ │ └── wif/
│ │ └── common/
│ │ └── WifTestHelper.java
│ └── test_wif.sh
├── codecov/
│ ├── codecov
│ ├── codecov.SHA256SUM
│ ├── codecov.SHA256SUM.sig
│ └── codecov_aarch64
├── codecov.yml
├── dependencies/
│ ├── Readme.md
│ ├── arrow-format-17.0.0.jar
│ ├── arrow-memory-17.0.0.pom
│ ├── arrow-memory-core-17.0.0.jar
│ ├── arrow-memory-netty-buffer-patch-17.0.0.jar
│ ├── arrow-memory-unsafe-17.0.0.jar
│ ├── arrow-vector-17.0.0.jar
│ └── tika-core-2.4.1.jar
├── fat-jar-test-app/
│ ├── pom.xml
│ ├── run.sh
│ └── src/
│ └── main/
│ ├── fips-java/
│ │ └── net/
│ │ └── snowflake/
│ │ └── FipsInitializer.java
│ ├── java/
│ │ └── net/
│ │ └── snowflake/
│ │ └── FatJarTestApp.java
│ └── resources/
│ ├── logback.xml
│ ├── logging.properties
│ └── test.csv
├── linkage-checker-exclusion-rules.xml
├── mvnw
├── mvnw.cmd
├── output.json
├── parent-pom.xml
├── pom.xml
├── prepareNewVersion.sh
├── prober/
│ ├── Dockerfile
│ ├── Jenkinsfile.groovy
│ ├── entrypoint.sh
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── snowflake/
│ └── client/
│ └── jdbc/
│ └── prober/
│ └── Prober.java
├── public_pom.xml
├── settings.json
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── net/
│ │ │ └── snowflake/
│ │ │ └── client/
│ │ │ ├── api/
│ │ │ │ ├── auth/
│ │ │ │ │ └── AuthenticatorType.java
│ │ │ │ ├── connection/
│ │ │ │ │ ├── DownloadStreamConfig.java
│ │ │ │ │ ├── SnowflakeConnection.java
│ │ │ │ │ ├── SnowflakeDatabaseMetaData.java
│ │ │ │ │ └── UploadStreamConfig.java
│ │ │ │ ├── datasource/
│ │ │ │ │ ├── SnowflakeDataSource.java
│ │ │ │ │ └── SnowflakeDataSourceFactory.java
│ │ │ │ ├── driver/
│ │ │ │ │ └── SnowflakeDriver.java
│ │ │ │ ├── exception/
│ │ │ │ │ ├── ErrorCode.java
│ │ │ │ │ └── SnowflakeSQLException.java
│ │ │ │ ├── http/
│ │ │ │ │ └── HttpHeadersCustomizer.java
│ │ │ │ ├── loader/
│ │ │ │ │ ├── LoadResultListener.java
│ │ │ │ │ ├── Loader.java
│ │ │ │ │ ├── LoaderFactory.java
│ │ │ │ │ ├── LoaderProperty.java
│ │ │ │ │ ├── LoadingError.java
│ │ │ │ │ └── Operation.java
│ │ │ │ ├── pooling/
│ │ │ │ │ ├── SnowflakeConnectionPoolDataSource.java
│ │ │ │ │ └── SnowflakeConnectionPoolDataSourceFactory.java
│ │ │ │ ├── resultset/
│ │ │ │ │ ├── FieldMetadata.java
│ │ │ │ │ ├── QueryStatus.java
│ │ │ │ │ ├── SnowflakeAsyncResultSet.java
│ │ │ │ │ ├── SnowflakeResultSet.java
│ │ │ │ │ ├── SnowflakeResultSetMetaData.java
│ │ │ │ │ ├── SnowflakeResultSetSerializable.java
│ │ │ │ │ └── SnowflakeType.java
│ │ │ │ └── statement/
│ │ │ │ ├── SnowflakePreparedStatement.java
│ │ │ │ └── SnowflakeStatement.java
│ │ │ ├── internal/
│ │ │ │ ├── api/
│ │ │ │ │ └── implementation/
│ │ │ │ │ ├── connection/
│ │ │ │ │ │ └── SnowflakeConnectionImpl.java
│ │ │ │ │ ├── datasource/
│ │ │ │ │ │ └── SnowflakeBasicDataSource.java
│ │ │ │ │ ├── metadata/
│ │ │ │ │ │ └── SnowflakeDatabaseMetaDataImpl.java
│ │ │ │ │ ├── pooling/
│ │ │ │ │ │ ├── LogicalConnection.java
│ │ │ │ │ │ ├── SnowflakeConnectionPoolDataSourceImpl.java
│ │ │ │ │ │ └── SnowflakePooledConnection.java
│ │ │ │ │ ├── resultset/
│ │ │ │ │ │ ├── FieldMetadataImpl.java
│ │ │ │ │ │ └── SnowflakeBaseResultSet.java
│ │ │ │ │ └── statement/
│ │ │ │ │ ├── SnowflakeCallableStatementImpl.java
│ │ │ │ │ ├── SnowflakePreparedStatementImpl.java
│ │ │ │ │ └── SnowflakeStatementImpl.java
│ │ │ │ ├── common/
│ │ │ │ │ └── core/
│ │ │ │ │ ├── SFBinary.java
│ │ │ │ │ └── SFBinaryFormat.java
│ │ │ │ ├── config/
│ │ │ │ │ ├── ConnectionParameters.java
│ │ │ │ │ ├── SFClientConfig.java
│ │ │ │ │ ├── SFClientConfigParser.java
│ │ │ │ │ └── SFConnectionConfigParser.java
│ │ │ │ ├── core/
│ │ │ │ │ ├── ArrowSqlInput.java
│ │ │ │ │ ├── AssertUtil.java
│ │ │ │ │ ├── AttributeEnhancingHttpRequestRetryHandler.java
│ │ │ │ │ ├── BaseSqlInput.java
│ │ │ │ │ ├── BasicEvent.java
│ │ │ │ │ ├── CachedCredentialType.java
│ │ │ │ │ ├── CancellationReason.java
│ │ │ │ │ ├── ChunkDownloader.java
│ │ │ │ │ ├── ColumnTypeHelper.java
│ │ │ │ │ ├── Constants.java
│ │ │ │ │ ├── CredentialManager.java
│ │ │ │ │ ├── DataConversionContext.java
│ │ │ │ │ ├── DefaultFileCacheManager.java
│ │ │ │ │ ├── DownloaderMetrics.java
│ │ │ │ │ ├── Event.java
│ │ │ │ │ ├── EventHandler.java
│ │ │ │ │ ├── EventUtil.java
│ │ │ │ │ ├── FieldSchemaCreator.java
│ │ │ │ │ ├── FileCacheManager.java
│ │ │ │ │ ├── FileCacheManagerBuilder.java
│ │ │ │ │ ├── FileCacheUtil.java
│ │ │ │ │ ├── FileTypeDetector.java
│ │ │ │ │ ├── FileUtil.java
│ │ │ │ │ ├── HeaderCustomizerHttpRequestInterceptor.java
│ │ │ │ │ ├── HeartbeatIntervalSelector.java
│ │ │ │ │ ├── HeartbeatRegistry.java
│ │ │ │ │ ├── HeartbeatThread.java
│ │ │ │ │ ├── HttpClientSettingsKey.java
│ │ │ │ │ ├── HttpExecutingContext.java
│ │ │ │ │ ├── HttpExecutingContextBuilder.java
│ │ │ │ │ ├── HttpProtocol.java
│ │ │ │ │ ├── HttpResponseContextDto.java
│ │ │ │ │ ├── HttpResponseWithHeaders.java
│ │ │ │ │ ├── HttpUtil.java
│ │ │ │ │ ├── JsonSqlInput.java
│ │ │ │ │ ├── JsonSqlOutput.java
│ │ │ │ │ ├── MetaDataOfBinds.java
│ │ │ │ │ ├── NoOpFileCacheManager.java
│ │ │ │ │ ├── OCSPMode.java
│ │ │ │ │ ├── OCSPTelemetryData.java
│ │ │ │ │ ├── ObjectMapperFactory.java
│ │ │ │ │ ├── OpaqueContextDTO.java
│ │ │ │ │ ├── ParameterBindingDTO.java
│ │ │ │ │ ├── PrivateLinkDetector.java
│ │ │ │ │ ├── QueryContextCache.java
│ │ │ │ │ ├── QueryContextDTO.java
│ │ │ │ │ ├── QueryContextEntryDTO.java
│ │ │ │ │ ├── QueryExecDTO.java
│ │ │ │ │ ├── QueryResultFormat.java
│ │ │ │ │ ├── ResultUtil.java
│ │ │ │ │ ├── SFArrowResultSet.java
│ │ │ │ │ ├── SFBaseResultSet.java
│ │ │ │ │ ├── SFBaseSession.java
│ │ │ │ │ ├── SFBaseStatement.java
│ │ │ │ │ ├── SFBasicCrlTrustManager.java
│ │ │ │ │ ├── SFChildResult.java
│ │ │ │ │ ├── SFCrlTrustManagerFactory.java
│ │ │ │ │ ├── SFException.java
│ │ │ │ │ ├── SFExtendedCrlTrustManager.java
│ │ │ │ │ ├── SFFixedViewResultSet.java
│ │ │ │ │ ├── SFJsonResultSet.java
│ │ │ │ │ ├── SFLoginInput.java
│ │ │ │ │ ├── SFLoginOutput.java
│ │ │ │ │ ├── SFOCSPException.java
│ │ │ │ │ ├── SFOauthLoginInput.java
│ │ │ │ │ ├── SFPreparedStatementMetaData.java
│ │ │ │ │ ├── SFPubKeysInternal.java
│ │ │ │ │ ├── SFResultSet.java
│ │ │ │ │ ├── SFResultSetFactory.java
│ │ │ │ │ ├── SFResultSetMetaData.java
│ │ │ │ │ ├── SFSSLConnectionSocketFactory.java
│ │ │ │ │ ├── SFSession.java
│ │ │ │ │ ├── SFSessionProperty.java
│ │ │ │ │ ├── SFSqlInput.java
│ │ │ │ │ ├── SFStatement.java
│ │ │ │ │ ├── SFStatementType.java
│ │ │ │ │ ├── SFTrustManager.java
│ │ │ │ │ ├── SdkProxyRoutePlanner.java
│ │ │ │ │ ├── SecureStorageAppleManager.java
│ │ │ │ │ ├── SecureStorageLinuxManager.java
│ │ │ │ │ ├── SecureStorageManager.java
│ │ │ │ │ ├── SecureStorageWindowsManager.java
│ │ │ │ │ ├── SecurityUtil.java
│ │ │ │ │ ├── SessionUtil.java
│ │ │ │ │ ├── SessionUtilExternalBrowser.java
│ │ │ │ │ ├── SessionUtilKeyPair.java
│ │ │ │ │ ├── SfSqlArray.java
│ │ │ │ │ ├── SfTimestampUtil.java
│ │ │ │ │ ├── SnowflakeMutableProxyRoutePlanner.java
│ │ │ │ │ ├── SpcsTokenReader.java
│ │ │ │ │ ├── StmtUtil.java
│ │ │ │ │ ├── SystemUtil.java
│ │ │ │ │ ├── URLUtil.java
│ │ │ │ │ ├── UUIDUtils.java
│ │ │ │ │ ├── arrow/
│ │ │ │ │ │ ├── AbstractArrowVectorConverter.java
│ │ │ │ │ │ ├── ArrayConverter.java
│ │ │ │ │ │ ├── ArrowResultChunkIndexSorter.java
│ │ │ │ │ │ ├── ArrowResultUtil.java
│ │ │ │ │ │ ├── ArrowVectorConverter.java
│ │ │ │ │ │ ├── ArrowVectorConverterUtil.java
│ │ │ │ │ │ ├── BigIntToFixedConverter.java
│ │ │ │ │ │ ├── BigIntToScaledFixedConverter.java
│ │ │ │ │ │ ├── BigIntToTimeConverter.java
│ │ │ │ │ │ ├── BigIntToTimestampLTZConverter.java
│ │ │ │ │ │ ├── BigIntToTimestampNTZConverter.java
│ │ │ │ │ │ ├── BitToBooleanConverter.java
│ │ │ │ │ │ ├── DateConverter.java
│ │ │ │ │ │ ├── DecfloatToDecimalConverter.java
│ │ │ │ │ │ ├── DecimalToScaledFixedConverter.java
│ │ │ │ │ │ ├── DoubleToRealConverter.java
│ │ │ │ │ │ ├── IntToFixedConverter.java
│ │ │ │ │ │ ├── IntToScaledFixedConverter.java
│ │ │ │ │ │ ├── IntToTimeConverter.java
│ │ │ │ │ │ ├── IntervalDayTimeToDurationConverter.java
│ │ │ │ │ │ ├── IntervalYearMonthToPeriodConverter.java
│ │ │ │ │ │ ├── MapConverter.java
│ │ │ │ │ │ ├── SmallIntToFixedConverter.java
│ │ │ │ │ │ ├── SmallIntToScaledFixedConverter.java
│ │ │ │ │ │ ├── StructConverter.java
│ │ │ │ │ │ ├── StructObjectWrapper.java
│ │ │ │ │ │ ├── StructuredTypeDateTimeConverter.java
│ │ │ │ │ │ ├── ThreeFieldStructToTimestampTZConverter.java
│ │ │ │ │ │ ├── TinyIntToFixedConverter.java
│ │ │ │ │ │ ├── TinyIntToScaledFixedConverter.java
│ │ │ │ │ │ ├── TwoFieldStructToTimestampLTZConverter.java
│ │ │ │ │ │ ├── TwoFieldStructToTimestampNTZConverter.java
│ │ │ │ │ │ ├── TwoFieldStructToTimestampTZConverter.java
│ │ │ │ │ │ ├── VarBinaryToBinaryConverter.java
│ │ │ │ │ │ ├── VarCharConverter.java
│ │ │ │ │ │ ├── VectorTypeConverter.java
│ │ │ │ │ │ └── tostringhelpers/
│ │ │ │ │ │ ├── ArrowArrayStringRepresentationBuilder.java
│ │ │ │ │ │ ├── ArrowObjectStringRepresentationBuilder.java
│ │ │ │ │ │ └── ArrowStringRepresentationBuilderBase.java
│ │ │ │ │ ├── auth/
│ │ │ │ │ │ ├── ClientAuthnDTO.java
│ │ │ │ │ │ ├── ClientAuthnParameter.java
│ │ │ │ │ │ ├── oauth/
│ │ │ │ │ │ │ ├── AccessTokenProvider.java
│ │ │ │ │ │ │ ├── AuthorizationCodeRedirectRequestHandler.java
│ │ │ │ │ │ │ ├── DPoPUtil.java
│ │ │ │ │ │ │ ├── OAuthAccessTokenForRefreshTokenProvider.java
│ │ │ │ │ │ │ ├── OAuthAccessTokenProviderFactory.java
│ │ │ │ │ │ │ ├── OAuthAuthorizationCodeAccessTokenProvider.java
│ │ │ │ │ │ │ ├── OAuthClientCredentialsAccessTokenProvider.java
│ │ │ │ │ │ │ ├── OAuthUtil.java
│ │ │ │ │ │ │ ├── RandomStateProvider.java
│ │ │ │ │ │ │ ├── StateProvider.java
│ │ │ │ │ │ │ └── TokenResponseDTO.java
│ │ │ │ │ │ └── wif/
│ │ │ │ │ │ ├── AwsAttestationService.java
│ │ │ │ │ │ ├── AwsIdentityAttestationCreator.java
│ │ │ │ │ │ ├── AzureAttestationService.java
│ │ │ │ │ │ ├── AzureIdentityAttestationCreator.java
│ │ │ │ │ │ ├── GcpIdentityAttestationCreator.java
│ │ │ │ │ │ ├── OidcIdentityAttestationCreator.java
│ │ │ │ │ │ ├── PlatformDetectionUtil.java
│ │ │ │ │ │ ├── WorkloadIdentityAttestation.java
│ │ │ │ │ │ ├── WorkloadIdentityAttestationCreator.java
│ │ │ │ │ │ ├── WorkloadIdentityAttestationProvider.java
│ │ │ │ │ │ ├── WorkloadIdentityProviderType.java
│ │ │ │ │ │ └── WorkloadIdentityUtil.java
│ │ │ │ │ ├── bind/
│ │ │ │ │ │ ├── BindException.java
│ │ │ │ │ │ └── BindUploader.java
│ │ │ │ │ ├── crl/
│ │ │ │ │ │ ├── CRLCache.java
│ │ │ │ │ │ ├── CRLCacheConfig.java
│ │ │ │ │ │ ├── CRLCacheEntry.java
│ │ │ │ │ │ ├── CRLCacheManager.java
│ │ │ │ │ │ ├── CRLFileCache.java
│ │ │ │ │ │ ├── CRLInMemoryCache.java
│ │ │ │ │ │ ├── CRLValidationResult.java
│ │ │ │ │ │ ├── CRLValidationUtils.java
│ │ │ │ │ │ ├── CRLValidator.java
│ │ │ │ │ │ ├── CertRevocationCheckMode.java
│ │ │ │ │ │ ├── CertificateValidationResult.java
│ │ │ │ │ │ ├── CrlRevocationManager.java
│ │ │ │ │ │ ├── NoopCRLCache.java
│ │ │ │ │ │ └── VerifiedCertPathBuilder.java
│ │ │ │ │ ├── json/
│ │ │ │ │ │ ├── BooleanConverter.java
│ │ │ │ │ │ ├── BytesConverter.java
│ │ │ │ │ │ ├── Converters.java
│ │ │ │ │ │ ├── DateTimeConverter.java
│ │ │ │ │ │ ├── NumberConverter.java
│ │ │ │ │ │ └── StringConverter.java
│ │ │ │ │ ├── minicore/
│ │ │ │ │ │ ├── Minicore.java
│ │ │ │ │ │ ├── MinicoreLibrary.java
│ │ │ │ │ │ ├── MinicoreLoadError.java
│ │ │ │ │ │ ├── MinicoreLoadLogger.java
│ │ │ │ │ │ ├── MinicoreLoadResult.java
│ │ │ │ │ │ ├── MinicoreLoader.java
│ │ │ │ │ │ ├── MinicorePlatform.java
│ │ │ │ │ │ └── MinicoreTelemetry.java
│ │ │ │ │ └── structs/
│ │ │ │ │ ├── SQLDataCreationHelper.java
│ │ │ │ │ └── SnowflakeObjectTypeFactories.java
│ │ │ │ ├── driver/
│ │ │ │ │ ├── AutoConfigurationHelper.java
│ │ │ │ │ ├── ConnectionFactory.java
│ │ │ │ │ ├── DriverInitializer.java
│ │ │ │ │ ├── DriverVersion.java
│ │ │ │ │ └── DriverVersionProperties.java
│ │ │ │ ├── exception/
│ │ │ │ │ └── SnowflakeSQLLoggedException.java
│ │ │ │ ├── jdbc/
│ │ │ │ │ ├── ArrowResultChunk.java
│ │ │ │ │ ├── BindingParameterMetadata.java
│ │ │ │ │ ├── ChunkDownloadContext.java
│ │ │ │ │ ├── ColumnTypeInfo.java
│ │ │ │ │ ├── CompressedStreamFactory.java
│ │ │ │ │ ├── DBMetadataResultSetMetadata.java
│ │ │ │ │ ├── DefaultResultStreamProvider.java
│ │ │ │ │ ├── DefaultSFConnectionHandler.java
│ │ │ │ │ ├── EnvironmentVariables.java
│ │ │ │ │ ├── FileBackedOutputStream.java
│ │ │ │ │ ├── JsonResultChunk.java
│ │ │ │ │ ├── MatDesc.java
│ │ │ │ │ ├── OCSPErrorCode.java
│ │ │ │ │ ├── QueryIdValidator.java
│ │ │ │ │ ├── RestRequest.java
│ │ │ │ │ ├── ResultJsonParserV2.java
│ │ │ │ │ ├── ResultStreamProvider.java
│ │ │ │ │ ├── RetryContext.java
│ │ │ │ │ ├── RetryContextManager.java
│ │ │ │ │ ├── SFAsyncResultSet.java
│ │ │ │ │ ├── SFBaseFileTransferAgent.java
│ │ │ │ │ ├── SFConnectionHandler.java
│ │ │ │ │ ├── SnowflakeChunkDownloader.java
│ │ │ │ │ ├── SnowflakeClob.java
│ │ │ │ │ ├── SnowflakeColumn.java
│ │ │ │ │ ├── SnowflakeColumnMetadata.java
│ │ │ │ │ ├── SnowflakeConnectString.java
│ │ │ │ │ ├── SnowflakeDatabaseMetaDataQueryResultSet.java
│ │ │ │ │ ├── SnowflakeDatabaseMetaDataResultSet.java
│ │ │ │ │ ├── SnowflakeDateWithTimezone.java
│ │ │ │ │ ├── SnowflakeFileTransferAgent.java
│ │ │ │ │ ├── SnowflakeFileTransferConfig.java
│ │ │ │ │ ├── SnowflakeFileTransferMetadata.java
│ │ │ │ │ ├── SnowflakeFileTransferMetadataV1.java
│ │ │ │ │ ├── SnowflakeFixedView.java
│ │ │ │ │ ├── SnowflakeLoggedFeatureNotSupportedException.java
│ │ │ │ │ ├── SnowflakeParameterMetadata.java
│ │ │ │ │ ├── SnowflakeReauthenticationRequest.java
│ │ │ │ │ ├── SnowflakeResultChunk.java
│ │ │ │ │ ├── SnowflakeResultSetMetaDataV1.java
│ │ │ │ │ ├── SnowflakeResultSetSerializableV1.java
│ │ │ │ │ ├── SnowflakeResultSetV1.java
│ │ │ │ │ ├── SnowflakeRichResultSetSerializableV1.java
│ │ │ │ │ ├── SnowflakeSQLExceptionWithRetryContext.java
│ │ │ │ │ ├── SnowflakeSimulatedUploadFailure.java
│ │ │ │ │ ├── SnowflakeTimeWithTimezone.java
│ │ │ │ │ ├── SnowflakeTimestampWithTimezone.java
│ │ │ │ │ ├── SnowflakeUseDPoPNonceException.java
│ │ │ │ │ ├── SnowflakeUtil.java
│ │ │ │ │ ├── cloud/
│ │ │ │ │ │ └── storage/
│ │ │ │ │ │ ├── AwsSdkGCPSigner.java
│ │ │ │ │ │ ├── AzureObjectSummariesIterator.java
│ │ │ │ │ │ ├── CloudStorageProxyFactory.java
│ │ │ │ │ │ ├── CommonObjectMetadata.java
│ │ │ │ │ │ ├── EncryptionProvider.java
│ │ │ │ │ │ ├── GCSAccessStrategy.java
│ │ │ │ │ │ ├── GCSAccessStrategyAwsSdk.java
│ │ │ │ │ │ ├── GCSDefaultAccessStrategy.java
│ │ │ │ │ │ ├── GcmEncryptionProvider.java
│ │ │ │ │ │ ├── GcsObjectSummariesIterator.java
│ │ │ │ │ │ ├── ProxySettings.java
│ │ │ │ │ │ ├── QueryIdHelper.java
│ │ │ │ │ │ ├── S3ErrorHandler.java
│ │ │ │ │ │ ├── S3ObjectMetadata.java
│ │ │ │ │ │ ├── S3ObjectSummariesIterator.java
│ │ │ │ │ │ ├── SnowflakeAzureClient.java
│ │ │ │ │ │ ├── SnowflakeGCSClient.java
│ │ │ │ │ │ ├── SnowflakeS3Client.java
│ │ │ │ │ │ ├── SnowflakeStorageClient.java
│ │ │ │ │ │ ├── StageInfo.java
│ │ │ │ │ │ ├── StorageClientFactory.java
│ │ │ │ │ │ ├── StorageHelper.java
│ │ │ │ │ │ ├── StorageObjectMetadata.java
│ │ │ │ │ │ ├── StorageObjectSummary.java
│ │ │ │ │ │ ├── StorageObjectSummaryCollection.java
│ │ │ │ │ │ └── StorageProviderException.java
│ │ │ │ │ ├── diagnostic/
│ │ │ │ │ │ ├── CertificateDiagnosticCheck.java
│ │ │ │ │ │ ├── DiagnosticCheck.java
│ │ │ │ │ │ ├── DiagnosticContext.java
│ │ │ │ │ │ ├── DiagnosticTrustManager.java
│ │ │ │ │ │ ├── DnsDiagnosticCheck.java
│ │ │ │ │ │ ├── HttpAndHttpsDiagnosticCheck.java
│ │ │ │ │ │ ├── ProxyConfig.java
│ │ │ │ │ │ ├── SnowflakeEndpoint.java
│ │ │ │ │ │ └── TcpDiagnosticCheck.java
│ │ │ │ │ ├── telemetry/
│ │ │ │ │ │ ├── CSVMetricsExporter.java
│ │ │ │ │ │ ├── ExecTimeTelemetryData.java
│ │ │ │ │ │ ├── InternalApiTelemetryTracker.java
│ │ │ │ │ │ ├── NoOpTelemetryClient.java
│ │ │ │ │ │ ├── PreSessionTelemetryClient.java
│ │ │ │ │ │ ├── RevocationCheckTelemetryData.java
│ │ │ │ │ │ ├── SqlExceptionTelemetryHandler.java
│ │ │ │ │ │ ├── Telemetry.java
│ │ │ │ │ │ ├── TelemetryClient.java
│ │ │ │ │ │ ├── TelemetryData.java
│ │ │ │ │ │ ├── TelemetryField.java
│ │ │ │ │ │ └── TelemetryUtil.java
│ │ │ │ │ ├── telemetryOOB/
│ │ │ │ │ │ ├── TelemetryEvent.java
│ │ │ │ │ │ ├── TelemetryService.java
│ │ │ │ │ │ └── TelemetryThreadPool.java
│ │ │ │ │ └── util/
│ │ │ │ │ ├── DriverUtil.java
│ │ │ │ │ ├── SnowflakeTypeHelper.java
│ │ │ │ │ └── SnowflakeTypeUtil.java
│ │ │ │ ├── loader/
│ │ │ │ │ ├── BufferStage.java
│ │ │ │ │ ├── FileUploader.java
│ │ │ │ │ ├── OnError.java
│ │ │ │ │ ├── ProcessQueue.java
│ │ │ │ │ ├── PutQueue.java
│ │ │ │ │ ├── StreamLoader.java
│ │ │ │ │ └── Utils.java
│ │ │ │ ├── log/
│ │ │ │ │ ├── ArgSupplier.java
│ │ │ │ │ ├── CommonsLoggingWrapper.java
│ │ │ │ │ ├── CommonsLoggingWrapperMode.java
│ │ │ │ │ ├── JDK14JCLWrapper.java
│ │ │ │ │ ├── JDK14Logger.java
│ │ │ │ │ ├── SFFormatter.java
│ │ │ │ │ ├── SFLogLevel.java
│ │ │ │ │ ├── SFLogger.java
│ │ │ │ │ ├── SFLoggerFactory.java
│ │ │ │ │ ├── SFLoggerUtil.java
│ │ │ │ │ ├── SFToJavaLogMapper.java
│ │ │ │ │ ├── SLF4JJCLWrapper.java
│ │ │ │ │ ├── SLF4JLogger.java
│ │ │ │ │ ├── StdErrOutThresholdAwareConsoleHandler.java
│ │ │ │ │ ├── StdOutConsoleHandler.java
│ │ │ │ │ └── UnknownJavaUtilLoggingLevelException.java
│ │ │ │ └── util/
│ │ │ │ ├── Converter.java
│ │ │ │ ├── DecorrelatedJitterBackoff.java
│ │ │ │ ├── EnvironmentProvider.java
│ │ │ │ ├── LibcDetails.java
│ │ │ │ ├── LibcInfo.java
│ │ │ │ ├── MaskedException.java
│ │ │ │ ├── OsReleaseDetails.java
│ │ │ │ ├── Platform.java
│ │ │ │ ├── PlatformDetector.java
│ │ │ │ ├── SFPair.java
│ │ │ │ ├── SFTimestamp.java
│ │ │ │ ├── SecretDetector.java
│ │ │ │ ├── SnowflakeEnvironmentProvider.java
│ │ │ │ ├── Stopwatch.java
│ │ │ │ ├── ThrowingBiCallable.java
│ │ │ │ ├── ThrowingBiFunction.java
│ │ │ │ ├── ThrowingCallable.java
│ │ │ │ ├── ThrowingFunction.java
│ │ │ │ ├── ThrowingTriCallable.java
│ │ │ │ ├── ThrowingTriFunction.java
│ │ │ │ ├── TimeMeasurement.java
│ │ │ │ └── VariableTypeArray.java
│ │ │ └── jdbc/
│ │ │ └── SnowflakeDriver.java
│ │ ├── java-fat-jar/
│ │ │ └── net/
│ │ │ └── snowflake/
│ │ │ └── client/
│ │ │ └── internal/
│ │ │ └── log/
│ │ │ ├── SFBridgeLogger.java
│ │ │ ├── SFBridgeLoggerFactory.java
│ │ │ └── SFBridgeServiceProvider.java
│ │ ├── javadoc/
│ │ │ ├── licenses.html
│ │ │ └── overview.html
│ │ ├── resources/
│ │ │ ├── META-INF/
│ │ │ │ ├── com.boomi.Dependencies
│ │ │ │ └── services/
│ │ │ │ ├── java.nio.file.spi.FileTypeDetector
│ │ │ │ └── java.sql.Driver
│ │ │ └── net/
│ │ │ └── snowflake/
│ │ │ └── client/
│ │ │ └── jdbc/
│ │ │ ├── jdbc_error_messages.properties
│ │ │ ├── jdbc_error_messages_fr.properties
│ │ │ └── version.properties
│ │ └── resources-fat-jar/
│ │ └── META-INF/
│ │ └── services/
│ │ └── org.slf4j.spi.SLF4JServiceProvider
│ └── test/
│ ├── java/
│ │ ├── com/
│ │ │ └── snowflake/
│ │ │ └── client/
│ │ │ └── jdbc/
│ │ │ └── SnowflakeDriverIT.java
│ │ └── net/
│ │ └── snowflake/
│ │ └── client/
│ │ ├── .gitignore
│ │ ├── AbstractDriverIT.java
│ │ ├── AssumptionUtils.java
│ │ ├── SystemPropertyOverrider.java
│ │ ├── TestUtil.java
│ │ ├── ThrowingConsumer.java
│ │ ├── ThrowingRunnable.java
│ │ ├── annotations/
│ │ │ ├── DontRunOnGithubActions.java
│ │ │ ├── DontRunOnJava21.java
│ │ │ ├── DontRunOnJava8.java
│ │ │ ├── DontRunOnJenkins.java
│ │ │ ├── DontRunOnTestaccount.java
│ │ │ ├── DontRunOnThinJar.java
│ │ │ ├── DontRunOnWindows.java
│ │ │ ├── RunOnAWS.java
│ │ │ ├── RunOnAzure.java
│ │ │ ├── RunOnGCP.java
│ │ │ ├── RunOnGithubActionsNotMac.java
│ │ │ ├── RunOnLinux.java
│ │ │ ├── RunOnLinuxOrMac.java
│ │ │ ├── RunOnMac.java
│ │ │ ├── RunOnTestaccountNotOnGithubActions.java
│ │ │ ├── RunOnWindows.java
│ │ │ └── RunOnWindowsOrMac.java
│ │ ├── api/
│ │ │ ├── driver/
│ │ │ │ └── SnowflakeDriverTest.java
│ │ │ ├── exception/
│ │ │ │ └── SqlFeatureNotSupportedTelemetryTest.java
│ │ │ └── pooling/
│ │ │ ├── LogicalConnectionAlreadyClosedLatestIT.java
│ │ │ └── LogicalConnectionFeatureNotSupportedLatestIT.java
│ │ ├── authentication/
│ │ │ ├── AuthConnectionParameters.java
│ │ │ ├── AuthTestHelper.java
│ │ │ ├── ExternalBrowserLatestIT.java
│ │ │ ├── IdTokenLatestIT.java
│ │ │ ├── MFALatestIT.java
│ │ │ ├── OauthLatestIT.java
│ │ │ ├── OauthOktaAuthorizationCodeLatestIT.java
│ │ │ ├── OauthOktaClientCredentialsLatestIT.java
│ │ │ ├── OauthSnowflakeAuthorizationCodeLatestIT.java
│ │ │ ├── OauthSnowflakeAuthorizationCodeWildcardsLatestIT.java
│ │ │ ├── OktaAuthLatestIT.java
│ │ │ └── PATLatestIT.java
│ │ ├── category/
│ │ │ └── TestTags.java
│ │ ├── internal/
│ │ │ ├── api/
│ │ │ │ └── implementation/
│ │ │ │ ├── metadata/
│ │ │ │ │ └── SnowflakeDatabaseMetaDataImplColumnSizeTest.java
│ │ │ │ ├── pooling/
│ │ │ │ │ ├── ConnectionPoolingDataSourceIT.java
│ │ │ │ │ └── LogicalConnectionLatestIT.java
│ │ │ │ └── statement/
│ │ │ │ └── SnowflakeStatementImplCopyResultSetTest.java
│ │ │ ├── config/
│ │ │ │ ├── ConnectionAutoUrlParserTest.java
│ │ │ │ ├── SFClientConfigParserTest.java
│ │ │ │ ├── SFConnectionConfigParserPermissionTest.java
│ │ │ │ ├── SFConnectionConfigParserTest.java
│ │ │ │ └── SFPermissionsTest.java
│ │ │ ├── core/
│ │ │ │ ├── AttributeEnhancingHttpRequestRetryHandlerTest.java
│ │ │ │ ├── CertificateChainTrustValidationTestLatestIT.java
│ │ │ │ ├── CoreUtilsMiscellaneousTest.java
│ │ │ │ ├── CredentialManagerTest.java
│ │ │ │ ├── EventHandlerTest.java
│ │ │ │ ├── EventTest.java
│ │ │ │ ├── FileCacheManagerDefaultDirTest.java
│ │ │ │ ├── FileCacheManagerTest.java
│ │ │ │ ├── HeaderCustomizerHttpRequestInterceptorTest.java
│ │ │ │ ├── HeartbeatIntervalSelectorTest.java
│ │ │ │ ├── HeartbeatRegistryTest.java
│ │ │ │ ├── HeartbeatThreadTest.java
│ │ │ │ ├── HttpUtilLatestIT.java
│ │ │ │ ├── HttpUtilTest.java
│ │ │ │ ├── HttpUtilWiremockLatestIT.java
│ │ │ │ ├── MinicoreTelemetryWiremockIT.java
│ │ │ │ ├── OAuthAuthorizationCodeFlowLatestIT.java
│ │ │ │ ├── OAuthClientCredentialsFlowLatestIT.java
│ │ │ │ ├── OAuthLegacyFlowLatestIT.java
│ │ │ │ ├── OAuthTokenCacheLatestIT.java
│ │ │ │ ├── OCSPCacheServerTest.java
│ │ │ │ ├── ObjectMapperTest.java
│ │ │ │ ├── PrivateLinkDetectorTest.java
│ │ │ │ ├── ProgrammaticAccessTokenAuthFlowLatestIT.java
│ │ │ │ ├── QueryContextCacheTest.java
│ │ │ │ ├── QueryContextEntryDTOTest.java
│ │ │ │ ├── SFArrowResultSetIT.java
│ │ │ │ ├── SFCrlTrustManagerDelegationTest.java
│ │ │ │ ├── SFCrlTrustManagerFactoryTest.java
│ │ │ │ ├── SFCrlTrustManagerLatestIT.java
│ │ │ │ ├── SFExtendedCrlTrustManagerDelegationTest.java
│ │ │ │ ├── SFLoginInputTest.java
│ │ │ │ ├── SFSSLConnectionSocketFactoryTest.java
│ │ │ │ ├── SFSessionPropertyTest.java
│ │ │ │ ├── SFStatementTest.java
│ │ │ │ ├── SFTrustManagerIT.java
│ │ │ │ ├── SFTrustManagerMockitoMockLatestIT.java
│ │ │ │ ├── SFTrustManagerOcspCachePoisoningTest.java
│ │ │ │ ├── SFTrustManagerProxyWiremockIT.java
│ │ │ │ ├── SFTrustManagerTest.java
│ │ │ │ ├── SQLInputOutputTest.java
│ │ │ │ ├── SecureStorageManagerTest.java
│ │ │ │ ├── SessionUtilExternalBrowserTest.java
│ │ │ │ ├── SessionUtilKeyPairTest.java
│ │ │ │ ├── SessionUtilLatestIT.java
│ │ │ │ ├── SessionUtilTest.java
│ │ │ │ ├── SessionUtilWiremockIT.java
│ │ │ │ ├── SnowflakeMFACacheTest.java
│ │ │ │ ├── SpcsTokenReaderTest.java
│ │ │ │ ├── SqlInputTimestampUtilTest.java
│ │ │ │ ├── StmtUtilTest.java
│ │ │ │ ├── URLUtilTest.java
│ │ │ │ ├── arrow/
│ │ │ │ │ ├── ArrowResultUtilTest.java
│ │ │ │ │ ├── BaseConverterTest.java
│ │ │ │ │ ├── BigIntToFixedConverterTest.java
│ │ │ │ │ ├── BigIntToTimeConverterTest.java
│ │ │ │ │ ├── BigIntToTimestampLTZConverterTest.java
│ │ │ │ │ ├── BigIntToTimestampNTZConverterTest.java
│ │ │ │ │ ├── BitToBooleanConverterTest.java
│ │ │ │ │ ├── DateConverterTest.java
│ │ │ │ │ ├── DoubleToRealConverterTest.java
│ │ │ │ │ ├── IntToFixedConverterTest.java
│ │ │ │ │ ├── IntToTimeConverterTest.java
│ │ │ │ │ ├── SmallIntToFixedConverterTest.java
│ │ │ │ │ ├── ThreeFieldStructToTimestampTZConverterTest.java
│ │ │ │ │ ├── TinyIntToFixedConverterTest.java
│ │ │ │ │ ├── TwoFieldStructToTimestampLTZConverterTest.java
│ │ │ │ │ ├── TwoFieldStructToTimestampNTZConverterTest.java
│ │ │ │ │ ├── TwoFieldStructToTimestampTZConverterTest.java
│ │ │ │ │ ├── VarBinaryToBinaryConverterTest.java
│ │ │ │ │ └── VarCharConverterTest.java
│ │ │ │ ├── auth/
│ │ │ │ │ ├── oauth/
│ │ │ │ │ │ ├── AuthorizationCodeRedirectRequestHandlerTest.java
│ │ │ │ │ │ ├── OAuthAccessTokenProviderFactoryTest.java
│ │ │ │ │ │ ├── OAuthUtilTest.java
│ │ │ │ │ │ ├── RandomStateProviderTest.java
│ │ │ │ │ │ └── TokenResponseDTOTest.java
│ │ │ │ │ └── wif/
│ │ │ │ │ ├── AwsIdentityAttestationCreatorTest.java
│ │ │ │ │ ├── AzureIdentityAttestationCreatorLatestIT.java
│ │ │ │ │ ├── GcpIdentityAttestationCreatorLatestIT.java
│ │ │ │ │ ├── OidcIdentityAttestationCreatorTest.java
│ │ │ │ │ ├── PlatformDetectionUtilTest.java
│ │ │ │ │ └── WorkloadIdentityAttestationProviderTest.java
│ │ │ │ ├── bind/
│ │ │ │ │ └── BindExceptionTest.java
│ │ │ │ ├── crl/
│ │ │ │ │ ├── CRLCacheManagerLatestIT.java
│ │ │ │ │ ├── CRLCacheManagerTest.java
│ │ │ │ │ ├── CRLFileCacheTest.java
│ │ │ │ │ ├── CRLInMemoryCacheTest.java
│ │ │ │ │ ├── CRLValidationUtilsTest.java
│ │ │ │ │ ├── CRLValidatorTest.java
│ │ │ │ │ ├── CRLValidatorWiremockIT.java
│ │ │ │ │ ├── CertificateGeneratorUtil.java
│ │ │ │ │ └── VerifiedCertPathBuilderTest.java
│ │ │ │ ├── json/
│ │ │ │ │ ├── BooleanConverterTest.java
│ │ │ │ │ ├── BytesConverterTest.java
│ │ │ │ │ ├── DateTimeConverterTest.java
│ │ │ │ │ ├── NumberConverterTest.java
│ │ │ │ │ └── StringConverterTest.java
│ │ │ │ └── minicore/
│ │ │ │ ├── MinicoreLoaderTest.java
│ │ │ │ ├── MinicorePlatformTest.java
│ │ │ │ ├── MinicoreTelemetryTest.java
│ │ │ │ ├── MinicoreTest.java
│ │ │ │ └── MinicoreTestLatestIT.java
│ │ │ ├── driver/
│ │ │ │ └── DriverInitializerTest.java
│ │ │ ├── jdbc/
│ │ │ │ ├── ArrowResultChunkTest.java
│ │ │ │ ├── AuthenticatedProxyLatestIT.java
│ │ │ │ ├── AutoConnectionConfigurationLatestIT.java
│ │ │ │ ├── BaseJDBCTest.java
│ │ │ │ ├── BaseJDBCWithSharedConnectionIT.java
│ │ │ │ ├── BaseWiremockTest.java
│ │ │ │ ├── BatchExecutionIT.java
│ │ │ │ ├── BatchExecutionLatestIT.java
│ │ │ │ ├── BindUploaderIT.java
│ │ │ │ ├── BindUploaderLatestIT.java
│ │ │ │ ├── BindingAndInsertingStructuredTypesLatestIT.java
│ │ │ │ ├── BindingDataIT.java
│ │ │ │ ├── BindingDataLatestIT.java
│ │ │ │ ├── CallableStatementIT.java
│ │ │ │ ├── CallableStatementITBase.java
│ │ │ │ ├── CallableStatementLatestIT.java
│ │ │ │ ├── ChunkDownloaderS3RetryUrlLatestIT.java
│ │ │ │ ├── ClientMemoryLimitParallelIT.java
│ │ │ │ ├── CompressedStreamFactoryTest.java
│ │ │ │ ├── ConnectStringParseTest.java
│ │ │ │ ├── ConnectionAlreadyClosedIT.java
│ │ │ │ ├── ConnectionFeatureNotSupportedIT.java
│ │ │ │ ├── ConnectionIT.java
│ │ │ │ ├── ConnectionLatestIT.java
│ │ │ │ ├── ConnectionManual.java
│ │ │ │ ├── ConnectionPoolingIT.java
│ │ │ │ ├── ConnectionWithDisableOCSPModeLatestIT.java
│ │ │ │ ├── ConnectionWithOCSPModeIT.java
│ │ │ │ ├── CustomProxyLatestIT.java
│ │ │ │ ├── DatabaseMetaDataIT.java
│ │ │ │ ├── DatabaseMetaDataInternalIT.java
│ │ │ │ ├── DatabaseMetaDataInternalLatestIT.java
│ │ │ │ ├── DatabaseMetaDataLatestIT.java
│ │ │ │ ├── DatabaseMetaDataResultSetLatestIT.java
│ │ │ │ ├── DatabaseMetaDataResultsetIT.java
│ │ │ │ ├── DecfloatTypeLatestIT.java
│ │ │ │ ├── DefaultSFConnectionHandlerTest.java
│ │ │ │ ├── DellBoomiCloudIT.java
│ │ │ │ ├── FileConnectionConfigurationLatestIT.java
│ │ │ │ ├── FileUploaderExpandFileNamesTest.java
│ │ │ │ ├── FileUploaderLatestIT.java
│ │ │ │ ├── FileUploaderMimeTypeToCompressionTypeTest.java
│ │ │ │ ├── FileUploaderPrep.java
│ │ │ │ ├── FileUploaderSessionlessTest.java
│ │ │ │ ├── GCPLargeResult.java
│ │ │ │ ├── GitRepositoryDownloadLatestIT.java
│ │ │ │ ├── HeartbeatAsyncLatestIT.java
│ │ │ │ ├── HeartbeatIT.java
│ │ │ │ ├── HeartbeatMultiSessionIT.java
│ │ │ │ ├── IntervalDayTimeTypeLatestIT.java
│ │ │ │ ├── IntervalYearMonthTypeLatestIT.java
│ │ │ │ ├── LobSizeLatestIT.java
│ │ │ │ ├── MaxLobSizeLatestIT.java
│ │ │ │ ├── MockConnectionTest.java
│ │ │ │ ├── MultiStatementArrowIT.java
│ │ │ │ ├── MultiStatementIT.java
│ │ │ │ ├── MultiStatementLatestIT.java
│ │ │ │ ├── OpenGroupCLIFuncIT.java
│ │ │ │ ├── OpenGroupCLIFuncLatestIT.java
│ │ │ │ ├── PreparedMultiStmtIT.java
│ │ │ │ ├── PreparedStatement0IT.java
│ │ │ │ ├── PreparedStatement1IT.java
│ │ │ │ ├── PreparedStatement1LatestIT.java
│ │ │ │ ├── PreparedStatement2IT.java
│ │ │ │ ├── PreparedStatement2LatestIT.java
│ │ │ │ ├── PreparedStatementFeatureNotSupportedIT.java
│ │ │ │ ├── PreparedStatementLargeUpdateLatestIT.java
│ │ │ │ ├── PrivateKeyAuthenticationExceptionHandlingLatestIT.java
│ │ │ │ ├── ProxyLatestIT.java
│ │ │ │ ├── PutFileWithSpaceIncludedIT.java
│ │ │ │ ├── PutUnescapeBackslashIT.java
│ │ │ │ ├── QueryContextWiremockIT.java
│ │ │ │ ├── RestRequestTest.java
│ │ │ │ ├── RestRequestTestRetriesWiremockIT.java
│ │ │ │ ├── RestRequestWiremockLatestIT.java
│ │ │ │ ├── ResultJsonParserV2Test.java
│ │ │ │ ├── ResultSet0IT.java
│ │ │ │ ├── ResultSetAlreadyClosedIT.java
│ │ │ │ ├── ResultSetArrowForce0MultiTimeZone.java
│ │ │ │ ├── ResultSetArrowForceLTZMultiTimeZoneIT.java
│ │ │ │ ├── ResultSetArrowForceTZMultiTimeZoneIT.java
│ │ │ │ ├── ResultSetAsyncIT.java
│ │ │ │ ├── ResultSetAsyncLatestIT.java
│ │ │ │ ├── ResultSetFeatureNotSupportedIT.java
│ │ │ │ ├── ResultSetFormatType.java
│ │ │ │ ├── ResultSetIT.java
│ │ │ │ ├── ResultSetJsonVsArrowIT.java
│ │ │ │ ├── ResultSetJsonVsArrowMultiTZIT.java
│ │ │ │ ├── ResultSetLatestIT.java
│ │ │ │ ├── ResultSetMultiTimeZoneIT.java
│ │ │ │ ├── ResultSetMultiTimeZoneLatestIT.java
│ │ │ │ ├── ResultSetVectorLatestIT.java
│ │ │ │ ├── SSOConnectionTest.java
│ │ │ │ ├── ServiceNameTest.java
│ │ │ │ ├── SessionContextWiremockLatestIT.java
│ │ │ │ ├── SessionVariablesIT.java
│ │ │ │ ├── SnowflakeAzureClientHandleExceptionLatestIT.java
│ │ │ │ ├── SnowflakeBasicDataSourceTest.java
│ │ │ │ ├── SnowflakeChunkDownloaderLatestIT.java
│ │ │ │ ├── SnowflakeClobTest.java
│ │ │ │ ├── SnowflakeConnectionImplTest.java
│ │ │ │ ├── SnowflakeDriverConnectionStressTest.java
│ │ │ │ ├── SnowflakeDriverIT.java
│ │ │ │ ├── SnowflakeDriverLatestIT.java
│ │ │ │ ├── SnowflakeDriverTest.java
│ │ │ │ ├── SnowflakeFileTransferAgentExtractSafeDestFileNameTest.java
│ │ │ │ ├── SnowflakeFileTransferConfigTest.java
│ │ │ │ ├── SnowflakeGcsClientHandleExceptionLatestIT.java
│ │ │ │ ├── SnowflakeResultSetSerializableIT.java
│ │ │ │ ├── SnowflakeS3ClientHandleExceptionLatestIT.java
│ │ │ │ ├── SnowflakeSerializableTest.java
│ │ │ │ ├── SnowflakeTimestampWithTimezoneTest.java
│ │ │ │ ├── SnowflakeTypeTest.java
│ │ │ │ ├── SnowflakeUtilTest.java
│ │ │ │ ├── StatementAlreadyClosedIT.java
│ │ │ │ ├── StatementArrowIT.java
│ │ │ │ ├── StatementFeatureNotSupportedIT.java
│ │ │ │ ├── StatementIT.java
│ │ │ │ ├── StatementLargeUpdateIT.java
│ │ │ │ ├── StatementLatestIT.java
│ │ │ │ ├── StatementNoOpLatestIT.java
│ │ │ │ ├── StreamIT.java
│ │ │ │ ├── StreamLatestIT.java
│ │ │ │ ├── cloud/
│ │ │ │ │ └── storage/
│ │ │ │ │ ├── AwsSdkGCPSignerTest.java
│ │ │ │ │ ├── CloudStorageClientLatestIT.java
│ │ │ │ │ ├── CloudStorageProxyFactoryTest.java
│ │ │ │ │ ├── EncryptionProviderTest.java
│ │ │ │ │ ├── GcmEncryptionProviderTest.java
│ │ │ │ │ ├── SnowflakeAzureClientLatestIT.java
│ │ │ │ │ ├── SnowflakeAzureClientTest.java
│ │ │ │ │ ├── SnowflakeS3ClientLatestIT.java
│ │ │ │ │ ├── SnowflakeS3ClientTest.java
│ │ │ │ │ ├── SnowflakeStorageClientTest.java
│ │ │ │ │ ├── StageInfoGcsCustomEndpointTest.java
│ │ │ │ │ └── StorageProviderExceptionTest.java
│ │ │ │ ├── diagnostic/
│ │ │ │ │ ├── DiagnosticContextLatestIT.java
│ │ │ │ │ └── SnowflakeEndpointTest.java
│ │ │ │ ├── structuredtypes/
│ │ │ │ │ ├── ResultSetStructuredTypesLatestIT.java
│ │ │ │ │ ├── StructuredTypesArrowJsonCompatibilityLatestIT.java
│ │ │ │ │ ├── StructuredTypesGetStringBaseIT.java
│ │ │ │ │ └── sqldata/
│ │ │ │ │ ├── AllTypesClass.java
│ │ │ │ │ ├── NestedStructSqlData.java
│ │ │ │ │ ├── NullableFieldsSqlData.java
│ │ │ │ │ ├── SimpleClass.java
│ │ │ │ │ └── StringClass.java
│ │ │ │ ├── telemetry/
│ │ │ │ │ ├── CSVMetricsExporterTest.java
│ │ │ │ │ ├── ExecTimeTelemetryDataTest.java
│ │ │ │ │ ├── InternalApiMarkerUsageArchTest.java
│ │ │ │ │ ├── InternalApiTelemetryTrackerTest.java
│ │ │ │ │ ├── NoOpTelemetryClientTest.java
│ │ │ │ │ ├── PreSessionTelemetryClientTest.java
│ │ │ │ │ ├── TelemetryIT.java
│ │ │ │ │ ├── TelemetryTest.java
│ │ │ │ │ └── TelemetryUtilTest.java
│ │ │ │ └── telemetryOOB/
│ │ │ │ ├── TelemetryServiceIT.java
│ │ │ │ ├── TelemetryServiceTest.java
│ │ │ │ └── TelemetryThreadPoolTest.java
│ │ │ ├── loader/
│ │ │ │ ├── FlatfileReadMultithreadIT.java
│ │ │ │ ├── LoaderBase.java
│ │ │ │ ├── LoaderIT.java
│ │ │ │ ├── LoaderLatestIT.java
│ │ │ │ ├── LoaderMultipleBatchIT.java
│ │ │ │ ├── LoaderTimestampIT.java
│ │ │ │ ├── OnErrorTest.java
│ │ │ │ └── TestDataConfigBuilder.java
│ │ │ ├── log/
│ │ │ │ ├── AbstractLoggerIT.java
│ │ │ │ ├── CommonsLoggingWrapperModeTest.java
│ │ │ │ ├── CommonsLoggingWrapperTest.java
│ │ │ │ ├── JDK14JCLWrapperLatestIT.java
│ │ │ │ ├── JDK14LoggerConsoleHandlerOverrideLatestIT.java
│ │ │ │ ├── JDK14LoggerLatestIT.java
│ │ │ │ ├── JDK14LoggerTest.java
│ │ │ │ ├── JDK14LoggerWithClientLatestIT.java
│ │ │ │ ├── MaskedExceptionLoggerIntegrationTest.java
│ │ │ │ ├── SFFormatterTest.java
│ │ │ │ ├── SFLogLevelTest.java
│ │ │ │ ├── SFLoggerFactoryTest.java
│ │ │ │ ├── SFToJavaLogMapperTest.java
│ │ │ │ ├── SLF4JJJCLWrapperLatestIT.java
│ │ │ │ └── SLF4JLoggerLatestIT.java
│ │ │ └── util/
│ │ │ ├── DecorrelatedJitterBackoffTest.java
│ │ │ ├── LibcDetailsTest.java
│ │ │ ├── MaskedExceptionTest.java
│ │ │ ├── OsReleaseDetailsTest.java
│ │ │ ├── PlatformDetectorLatestIT.java
│ │ │ ├── SFPairTest.java
│ │ │ ├── SecretDetectorTest.java
│ │ │ └── StopwatchTest.java
│ │ ├── providers/
│ │ │ ├── BooleanProvider.java
│ │ │ ├── ProvidersUtil.java
│ │ │ ├── ResultFormatProvider.java
│ │ │ ├── ScaleProvider.java
│ │ │ ├── SimpleResultFormatProvider.java
│ │ │ ├── SnowflakeArgumentsProvider.java
│ │ │ └── TimezoneProvider.java
│ │ ├── suites/
│ │ │ ├── ArrowTestSuite.java
│ │ │ ├── AuthenticationTestSuite.java
│ │ │ ├── BaseTestSuite.java
│ │ │ ├── ConnectionOldDriverTestSuite.java
│ │ │ ├── ConnectionTestSuite.java
│ │ │ ├── CoreOldDriverTestSuite.java
│ │ │ ├── CoreTestSuite.java
│ │ │ ├── DatabaseMetaDataTestSuite.java
│ │ │ ├── DiagnosticOldDriverTestSuite.java
│ │ │ ├── DiagnosticTestSuite.java
│ │ │ ├── LoaderOldDriverTestSuite.java
│ │ │ ├── LoaderTestSuite.java
│ │ │ ├── OldDriverTestSuite.java
│ │ │ ├── OnlyTestingTestSuite.java
│ │ │ ├── OthersOldDriverTestSuite.java
│ │ │ ├── OthersTestSuite.java
│ │ │ ├── ResultSetOldDriverTestSuite.java
│ │ │ ├── ResultSetTestSuite.java
│ │ │ ├── StatementOldDriverTestSuite.java
│ │ │ ├── StatementTestSuite.java
│ │ │ ├── UnitOldDriverTestSuite.java
│ │ │ ├── UnitTestSuite.java
│ │ │ └── WIFTestSuite.java
│ │ └── wif/
│ │ └── WIFLatestIT.java
│ └── resources/
│ ├── .gitignore
│ ├── FileUploaderPrep/
│ │ ├── exampleAzure.json
│ │ ├── exampleGCS.json
│ │ ├── exampleGCSWithEndpoint.json
│ │ ├── exampleGCSWithUseRegionalUrl.json
│ │ ├── exampleS3.json
│ │ └── exampleS3WithStageEndpoint.json
│ ├── allowlist.json
│ ├── encrypted_rsa_key.p8
│ ├── encrypted_rsa_key.pub
│ ├── invalid_private_key.pem
│ ├── logback-test.xml
│ ├── logging.properties
│ ├── net/
│ │ └── snowflake/
│ │ └── client/
│ │ ├── .gitignore
│ │ ├── internal/
│ │ │ └── jdbc/
│ │ │ ├── boomi.policy
│ │ │ └── test_copy.csv
│ │ ├── jenkins_it_logging.properties
│ │ └── travis_it_logging.properties
│ ├── orders_100.csv
│ ├── orders_101.csv
│ ├── os-release-test
│ ├── revoked_certs.pem
│ ├── rsa_key.p8
│ ├── rsa_key.pem
│ ├── rsa_key.pub
│ ├── ssl-tests/
│ │ ├── certs/
│ │ │ ├── amz_root_ca1_chain.crt
│ │ │ ├── amz_root_ca1_chain.csr
│ │ │ ├── amz_root_ca1_chain.srl
│ │ │ ├── amz_root_ca1_common.key
│ │ │ ├── amz_root_ca1_trust_store.crt
│ │ │ ├── amz_root_ca1_trust_store.csr
│ │ │ ├── amz_rsa_m02_intermediate.crt
│ │ │ ├── amz_rsa_m02_intermediate.csr
│ │ │ ├── amz_rsa_m02_intermediate.key
│ │ │ ├── amz_rsa_m02_intermediate.srl
│ │ │ ├── client_keystore.p12
│ │ │ ├── leaf.crt
│ │ │ ├── leaf.csr
│ │ │ ├── leaf.key
│ │ │ ├── st_class2_root.crt
│ │ │ ├── st_class2_root.csr
│ │ │ ├── st_class2_root.key
│ │ │ ├── st_class2_root.srl
│ │ │ ├── st_g2_root.crt
│ │ │ ├── st_g2_root.csr
│ │ │ ├── st_g2_root.key
│ │ │ ├── st_g2_root.srl
│ │ │ └── truststore.jks
│ │ └── generate_certs.sh
│ ├── test_encryption_256.csv
│ ├── test_file
│ ├── test_file.csv
│ └── wiremock/
│ ├── ca-cert.jks
│ └── mappings/
│ ├── connection/
│ │ └── session_context_switches.json
│ ├── minicore/
│ │ └── minicore_telemetry.json
│ ├── oauth/
│ │ ├── authorization_code/
│ │ │ ├── browser_timeout_authorization_error.json
│ │ │ ├── dpop_nonce_error_flow.json
│ │ │ ├── external_idp_custom_urls.json
│ │ │ ├── invalid_scope_error.json
│ │ │ ├── invalid_state_error.json
│ │ │ ├── successful_dpop_flow.json
│ │ │ ├── successful_flow.json
│ │ │ ├── successful_flow_with_single_use_refresh_tokens.json
│ │ │ └── token_request_error.json
│ │ ├── client_credentials/
│ │ │ ├── dpop_nonce_error_flow.json
│ │ │ ├── successful_dpop_flow.json
│ │ │ ├── successful_flow.json
│ │ │ └── token_request_error.json
│ │ ├── legacy_oauth/
│ │ │ └── token_expired.json
│ │ └── token_caching/
│ │ ├── caching_refreshed_access_token_and_new_refresh_token.json
│ │ ├── caching_tokens_after_connecting.json
│ │ ├── caching_tokens_and_dpop_key_after_connecting.json
│ │ ├── not_caching_after_client_credentials_flow.json
│ │ ├── refreshing_expired_access_token.json
│ │ ├── refreshing_expired_access_token_dpop.json
│ │ ├── refreshing_expired_access_token_dpop_nonce_error.json
│ │ ├── restarting_full_flow_on_expiration_and_no_refresh_token.json
│ │ ├── restarting_full_flow_on_refresh_token_error.json
│ │ └── reusing_cached_access_token_to_authenticate.json
│ ├── pat/
│ │ ├── invalid_pat_token.json
│ │ └── successful_flow.json
│ ├── platform-detection/
│ │ ├── aws_ec2_instance_successful.json
│ │ ├── aws_ec2_token_successful.json
│ │ ├── azure_managed_identity_successful.json
│ │ ├── azure_metadata_unavailable.json
│ │ ├── azure_vm_successful.json
│ │ ├── ec2_successful_imdsv1.json
│ │ ├── ec2_successful_imdsv2.json
│ │ ├── gcp_identity_successful.json
│ │ ├── gcp_metadata_unavailable.json
│ │ ├── gcp_vm_slow_response.json
│ │ ├── gcp_vm_successful.json
│ │ ├── slow_response_timeout.json
│ │ └── timeout_scenarios.json
│ ├── querycontext/
│ │ └── qcc-merge-on-failed-query.json
│ ├── restrequest/
│ │ ├── certificate_revoked.json
│ │ ├── correct_response.json
│ │ ├── http_307_retry.json
│ │ ├── http_308_retry.json
│ │ ├── response503.json
│ │ ├── six_malformed_and_correct.json
│ │ ├── sticky_header_from_first_query.json
│ │ ├── sticky_header_from_login.json
│ │ └── sticky_header_updated.json
│ ├── session/
│ │ ├── session-util-wiremock-it-always-429-in-federated-step-3.json
│ │ ├── session-util-wiremock-it-always-429-in-federated-step-4.json
│ │ ├── session-util-wiremock-it-libc-details-in-login-request.json
│ │ ├── session-util-wiremock-it-multiple-429-from-okta-in-login-request-to-sf.json
│ │ ├── session-util-wiremock-it-multiple-429-in-federated-step-3.json
│ │ ├── session-util-wiremock-it-multiple-429-in-federated-step-4.json
│ │ ├── session-util-wiremock-it-os-details-in-login-request.json
│ │ ├── session-util-wiremock-it-spcs-token-in-login-request.json
│ │ └── session-util-wiremock-it-unsupported-mfa-in-federated-step-3.json
│ └── wif/
│ ├── azure/
│ │ ├── http_error.json
│ │ ├── invalid_issuer_flow.json
│ │ ├── missing_issuer_claim.json
│ │ ├── missing_sub_claim.json
│ │ ├── non_json_response.json
│ │ ├── successful_flow_azure_functions.json
│ │ ├── successful_flow_azure_functions_custom_entra_resource.json
│ │ ├── successful_flow_azure_functions_no_client_id.json
│ │ ├── successful_flow_azure_functions_v2_issuer.json
│ │ ├── successful_flow_basic.json
│ │ ├── successful_flow_v2_issuer.json
│ │ └── unparsable_token.json
│ └── gcp/
│ ├── http_error.json
│ ├── invalid_issuer_claim.json
│ ├── missing_issuer_claim.json
│ ├── missing_sub_claim.json
│ ├── successful_flow.json
│ ├── successful_impersonation_flow.json
│ └── unparsable_token.json
└── thin_public_pom.xml
================================================
FILE CONTENTS
================================================
================================================
FILE: .cursor/skills/graphite-pr-workflow/SKILL.md
================================================
---
name: graphite-pr-workflow
description: Create branches, commits, and pull requests using Graphite CLI (gt) for the snowflake-jdbc repository. Use when the user asks to create a PR, submit a PR, commit changes, or push a branch. Covers Graphite commands, SNOW-ticket commit message conventions, PR description templates, and snowflake-jdbc-specific pre-commit formatting/checkstyle requirements.
---
# Graphite PR Workflow (snowflake-jdbc)
## CRITICAL: Do Not Commit or Submit Without Explicit Instruction
**NEVER run `gt commit create`, `git commit`, `gt submit`, or open a PR unless the user has explicitly asked you to.** Completing a feature is NOT permission to commit. Passing tests is NOT permission to commit. Pre-commit checks succeeding is NOT permission to commit.
When you have finished implementing a feature or change, you MAY ask the user whether they want you to proceed with creating a commit and PR. Phrase it as a question and wait for explicit confirmation before doing anything that mutates git history or the remote.
Examples of acceptable prompts after finishing work:
- "The change is implemented and tests pass. Would you like me to format, run checkstyle, and create a commit + PR?"
- "Should I proceed with `gt commit create` and `gt submit`?"
Do NOT interpret ambiguous responses ("looks good", "great", "thanks") as approval to commit. Wait for an explicit "yes, commit" / "create the PR" / "go ahead and submit".
## Required Pre-Commit Checks (snowflake-jdbc)
Before running ANY commit command (`gt commit create`, `git commit`, `gt commit amend`), you MUST run the following two Maven commands in order from the repo root and confirm they succeed:
1. **Format the code** with the Spotify fmt plugin:
```bash
mvn com.spotify.fmt:fmt-maven-plugin:format
```
2. **Validate checkstyle** passes cleanly:
```bash
mvn clean validate --batch-mode --show-version -P check-style
```
If either command fails, fix the reported issues (re-running the formatter for any new files, or addressing checkstyle violations manually) and re-run both commands until both succeed. Only then may you proceed with committing — and only if the user has explicitly asked you to commit (see section above).
## Commit Message Convention
Prefix with Jira ticket: `SNOW-{ticket}: {description}`
```
SNOW-3254915: Add QueryStatus enum and is_still_running/is_an_error static methods
```
Use `NO-SNOW:` for changes without a ticket.
## Creating a PR (only after explicit user approval)
```bash
# 1. Create a tracked branch
gt branch create {user}/{branch-name}
# 2. Format and validate (REQUIRED before staging/committing — see Pre-Commit Checks above)
mvn com.spotify.fmt:fmt-maven-plugin:format
mvn clean validate --batch-mode --show-version -P check-style
# 3. Stage files
git add <files>
# 4. Commit (runs pre-commit hooks)
gt commit create -m "SNOW-{ticket}: {description}"
# 5. Push and create PR (draft mode in non-interactive)
gt submit --no-edit
```
Then update title/description via `gh pr edit` or the Graphite web UI.
## PR Description Template
```markdown
## Summary
- Bullet points describing what changed and why
## Context
Brief explanation of how this fits into the larger effort (e.g., "first of two PRs for...")
## Test plan
Explain how the change was tested: what commands were run, what was
verified, and the results. Be specific to this PR.
```
## Key Commands
| Command | Purpose |
|---------|---------|
| `mvn com.spotify.fmt:fmt-maven-plugin:format` | Auto-format Java sources (REQUIRED before commit) |
| `mvn clean validate --batch-mode --show-version -P check-style` | Run checkstyle validation (REQUIRED before commit) |
| `gt branch create {user}/{branch-name}` | Create branch tracked by Graphite |
| `gt commit create -m "..."` | Commit with message |
| `gt commit amend` | Amend current commit |
| `gt submit --no-edit` | Push and create/update PR |
| `gt submit --stack` | Submit entire stack of PRs |
| `gt restack` | Rebase stack after upstream changes |
## Before Creating a PR: Required Checks
Before proceeding with branch creation or committing, you MUST:
1. **Confirm the user has explicitly requested a commit/PR.** See the top of this file. Do not commit proactively.
2. **Run the formatter and checkstyle commands** described in the Required Pre-Commit Checks section above and confirm both pass.
3. **Ask for SNOW ticket number** if the user hasn't provided one. Use AskQuestion:
- Prompt: "What is the SNOW Jira ticket number for this change?"
- Options: a text-free response, or "NO-SNOW (no ticket)"
Do NOT proceed with a commit until the ticket number is confirmed.
4. **Detect stacked PR situation.** Run `git log --oneline main..HEAD` or check `git branch --show-current` and its parent. If the current branch is NOT based directly off `main` (i.e., there are intermediate branches), ask:
- "This branch is based off `{parent_branch}`, not `main`. Should this be a stacked PR?"
- If yes: use `gt submit --stack` to submit the full stack
- If no: use `gt submit --no-edit` for just this branch
## Notes
- `gt submit --no-edit` creates PRs in **draft mode** when non-interactive
- Pre-commit hooks run automatically on `gt commit create`, but they are NOT a substitute for running the formatter + checkstyle commands manually beforehand
================================================
FILE: .github/CODEOWNERS
================================================
* @snowflakedb/Client
/src/main/java/net/snowflake/client/core/crl/** @snowflakedb/pki-oversight @snowflakedb/Client
/src/main/java/net/snowflake/client/core/*TrustManager* @snowflakedb/pki-oversight @snowflakedb/Client
================================================
FILE: .github/ISSUE_TEMPLATE/BUG_REPORT.md
================================================
---
name: Bug Report 🐞
about: Something isn't working as expected? Here is the right place to report.
labels: bug
---
:exclamation: If you need **urgent assistance** then [file a case with Snowflake Support](https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge).
Otherwise continue here.
Please answer these questions before submitting your issue.
In order to accurately debug the issue this information is required. Thanks!
1. What version of JDBC driver are you using?
2. What operating system and processor architecture are you using?
3. What version of Java are you using?
4. What did you do?
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
5. What did you expect to see?
What should have happened and what happened instead?
6. Can you set logging to DEBUG and collect the logs?
https://community.snowflake.com/s/article/How-to-generate-log-file-on-Snowflake-connectors
Before sharing any information, please be sure to review the log and remove any sensitive
information.
================================================
FILE: .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md
================================================
---
name: Feature Request 💡
about: Suggest a new idea for the project.
labels: feature
---
<!--
If you need urgent assistance then file the feature request using the support process:
https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge
otherwise continue here.
-->
## What is the current behavior?
## What is the desired behavior?
## How would this improve `snowflake-jdbc`?
## References, Other Background
================================================
FILE: .github/pull_request_template.md
================================================
# Overview
SNOW-XXXXX
## Pre-review self checklist
- [ ] PR branch is updated with all the changes from `master` branch
- [ ] The code is correctly formatted (run `mvn -P check-style validate`)
- [ ] New public API is not unnecessary exposed (run `mvn verify` and inspect `target/japicmp/japicmp.html`)
- [ ] The pull request name is prefixed with `SNOW-XXXX: `
- [ ] Code is in compliance with internal logging requirements
## External contributors - please answer these questions before submitting a pull request. Thanks!
1. What GitHub issue is this PR addressing? Make sure that there is an accompanying issue to your PR.
Issue: #NNNN
2. Fill out the following pre-review checklist:
- [ ] I am adding a new automated test(s) to verify correctness of my new code
- [ ] I am adding new logging messages
- [ ] I am modifying authorization mechanisms
- [ ] I am adding new credentials
- [ ] I am modifying OCSP code
- [ ] I am adding a new dependency or upgrading an existing one
- [ ] I am adding new public/protected component not marked with `@SnowflakeJdbcInternalApi` (note that public/protected methods/fields in classes marked with this annotation are already internal)
3. Please describe how your code solves the related issue.
Please write a short description of how your code change solves the related issue.
================================================
FILE: .github/repo_meta.yaml
================================================
# point_of_contact: the owner of this repository, can be a GitHub user or GitHub team
point_of_contact: @snowflakedb/client
# production: whether this repository meets the criteria for being "production", see https://snowflakecomputing.atlassian.net/wiki/spaces/CLO/pages/2239988967/Production+Repository+Criteria for criteria
production: true
# distributed: whether any source code in this repository is distributed directly to customers (e.g. driver and frontend software)
distributed: true
# modified: whether any open source dependencies in this repository have been modified
modified: true
# release_branches: list of release branch patterns, exact matches or regex is acceptable
release_branches:
- master
- release.*
# code_owners_file_present: whether there is a CODEOWNERS file in this repository
code_owners_file_present: true
# jira_project_issue_type: the jira issuetype used to raise issues related to this repository in the SNOW Jira project
jira_project_issue_type: Bug
# jira_area: the jira area that raised issues should use
jira_area: Developer Platform
================================================
FILE: .github/workflows/build-test.yml
================================================
name: Build and Test
on:
push:
branches:
- master
tags:
- v*
pull_request:
branches:
- master
- SNOW-**
- NO-SNOW-**
types: [opened, synchronize, reopened, labeled, unlabeled]
workflow_dispatch:
inputs:
logLevel:
default: warning
description: "Log level"
required: true
tags:
description: "Test scenario tags"
permissions:
contents: read
concurrency:
# older builds for the same pull request numer or branch should be cancelled
cancel-in-progress: true
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
jobs:
check-no-raw-system-calls:
name: Check No Raw System.getProperty/getenv/setProperty
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Check for raw System.getProperty/getenv/setProperty calls
shell: bash
run: ./ci/scripts/check_no_raw_system_calls.sh
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Build
shell: bash
env:
WHITESOURCE_API_KEY: ${{ secrets.WHITESOURCE_API_KEY }}
run: ./ci/build.sh
unit-test-linux:
name: Unit Tests Linux java 8
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
java-version: '8'
distribution: 'temurin'
cache: maven
- name: Unit Tests
shell: bash
env:
JAVA_TOOL_OPTIONS: "-Xms1g -Xmx2g"
run: ./mvnw -B -DjenkinsIT -Dskip.unitTests=false -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn test --batch-mode --show-version
unit-test-windows:
name: Unit Tests Windows java 8
runs-on: windows-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
java-version: '8'
distribution: 'temurin'
cache: maven
- name: Unit Tests
shell: cmd
env:
JAVA_TOOL_OPTIONS: "-Xms1g -Xmx2g"
run: .\mvnw.cmd -B -DjenkinsIT -Dskip.unitTests=false -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn test --batch-mode --show-version
unit-test-mac:
name: Unit Tests Mac java 8
runs-on: macos-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
java-version: '8'
distribution: 'zulu'
cache: maven
- name: Unit Tests
shell: bash
env:
JAVA_TOOL_OPTIONS: "-Xms1g -Xmx2g"
run: ./mvnw -B -DjenkinsIT -Dskip.unitTests=false -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn test --batch-mode --show-version
test-windows:
needs: [build, unit-test-linux, unit-test-windows, unit-test-mac]
name: ${{ matrix.runConfig.cloud }} Windows java ${{ matrix.runConfig.javaVersion }} JDBC${{ matrix.additionalMavenProfile }} ${{ matrix.category.name }}
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
runConfig: >-
${{
fromJSON(
(
github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'FULL-TEST-MATRIX') &&
'[
{"cloud":"AWS","javaVersion":"8"},
{"cloud":"GCP","javaVersion":"17"},
{"cloud":"AZURE","javaVersion":"21"}
]'
) ||
'[
{"cloud":"AWS","javaVersion":"8"},
{"cloud":"GCP","javaVersion":"11"},
{"cloud":"AZURE","javaVersion":"17"},
{"cloud":"AWS","javaVersion":"21"}
]'
)
}}
category: [{suites: 'ResultSetTestSuite', name: 'TestCategoryResultSet'},
{suites: 'StatementTestSuite,LoaderTestSuite', name: 'TestCategoryStatement,TestCategoryLoader'},
{suites: 'OthersTestSuite', name: 'TestCategoryOthers'},
{suites: 'DatabaseMetaDataTestSuite', name: 'TestCategoryDatabaseMetaData'},
{suites: 'ArrowTestSuite,ConnectionTestSuite,CoreTestSuite,DiagnosticTestSuite', name: 'TestCategoryArrow,TestCategoryConnection,TestCategoryCore,TestCategoryDiagnostic'},
{suites: 'FipsTestSuite', name: "TestCategoryFips"}]
additionalMavenProfile: ['']
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
java-version: ${{ matrix.runConfig.javaVersion }}
distribution: 'temurin'
cache: maven
- uses: actions/setup-python@v5
with:
python-version: '3.12'
architecture: 'x64'
- name: Tests
shell: cmd
env:
PARAMETERS_SECRET: ${{ secrets.PARAMETERS_SECRET }}
JDBC_PRIVATE_KEY_SECRET: ${{ secrets.JDBC_PRIVATE_KEY_SECRET }}
CLOUD_PROVIDER: ${{ matrix.runConfig.cloud }}
JDBC_TEST_SUITES: ${{ matrix.category.suites }}
ADDITIONAL_MAVEN_PROFILE: ${{ matrix.additionalMavenProfile }}
JAVA_TOOL_OPTIONS: "-Xms1g -Xmx4g"
run: ci\\test_windows.bat
test-mac:
needs: [build, unit-test-linux, unit-test-windows, unit-test-mac]
name: ${{ matrix.runConfig.cloud }} Mac java ${{ matrix.runConfig.javaVersion }} JDBC${{ matrix.additionalMavenProfile }} ${{ matrix.category.name }}
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
runConfig: >-
${{
fromJSON(
(
github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'FULL-TEST-MATRIX') &&
'[
{"cloud":"AWS","javaVersion":"8"},
{"cloud":"GCP","javaVersion":"17"},
{"cloud":"AZURE","javaVersion":"21"}
]'
) ||
'[
{"cloud":"AWS","javaVersion":"8"},
{"cloud":"AWS","javaVersion":"21"},
{"cloud":"GCP","javaVersion":"11"},
{"cloud":"AZURE","javaVersion":"17"},
{"cloud":"AWS","javaVersion":"21"}
]'
)
}}
category: [{suites: 'ResultSetTestSuite', name: 'TestCategoryResultSet'},
{suites: 'StatementTestSuite,LoaderTestSuite', name: 'TestCategoryStatement,TestCategoryLoader'},
{suites: 'OthersTestSuite', name: 'TestCategoryOthers'},
{suites: 'DatabaseMetaDataTestSuite', name: 'TestCategoryDatabaseMetaData'},
{suites: 'ArrowTestSuite,ConnectionTestSuite,CoreTestSuite,DiagnosticTestSuite', name: 'TestCategoryArrow,TestCategoryConnection,TestCategoryCore,TestCategoryDiagnostic'},
{suites: 'FipsTestSuite', name: "TestCategoryFips"}]
additionalMavenProfile: ['']
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
java-version: ${{ matrix.runConfig.javaVersion }}
distribution: 'zulu'
cache: maven
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install Homebrew Bash
shell: bash
run: brew install bash
- name: Tests
shell: bash
env:
PARAMETERS_SECRET: ${{ secrets.PARAMETERS_SECRET }}
JDBC_PRIVATE_KEY_SECRET: ${{ secrets.JDBC_PRIVATE_KEY_SECRET }}
CLOUD_PROVIDER: ${{ matrix.runConfig.cloud }}
JDBC_TEST_SUITES: ${{ matrix.category.suites }}
ADDITIONAL_MAVEN_PROFILE: ${{ matrix.additionalMavenProfile }}
JAVA_TOOL_OPTIONS: "-Xms1g -Xmx4g" # Increase surefire memory because arm64 macOS machines have not enough memory by default
run: /opt/homebrew/bin/bash ./ci/test_mac.sh
test-rocky:
needs: [build, unit-test-linux, unit-test-windows, unit-test-mac]
name: ${{ matrix.runConfig.cloud }} Rocky9 java ${{ matrix.runConfig.javaVersion }} JDBC${{ matrix.additionalMavenProfile }} ${{ matrix.category.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
runConfig: >-
${{
fromJSON(
(
github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'FULL-TEST-MATRIX') &&
'[
{"cloud":"AWS","javaVersion":"17","image":"jdbc-rockylinux9-openjdk17"}
]'
) ||
'[
{"cloud":"AWS","javaVersion":"8","image":"jdbc-rockylinux9-openjdk8"},
{"cloud":"GCP","javaVersion":"11","image":"jdbc-rockylinux9-openjdk11"},
{"cloud":"AZURE","javaVersion":"17","image":"jdbc-rockylinux9-openjdk17"},
{"cloud":"AWS","javaVersion":"21","image":"jdbc-rockylinux9-openjdk21"}
]'
)
}}
category: [{suites: 'ResultSetTestSuite', name: 'TestCategoryResultSet'},
{suites: 'StatementTestSuite,LoaderTestSuite', name: 'TestCategoryStatement,TestCategoryLoader'},
{suites: 'OthersTestSuite', name: 'TestCategoryOthers'},
{suites: 'DatabaseMetaDataTestSuite', name: 'TestCategoryDatabaseMetaData'},
{suites: 'ArrowTestSuite,ConnectionTestSuite,CoreTestSuite,DiagnosticTestSuite', name: 'TestCategoryArrow,TestCategoryConnection,TestCategoryCore,TestCategoryDiagnostic'},
{suites: 'FipsTestSuite', name: "TestCategoryFips"}]
additionalMavenProfile: ['']
steps:
- uses: actions/checkout@v5
- name: Tests
shell: bash
env:
PARAMETERS_SECRET: ${{ secrets.PARAMETERS_SECRET }}
JDBC_PRIVATE_KEY_SECRET: ${{ secrets.JDBC_PRIVATE_KEY_SECRET }}
CLOUD_PROVIDER: ${{ matrix.runConfig.cloud }}
TARGET_DOCKER_TEST_IMAGE: ${{ matrix.runConfig.image }}
JDBC_TEST_SUITES: ${{ matrix.category.suites }}
ADDITIONAL_MAVEN_PROFILE: ${{ matrix.additionalMavenProfile }}
JAVA_TOOL_OPTIONS: "-Xms1g -Xmx4g"
run: ./ci/test.sh
test-linux:
needs: [build, unit-test-linux, unit-test-windows, unit-test-mac]
name: ${{ matrix.runConfig.cloud }} Linux java on ${{ matrix.runConfig.image }} JDBC${{ matrix.runConfig.additionalMavenProfile }} ${{ matrix.category.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
runConfig: >-
${{
fromJSON(
(
github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'FULL-TEST-MATRIX') &&
'[
{"image":"jdbc-rockylinux8-openjdk8","cloud":"AWS","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk11","cloud":"AWS","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk17","cloud":"AWS","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk21","cloud":"AWS","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk17","cloud":"AZURE","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk17","cloud":"GCP","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk8","cloud":"AWS","additionalMavenProfile":"-Dthin-jar"},
{"image":"jdbc-rockylinux8-openjdk21","cloud":"AWS","additionalMavenProfile":"-Dthin-jar"}
]'
) ||
'[
{"image":"jdbc-rockylinux8-openjdk8","cloud":"AWS","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk11","cloud":"AWS","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk17","cloud":"AWS","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk21","cloud":"AWS","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk8","cloud":"AZURE","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk11","cloud":"AZURE","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk17","cloud":"AZURE","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk21","cloud":"AZURE","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk8","cloud":"GCP","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk11","cloud":"GCP","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk17","cloud":"GCP","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk21","cloud":"GCP","additionalMavenProfile":""},
{"image":"jdbc-rockylinux8-openjdk8","cloud":"AWS","additionalMavenProfile":"-Dthin-jar"},
{"image":"jdbc-rockylinux8-openjdk21","cloud":"AWS","additionalMavenProfile":"-Dthin-jar"},
{"image":"jdbc-rockylinux8-openjdk17","cloud":"AZURE","additionalMavenProfile":"-Dthin-jar"},
{"image":"jdbc-rockylinux8-openjdk17","cloud":"GCP","additionalMavenProfile":"-Dthin-jar"},
]'
)
}}
category: [{suites: 'ResultSetTestSuite', name: 'TestCategoryResultSet'},
{suites: 'StatementTestSuite,LoaderTestSuite', name: 'TestCategoryStatement,TestCategoryLoader'},
{suites: 'OthersTestSuite', name: 'TestCategoryOthers'},
{suites: 'DatabaseMetaDataTestSuite', name: 'TestCategoryDatabaseMetaData'},
{suites: 'ArrowTestSuite,ConnectionTestSuite,CoreTestSuite,DiagnosticTestSuite', name: 'TestCategoryArrow,TestCategoryConnection,TestCategoryCore,TestCategoryDiagnostic'},
{suites: 'FipsTestSuite', name: "TestCategoryFips"}]
steps:
- uses: actions/checkout@v5
- name: Tests
shell: bash
env:
PARAMETERS_SECRET: ${{ secrets.PARAMETERS_SECRET }}
JDBC_PRIVATE_KEY_SECRET: ${{ secrets.JDBC_PRIVATE_KEY_SECRET }}
CLOUD_PROVIDER: ${{ matrix.runConfig.cloud }}
TARGET_DOCKER_TEST_IMAGE: ${{ matrix.runConfig.image }}
JDBC_TEST_SUITES: ${{ matrix.category.suites }}
ADDITIONAL_MAVEN_PROFILE: ${{ matrix.runConfig.additionalMavenProfile }}
JAVA_TOOL_OPTIONS: "-Xms1g -Xmx4g"
run: ./ci/test.sh
test-fat-jar-slf4j:
name: ${{ matrix.cloud }} Fat Jar SLF4J (${{ matrix.variant }}) Test App
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
cloud: [ 'AWS', 'GCP', 'AZURE' ]
variant: [ 'default', 'fips']
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
cache: maven
- name: Test Fat Jar App (SLF4J)
shell: bash
env:
PARAMETERS_SECRET: ${{ secrets.PARAMETERS_SECRET }}
JDBC_PRIVATE_KEY_SECRET: ${{ secrets.JDBC_PRIVATE_KEY_SECRET }}
CLOUD_PROVIDER: ${{ matrix.cloud }}
run: ./fat-jar-test-app/run.sh ${{ matrix.variant }} slf4j
test-fat-jar-jul:
name: AWS Fat Jar JUL (${{ matrix.variant }}) Test App
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
variant: ['default', 'fips']
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
cache: maven
- name: Test Fat Jar App (JUL)
shell: bash
env:
PARAMETERS_SECRET: ${{ secrets.PARAMETERS_SECRET }}
JDBC_PRIVATE_KEY_SECRET: ${{ secrets.JDBC_PRIVATE_KEY_SECRET }}
CLOUD_PROVIDER: AWS
run: ./fat-jar-test-app/run.sh ${{ matrix.variant }} jul
================================================
FILE: .github/workflows/changelog.yml
================================================
name: Changelog Check
permissions:
contents: read
on:
pull_request:
types: [opened, synchronize, labeled, unlabeled]
branches:
- master
jobs:
check_change_log:
runs-on: ubuntu-latest
if: ${{!contains(github.event.pull_request.labels.*.name, 'NO-CHANGELOG-UPDATES')}}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Ensure CHANGELOG.md is updated
run: git diff --name-only --diff-filter=ACMRT ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | grep -wq "CHANGELOG.md"
================================================
FILE: .github/workflows/check-style.yml
================================================
name: Check Style
on:
pull_request:
branches:
- master
jobs:
check-style:
name: Check Style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check Style
shell: bash
run: mvn clean validate --batch-mode --show-version -P check-style
================================================
FILE: .github/workflows/cla_bot.yml
================================================
name: "CLA Assistant"
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened,closed,synchronize]
jobs:
CLAAssistant:
runs-on: ubuntu-latest
permissions:
actions: write
contents: write
pull-requests: write
statuses: write
steps:
- name: "CLA Assistant"
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
uses: contributor-assistant/github-action/@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PERSONAL_ACCESS_TOKEN : ${{ secrets.CLA_BOT_TOKEN }}
with:
path-to-signatures: 'signatures/version1.json'
path-to-document: 'https://github.com/snowflakedb/CLA/blob/main/README.md'
branch: 'main'
allowlist: 'dependabot[bot],github-actions,Jenkins User,_jenkins,sfc-gh-snyk-sca-sa,snyk-bot'
remote-organization-name: 'snowflake-eng'
remote-repository-name: 'cla-db'
================================================
FILE: .github/workflows/jira_close.yml
================================================
name: Jira closure
on:
issues:
types: [closed, deleted]
jobs:
close-issue:
runs-on: ubuntu-latest
steps:
- name: Extract issue from title
id: extract
env:
TITLE: '${{ github.event.issue.title }}'
run: |
jira=$(echo -n $TITLE | awk '{print $1}' | sed -e 's/://')
echo ::set-output name=jira::$jira
- name: Close Jira Issue
if: startsWith(steps.extract.outputs.jira, 'SNOW-')
env:
ISSUE_KEY: ${{ steps.extract.outputs.jira }}
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
run: |
JIRA_API_URL="${JIRA_BASE_URL}/rest/api/2/issue/${ISSUE_KEY}/transitions"
curl -X POST \
--url "$JIRA_API_URL" \
--user "${JIRA_USER_EMAIL}:${JIRA_API_TOKEN}" \
--header "Content-Type: application/json" \
--data "{
\"update\": {
\"comment\": [
{ \"add\": { \"body\": \"Closed on GitHub\" } }
]
},
\"fields\": {
\"customfield_12860\": { \"id\": \"11506\" },
\"customfield_10800\": { \"id\": \"-1\" },
\"customfield_12500\": { \"id\": \"11302\" },
\"customfield_12400\": { \"id\": \"-1\" },
\"resolution\": { \"name\": \"Done\" }
},
\"transition\": { \"id\": \"71\" }
}"
================================================
FILE: .github/workflows/jira_comment.yml
================================================
name: Jira comment
on:
issue_comment:
types: [created]
jobs:
comment-issue:
runs-on: ubuntu-latest
steps:
- name: Jira login
uses: atlassian/gajira-login@master
env:
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
- name: Extract issue from title
id: extract
env:
TITLE: "${{ github.event.issue.title }}"
run: |
jira=$(echo -n $TITLE | awk '{print $1}' | sed -e 's/://')
echo ::set-output name=jira::$jira
- name: Comment on issue
uses: atlassian/gajira-comment@master
if: startsWith(steps.extract.outputs.jira, 'SNOW-')
with:
issue: "${{ steps.extract.outputs.jira }}"
comment: "${{ github.event.comment.user.login }} commented:\n\n${{ github.event.comment.body }}\n\n${{ github.event.comment.html_url }}"
================================================
FILE: .github/workflows/jira_issue.yml
================================================
name: Jira creation
on:
issues:
types: [opened]
issue_comment:
types: [created]
jobs:
create-issue:
runs-on: ubuntu-latest
permissions:
issues: write
if: ((github.event_name == 'issue_comment' && github.event.comment.body == 'recreate jira' && github.event.comment.user.login == 'sfc-gh-mkeller') || (github.event_name == 'issues' && github.event.pull_request.user.login != 'whitesource-for-github-com[bot]'))
steps:
- name: Create JIRA Ticket
id: create
env:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
ISSUE_TITLE: ${{ github.event.issue.title }}
ISSUE_BODY: ${{ github.event.issue.body }}
ISSUE_URL: ${{ github.event.issue.html_url }}
run: |
# debug
#set -x
TMP_BODY=$(mktemp)
trap "rm -f $TMP_BODY" EXIT
# Escape special characters in title and body
TITLE=$(echo "${ISSUE_TITLE//`/\\`}" | sed 's/"/\\"/g' | sed "s/'/\\\'/g")
echo "${ISSUE_BODY//`/\\`}" | sed 's/"/\\"/g' | sed "s/'/\\\'/g" > $TMP_BODY
echo -e "\n\n_Created from GitHub Action_ for $ISSUE_URL" >> $TMP_BODY
BODY=$(cat "$TMP_BODY")
PAYLOAD=$(jq -n \
--arg issuetitle "$TITLE" \
--arg issuebody "$BODY" \
'{
fields: {
project: { key: "SNOW" },
issuetype: { name: "Bug" },
summary: $issuetitle,
description: $issuebody,
customfield_11401: { id: "14723" },
assignee: { id: "712020:e527ae71-55cc-4e02-9217-1ca4ca8028a2" },
components: [{ id: "19281" }],
labels: ["oss"],
priority: { id: "10001" }
}
}')
# Create JIRA issue using REST API
RESPONSE=$(curl -s -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-u "$JIRA_USER_EMAIL:$JIRA_API_TOKEN" \
"$JIRA_BASE_URL/rest/api/2/issue" \
-d "$PAYLOAD")
# Extract JIRA issue key from response
JIRA_KEY=$(echo "$RESPONSE" | jq -r '.key')
if [ "$JIRA_KEY" = "null" ] || [ -z "$JIRA_KEY" ]; then
echo "Failed to create JIRA issue"
echo "Response: $RESPONSE"
echo "Request payload: $PAYLOAD"
exit 1
fi
echo "Created JIRA issue: $JIRA_KEY"
echo "jira_key=$JIRA_KEY" >> $GITHUB_OUTPUT
- name: Update GitHub Issue
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPOSITORY: ${{ github.repository }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
JIRA_KEY: ${{ steps.create.outputs.jira_key }}
ISSUE_TITLE: ${{ github.event.issue.title }}
run: |
TITLE=$(echo "${ISSUE_TITLE//`/\\`}" | sed 's/"/\\"/g' | sed "s/'/\\\'/g")
PAYLOAD=$(jq -n \
--arg issuetitle "$TITLE" \
--arg jirakey "$JIRA_KEY" \
'{
title: ($jirakey + ": " + $issuetitle)
}')
# Update Github issue title with jira id
curl -s \
-X PATCH \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/$REPOSITORY/issues/$ISSUE_NUMBER" \
-d "$PAYLOAD"
if [ "$?" != 0 ]; then
echo "Failed to update GH issue. Payload was:"
echo "$PAYLOAD"
exit 1
fi
================================================
FILE: .github/workflows/semgrep.yml
================================================
---
name: Run semgrep checks
on:
pull_request:
branches: [master]
permissions:
contents: read
jobs:
run-semgrep-reusable-workflow:
uses: snowflakedb/reusable-workflows/.github/workflows/semgrep-v2.yml@main
secrets:
token: ${{ secrets.SEMGREP_APP_TOKEN }}
================================================
FILE: .github/workflows/snyk-issue.yml
================================================
name: Snyk Issue
on:
schedule:
- cron: '* */12 * * *'
workflow_dispatch:
permissions:
contents: read
issues: write
pull-requests: write
concurrency: snyk-issue
jobs:
snyk:
runs-on: ubuntu-latest
steps:
- name: checkout action
uses: actions/checkout@v4
with:
repository: snowflakedb/whitesource-actions
token: ${{ secrets.WHITESOURCE_ACTION_TOKEN }}
path: whitesource-actions
- name: set-env
run: echo "REPO=$(basename $GITHUB_REPOSITORY)" >> $GITHUB_ENV
- name: Jira Creation
uses: ./whitesource-actions/snyk-issue
with:
snyk_org: ${{ secrets.SNYK_ORG_ID_PUBLIC_REPO }}
snyk_token: ${{ secrets.SNYK_GITHUB_INTEGRATION_TOKEN_PUBLIC_REPO }}
jira_token: ${{ secrets.JIRA_TOKEN_PUBLIC_REPO }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .github/workflows/snyk-pr.yml
================================================
name: snyk-pr
on:
pull_request:
branches:
- master
permissions:
contents: read
issues: write
pull-requests: write
jobs:
snyk:
runs-on: ubuntu-latest
if: ${{ github.event.pull_request.user.login == 'sfc-gh-snyk-sca-sa' }}
steps:
- name: checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
fetch-depth: 0
- name: checkout action
uses: actions/checkout@v4
with:
repository: snowflakedb/whitesource-actions
token: ${{ secrets.WHITESOURCE_ACTION_TOKEN }}
path: whitesource-actions
- name: PR
uses: ./whitesource-actions/snyk-pr
env:
PR_TITLE: ${{ github.event.pull_request.title }}
with:
jira_token: ${{ secrets.JIRA_TOKEN_PUBLIC_REPO }}
gh_token: ${{ secrets.GITHUB_TOKEN }}
amend: false # true if you want the commit to be amended with the JIRA number
================================================
FILE: .github/workflows/snyk-scan.yml
================================================
name: Snyk Scan
on:
pull_request:
branches:
- master
schedule:
- cron: '0 6 * * 1'
workflow_dispatch:
permissions:
contents: read
pull-requests: read
jobs:
detect-changes:
name: Detect Changed Files
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
outputs:
any-pom: ${{ steps.changes.outputs.any-pom }}
parent-pom: ${{ steps.changes.outputs.parent-pom }}
public-pom: ${{ steps.changes.outputs.public-pom }}
thin-public-pom: ${{ steps.changes.outputs.thin-public-pom }}
fips-public-pom: ${{ steps.changes.outputs.fips-public-pom }}
steps:
- uses: dorny/paths-filter@v3
id: changes
with:
filters: |
any-pom:
- '**/pom.xml'
parent-pom:
- 'parent-pom.xml'
public-pom:
- 'public_pom.xml'
thin-public-pom:
- 'thin_public_pom.xml'
fips-public-pom:
- 'FIPS/public_pom.xml'
snyk-aggregate-test:
name: Snyk Aggregate Project Test
needs: detect-changes
if: needs.detect-changes.outputs.any-pom == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Snyk aggregate project test
uses: snyk/actions/maven@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
SNYK_CFG_ORG: ${{ secrets.SNYK_ORG_ID }}
MAVEN_OPTS: -DskipTests -Dmaven.test.skip=true -Dmaven.main.skip=true
with:
args: --maven-aggregate-project --all-projects --policy-path=.snyk
command: test
snyk-parent-pom-test:
name: Snyk Parent POM Test
needs: detect-changes
if: needs.detect-changes.outputs.parent-pom == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Snyk parent-pom test
uses: snyk/actions/maven@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
SNYK_CFG_ORG: ${{ secrets.SNYK_ORG_ID }}
MAVEN_OPTS: -DskipTests -Dmaven.test.skip=true -Dmaven.main.skip=true
with:
args: --file=parent-pom.xml --package-manager=maven
command: test
snyk-public-pom-test:
name: Snyk Public POM Test
needs: detect-changes
if: needs.detect-changes.outputs.public-pom == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Snyk public-pom test
uses: snyk/actions/maven@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
SNYK_CFG_ORG: ${{ secrets.SNYK_ORG_ID }}
MAVEN_OPTS: -DskipTests -Dmaven.test.skip=true -Dmaven.main.skip=true
with:
args: --file=public_pom.xml --package-manager=maven
command: test
snyk-thin-public-pom-test:
name: Snyk Thin Public POM Test
needs: detect-changes
if: needs.detect-changes.outputs.thin-public-pom == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Snyk thin-public-pom test
uses: snyk/actions/maven@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
SNYK_CFG_ORG: ${{ secrets.SNYK_ORG_ID }}
MAVEN_OPTS: -DskipTests -Dmaven.test.skip=true -Dmaven.main.skip=true
with:
args: --file=thin_public_pom.xml --package-manager=maven
command: test
snyk-fips-public-pom-test:
name: Snyk FIPS Public POM Test
needs: detect-changes
if: needs.detect-changes.outputs.fips-public-pom == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Snyk FIPS public-pom test
uses: snyk/actions/maven@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
SNYK_CFG_ORG: ${{ secrets.SNYK_ORG_ID }}
MAVEN_OPTS: -DskipTests -Dmaven.test.skip=true -Dmaven.main.skip=true
with:
args: --file=FIPS/public_pom.xml --package-manager=maven
command: test
snyk-monitor:
name: Snyk Monitor (${{ matrix.pom }})
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
pom:
- pom.xml
- parent-pom.xml
- public_pom.xml
- thin_public_pom.xml
- FIPS/pom.xml
- FIPS/public_pom.xml
- fat-jar-test-app/pom.xml
- ci/wif/aws-lambda/pom.xml
- ci/wif/azure-function/pom.xml
- ci/wif/gcp-function/pom.xml
steps:
- uses: actions/checkout@v4
- name: Snyk monitor ${{ matrix.pom }}
uses: snyk/actions/maven@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
SNYK_CFG_ORG: ${{ secrets.SNYK_ORG_ID }}
MAVEN_OPTS: -DskipTests -Dmaven.test.skip=true -Dmaven.main.skip=true
with:
args: --file=${{ matrix.pom }} --package-manager=maven --policy-path=.snyk --project-name=${{ matrix.pom }} --remote-repo-url=https://github.com/snowflakedb/snowflake-jdbc
command: monitor
================================================
FILE: .gitignore
================================================
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Exception: Keep minicore native libraries
!src/main/resources/minicore/**/*.dll
!src/main/resources/minicore/**/*.so
!src/main/resources/minicore/**/*.dylib
!src/main/resources/minicore/**/*.a
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
target/*
# IDE Specific files #
######################
.idea/*
*.iml
nb-configuration.xml
nbactions.xml
# For snowfalke internal use #
##############################
dependency-reduced-pom.xml
henplus/*
login.defaults
rt_build.sh
sfsql
sfsql.cmd
snowflake.jceks
thin/*
.svnignore
mvn_settings.xml
deploy.sh
*-maven-metadata.xml
Dockerfile.build
parameters*.json
snowflake-whitelist
Golang
ClientTelemetryFramework
lib/*
.wiremock/**
# WhiteSource Scan
wss*.config
wss-unified-agent.jar
whitesource/
*.swp
#created in some tests
placeholder
#vs code
.vscode/
# SSH private key for WIF tests
ci/wif/parameters/rsa_wif_aws_azure
ci/wif/parameters/rsa_wif_gcp
ci/wif/parameters/rsa_gcp_function
# WIF function builds
ci/wif/*/target/
================================================
FILE: .mvn/wrapper/maven-wrapper.properties
================================================
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# NOTE: Maven 3.9 is incompatible with the linkage checker rules
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.8/apache-maven-3.8.8-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
================================================
FILE: .pre-commit-config.yaml
================================================
repos:
- repo: git@github.com:snowflakedb/casec_precommit.git
rev: v1.35.5
hooks:
- id: secret-scanner
================================================
FILE: CHANGELOG.md
================================================
#### For all official JDBC Release Notes please refer to https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc
# Changelog
- v4.2.1-SNAPSHOT
- Fixed path traversal via server-controlled filenames in `SnowflakeFileTransferAgent` GET destination filename derivation; backslash separators are now stripped and traversal/absolute basenames are rejected (snowflakedb/snowflake-jdbc#2622).
- v4.2.0
- Extended the `SKIP_TOKEN_FILE_PERMISSIONS_VERIFICATION` environment variable to also bypass permission verification on the `connections.toml` config file and on the credential cache file (`credential_cache_v1.json`), unblocking driver use in SPCS environments where strict 0600/0700 ownership cannot be guaranteed (snowflakedb/snowflake-jdbc#2614)
- Fixed NPE in `RestRequest.sendIBHttpErrorEvent` when `SFSession.getTelemetryClient()` returns null because the session URL is not yet set; a `NoOpTelemetryClient` is now returned instead, allowing the original HTTP error to be surfaced to the caller (snowflakedb/snowflake-jdbc#2610)
- Added support for attaching the SPCS service-identifier token (`SPCS_TOKEN`) to login requests when the driver is running inside an SPCS container (gated on the `SNOWFLAKE_RUNNING_INSIDE_SPCS` environment variable; token read from `/snowflake/session/spcs_token`) (snowflakedb/snowflake-jdbc#2603)
- Added libc family and version detection (`LIBC_FAMILY`, `LIBC_VERSION`) to the `CLIENT_ENVIRONMENT` section of the login request on Linux (snowflakedb/snowflake-jdbc#2596)
- Fixed NPE in `SFTrustManager.validateRevocationStatusMain` when the OCSP cache contains a non-SUCCESSFUL response (e.g. `unauthorized(6)`); the response is now surfaced as an `SFOCSPException` so cache eviction and fail-open run normally (snowflakedb/snowflake-jdbc#2597)
- Added IPv6 support for cloud metadata services so Workload Identity Federation and platform detection work on IPv6-only instances (snowflakedb/snowflake-jdbc#2586):
- GCP WIF attestation now uses hostname `metadata.google.internal` instead of the IPv4 link-local address.
- EC2 instance detection probes the IPv4 and IPv6 IMDS endpoints (`[fd00:ec2::254]`) in parallel so detection succeeds on IPv6-only instances without doubling the detection budget on dual-stack hosts.
- Added `enableCopyResultSet` connection property (default `false`): when `true`, `Statement.execute()` exposes the COPY INTO per-file metadata result set via `getResultSet()` instead of consuming it internally (snowflakedb/snowflake-jdbc#2592)
- Migrated CI test images from CentOS 7 (EOL) to Rocky Linux 8 (snowflakedb/snowflake-jdbc#2578)
- Fixed NPE "The URI scheme of endpointOverride must not be null" happening during file transfer (e.g. PUT) in some use-cases (snowflakedb/snowflake-jdbc#2572)
- Fixed connections.toml auto-configuration behaviour (snowflakedb/snowflake-jdbc#2591):
- now defaulting to port 443 instead of 80 when neither port nor protocol is specified
- config coming from the JDBC connection string are no longer ignored when auto-configuration sourced items also present (when both present, direct connection config takes precedence)
- Fixed protocol field in connections.toml being ignored, causing connections to always use HTTPS (snowflakedb/snowflake-jdbc#2585)
- Fixed SecurityException on credential cache file ownership check in containers where JVM returns '?' for user.name (snowflakedb/snowflake-jdbc#2600).
- Fixed credential cache delete operations ignoring clientStoreTemporaryCredential=false setting (snowflakedb/snowflake-jdbc#2600).
- Fixed S3 transfer thread pool leak during repeated PUT/GET operations causing possible OOM (snowflakedb/snowflake-jdbc#2602).
- Bumped BouncyCastle to 1.84 to address CVE-2026-0636, CVE-2026-5588, and CVE-2026-5598 (snowflakedb/snowflake-jdbc#2593).
- Added `workloadIdentityAwsExternalId` connection property to support AWS STS external ID in Workload Identity Federation role-chaining flows (snowflakedb/snowflake-jdbc#2565).
- Bumped grpc-java to 1.81.1 now that they also upgraded to netty 4.1.132.Final as the second part of PR 2561, and also netty itself to 4.1.133.Final to address several CVE (snowflakedb/snowflake-jdbc#2611).
- v4.1.0
- Added warning about using plain HTTP OAuth endpoints (snowflakedb/snowflake-jdbc#2556).
- Fix initializing ObjectMapper when DATE_OUTPUT_FORMAT is specified (snowflakedb/snowflake-jdbc#2545).
- Fix Netty native library conflict in thin JAR (snowflakedb/snowflake-jdbc#2559)
- Bumped netty to 4.1.132.Final to address CVE-2026-33870 (High) and CVE-2026-33871 (High) (snowflakedb/snowflake-jdbc#2561)
- Added getRole, getWarehouse and getDatabase API extension methods (snowflakedb/snowflake-jdbc#2564)
- Fix driver failure when security manager prohibits access to system properties, environment variables and modifying security providers (snowflakedb/snowflake-jdbc#2563)
- Removed the io.netty.tryReflectionSetAccessible system property setting as it's no longer needed with modern Arrow/Netty versions (snowflakedb/snowflake-jdbc#2563)
- Fixed crash in getColumns operation when table contained unrecognised column type (snowflakedb/snowflake-jdbc#2568).
- Fixed session expiration when multiple sessions have different heartbeat intervals (snowflakedb/snowflake-jdbc#2566).
- Merge QueryContext from failed query responses (snowflakedb/snowflake-jdbc#2570)
- v4.0.2
- Fix expired session token renewal when polling results (snowflakedb/snowflake-jdbc#2489)
- Fix missing minicore async initialization that was dropped during public API restructuring in v4.0.0 (snowflakedb/snowflake-jdbc#2501)
- Adjust level of logging during Driver initialization (snowflakedb/snowflake-jdbc#2504)
- Add sanitization for nonProxyHosts RegEx patterns (snowflakedb/snowflake-jdbc#2506)
- Fix bug with malformed file during S3 upload (snowflakedb/snowflake-jdbc#2502)
- Added periodic closure of sockets closed by the remote end (snowflakedb/snowflake-jdbc#2481).
- Add internal API usage telemetry tracker (snowflakedb/snowflake-jdbc#2509)
- Change S3 Client's multipart threshold to 16MB (snowflakedb/snowflake-jdbc#2526)
- Fixed fat jar with S3 iteration, the problem of not finding class `software.amazon.awssdk.transfer.s3.internal.ApplyUserAgentInterceptor` (snowflakedb/snowflake-jdbc#2519).
- Removed Conscrypt from shading to prevent `failed to find class org/conscrypt/CryptoUpcalls` native error (snowflakedb/snowflake-jdbc#2519).
- Add logging implementation to CLIENT_ENVIRONMENT telemetry (snowflakedb/snowflake-jdbc#2527)
- Fix NPE when HOME directory cache is not available (snowflakedb/snowflake-jdbc#2534)
- Bumped `commons-compress` dependency to latest (1.28.0) to address CVE-2024-25710 and CVE-2024-26308 (snowflakedb/snowflake-jdbc#2538)
- Add SLF4J bridge from shaded dependencies to `SFLogger` (snowflakedb/snowflake-jdbc#2543)
- Fixed proxy authentication when connecting to GCP (snowflakedb/snowflake-jdbc#2540)
- Fixed bug where called-provided schema was ignored in getStreams() (snowflakedb/snowflake-jdbc#2546)
- Fixed S3 error handling manifested with `NullPointerException` (snowflakedb/snowflake-jdbc#2550)
- v4.0.1
- Add /etc/os-release data to Minicore telemetry (snowflakedb/snowflake-jdbc#2470)
- Fix incorrect encryption algorithm chosen when a file was put to S3 with client_encryption_key_size account parameter set to 256 (snowflakedb/snowflake-jdbc#2472)
- Fixed fat jar with S3 iteration, the problem of not finding class `software.amazon.awssdk.transfer.s3.internal.ApplyUserAgentInterceptor` (snowflakedb/snowflake-jdbc#2474).
- Removed Conscrypt from shading to prevent `failed to find class org/conscrypt/CryptoUpcalls` native error (snowflakedb/snowflake-jdbc#2474).
- Update BouncyCastle dependencies to fix CVE-2025-8916 CVE-2025-8885 (snowflakedb/snowflake-jdbc#2479)
- Fix external browser authentication after changing enum name. Manifested with `Invalid connection URL: Invalid SSOUrl found` error (snowflakedb/snowflake-jdbc#2475).
- Rolled back external browser authenticator name to `externalbrowser` (snowflakedb/snowflake-jdbc#2475).
__Due to some underlying issues, Snowflake recommends that AWS and Azure customers do not upgrade to this version if you use PUT or GET queries. Instead, Snowflake recommends that you upgrade directly to version 4.0.1. If you have already upgraded to this version, please upgrade to version 4.0.1 as soon as possible.__
- v4.0.0
- Bumped netty to 4.1.130.Final to address CVE-2025-67735 (snowflakedb/snowflake-jdbc#2447)
- Fix OCSP HTTP client cache to honor per-connection proxy settings (snowflakedb/snowflake-jdbc#2449)
- Mask secrets in exception logging (snowflakedb/snowflake-jdbc#2457)
- Fix NPE when sending in-band telemetry without HTTP response (snowflakedb/snowflake-jdbc#2460)
- Migrate from AWS SDK v1 to AWS SDK v2 (snowflakedb/snowflake-jdbc#2385 snowflakedb/snowflake-jdbc#2393)
- Return column_size value in database metadata commands as in JDBC spec (snowflakedb/snowflake-jdbc#2418)
- Migrate Azure storage from v5 to v12 (snowflakedb/snowflake-jdbc#2417)
- Enable bundled BouncyCastle for private key decryption by default (snowflakedb/snowflake-jdbc#2452)
- Rename BouncyCastle JVM property from net.snowflake.jdbc.enableBouncyCastle to net.snowflake.jdbc.useBundledBouncyCastleForPrivateKeyDecryption (snowflakedb/snowflake-jdbc#2452).
- Major public API restructuring: move all public APIs to net.snowflake.client.api.* package hierarchy (snowflakedb/snowflake-jdbc#2403):
- Add new unified QueryStatus class in public API that replaces the deprecated QueryStatus enum and QueryStatusV2 class.
- Add new public API interfaces for stream upload/download configuration (DownloadStreamConfig, UploadStreamConfig).
- Add SnowflakeDatabaseMetaData interface to public API for database metadata operations.
- Add SnowflakeAsyncResultSet interface to public API for async query operations.
- Add SnowflakeResultSetSerializable interface to public API.
- Deprecate net.snowflake.client.jdbc.SnowflakeDriver in favor of new net.snowflake.client.api.driver.SnowflakeDriver.
- Move internal classes to net.snowflake.client.internal.* package hierarchy.
- Removed deprecated com.snowflake.client.jdbc.SnowflakeDriver class.
- Removed deprecated QueryStatus enum from net.snowflake.client.core package.
- Removed deprecated QueryStatusV2 class from net.snowflake.client.jdbc package.
- Removed deprecated SnowflakeType enum from net.snowflake.client.jdbc package.
- v3.28.0
- Ability to choose connection configuration in auto configuration file by a parameter in JDBC url. (snowflakedb/snowflake-jdbc#2369)
- Bumped grpc-java to 1.77.0 to address CVE-2025-58057 from transient dep (snowflakedb/snowflake-jdbc#2415)
- Fix Connection and socket timeout are now propagated to HTTP client (snowflakedb/snowflake-jdbc#2394).
- Fix Azure 503 retries and configure it with the putGetMaxRetries parameter (snowflakedb/snowflake-jdbc#2422).
- Improved retries for SSLHandshakeException errors caused by transient EOFException (snowflakedb/snowflake-jdbc#2423)
- Introduced shared library([source code](https://github.com/snowflakedb/universal-driver/tree/main/sf_mini_core)) for extended telemetry to identify and prepare testing platform for native rust extensions (snowflakedb/snowflake-jdbc#2430)
- Bumped netty to 4.1.128.Final to address CVE-2025-59419 (snowflakedb/snowflake-jdbc#2389)
- v3.27.1
- Added platform detection on login to set PLATFORM metric in CLIENT_ENVIRONMENT (snowflakedb/snowflake-jdbc#2351)
- Disable DatabaseMetaDataLatestIT::testUseConnectionCtx test (snowflakedb/snowflake-jdbc#2367)
- Fix IT tests to construct OAuth scopes correctly (snowflakedb/snowflake-jdbc#2366)
- Fix exponential backoff retry time for non-auth requests (snowflakedb/snowflake-jdbc#2370)
- Upgrade aws-sdk to 1.12.792 and add STS dependency (snowflakedb/snowflake-jdbc#2361)
- Add rockylinux9 CI tests as part of RHEL 9 support (snowflakedb/snowflake-jdbc#2368)
- Bumped grpc-java to 1.76.0 to address CVE-2025-58056 from transient dep (snowflakedb/snowflake-jdbc#2371)
- Added `workloadIdentityImpersonationPath` config option for `authenticator=WORKLOAD_IDENTITY` allowing workloads to authenticate as a different identity through transitive service account impersonation (snowflakedb/snowflake-jdbc#2348)
- Added support for authentication as a different identity through transitive IAM role impersonation for AWS (snowflakedb/snowflake-jdbc#2364)
- Add AWS identity detection with ARN validation (snowflakedb/snowflake-jdbc#2379)
- v3.27.0
- Added the `changelog.yml` GitHub workflow to ensure changelog is updated on release PRs (snowflakedb/snowflake-jdbc#2340).
- Added HTTP 307 & 308 retries in case of internal IP redirects (snowflakedb/snowflake-jdbc#2344)
- Make PAT creation return `ResultSet` when using `execute` method (snowflakedb/snowflake-jdbc#2343)
- Renamed CRL_REVOCATION_CHECK_MODE to CERT_REVOCATION_CHECK_MODE in CLIENT_ENVIRONMENT metrics (snowflakedb/snowflake-jdbc#2349)
- Test coverage for multistatement jdbc (snowflakedb/snowflake-jdbc#2318).
- Fixed permission check for .toml config file (snowflakedb/snowflake-jdbc#2270).
- Bumped netty to 4.1.127.Final to address CVE-2025-58056 and CVE-2025-58057 (snowflakedb/snowflake-jdbc#2354)
- Add support for x-snowflake-session sticky HTTP session header returned by Snowflake (snowflakedb/snowflake-jdbc#2357)
- Added support for Interval Year-Month and Day-Time types in JDBC (snowflakedb/snowflake-jdbc#2345).
- Added support for Decfloat types in JDBC (snowflakedb/snowflake-jdbc#2329, snowflakedb/snowflake-jdbc#2332).
- Fixed pattern search for file when QUOTED_IDENTIFIERS_IGNORE_CASE enabled (snowflakedb/snowflake-jdbc#2333)
- Added support for CRL (certificate revocation list) (snowflakedb/snowflake-jdbc#2287).
================================================
FILE: FIPS/.gitignore
================================================
.idea/
lib/
target/
dependency-reduced-pom.xml
generated_public_pom.xml
================================================
FILE: FIPS/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>net.snowflake</groupId>
<artifactId>snowflake-jdbc-parent</artifactId>
<version>4.2.1-SNAPSHOT</version>
<relativePath>../parent-pom.xml</relativePath>
</parent>
<artifactId>snowflake-jdbc-fips</artifactId>
<version>4.2.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>snowflake-jdbc-fips</name>
<url>http://maven.apache.org</url>
<prerequisites>
<maven>3.3.9</maven>
</prerequisites>
<!-- dummy scm connection required to get the buildnumber plugin working -->
<scm>
<connection>scm:svn:http://127.0.0.1/svn/dummy</connection>
<developerConnection>scm:svn:https://127.0.0.1/svn/dummy</developerConnection>
<tag>HEAD</tag>
<url>http://127.0.0.1/websvn/dummy</url>
</scm>
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bc-fips</artifactId>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-fips</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<sourceDirectory>${basedir}/../src/main/java</sourceDirectory>
<testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>${basedir}/../src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.dylib</exclude>
<exclude>**/*.so</exclude>
<exclude>**/*.dll</exclude>
<exclude>**/*.a</exclude>
</excludes>
</resource>
<resource>
<directory>${basedir}/../src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**/*.dylib</include>
<include>**/*.so</include>
<include>**/*.dll</include>
<include>**/*.a</include>
</includes>
</resource>
</resources>
<testResources>
<testResource>
<directory>${basedir}/../src/test/resources</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${version.plugin.install}</version>
<executions>
<execution>
<id>install-tika-core</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${basedir}/../dependencies/tika-core-${tika.version}.jar</file>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>${tika.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-memory-pom</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${basedir}/../dependencies/arrow-memory-${arrow.version}.pom</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory</artifactId>
<version>${arrow.version}</version>
<packaging>pom</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-memory-core</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${basedir}/../dependencies/arrow-memory-core-${arrow.version}.jar</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-core</artifactId>
<version>${arrow.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-memory-unsafe</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${basedir}/../dependencies/arrow-memory-unsafe-${arrow.version}.jar</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-unsafe</artifactId>
<version>${arrow.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-memory-netty-buffer-patch</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${basedir}/../dependencies/arrow-memory-netty-buffer-patch-${arrow.version}.jar</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-netty-buffer-patch</artifactId>
<version>${arrow.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-format</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${basedir}/../dependencies/arrow-format-${arrow.version}.jar</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-format</artifactId>
<version>${arrow.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-vector</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${basedir}/../dependencies/arrow-vector-${arrow.version}.jar</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-vector</artifactId>
<version>${arrow.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${version.plugin.clean}</version>
<configuration>
<excludeDefaultDirectories/>
<filesets>
<fileset>
<directory>lib</directory>
<includes>
<include>*.jar</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${version.plugin.compiler}</version>
<configuration>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<executable>javac</executable>
<fork>true</fork>
<source>8</source>
<target>8</target>
<compilerArgs>
<arg>-Xlint:all,-path</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${version.plugin.surefire}</version>
<configuration>
<excludes>
<exclude>**/*SFTrustManagerTest.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${version.plugin.jacoco}</version>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>target/jacoco-ut.exec</destFile>
</configuration>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>target/jacoco-ut.exec</dataFile>
<outputDirectory>target/jacoco-ut</outputDirectory>
</configuration>
</execution>
</executions>
<configuration>
<skip>${jacoco.skip.instrument}</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${version.plugin.jar}</version>
<configuration>
<archive>
<manifest>
<mainClass>net.snowflake.client.api.driver.SnowflakeDriver</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>${version.plugin.dependency}</version>
<executions>
<execution>
<id>install-jar</id>
<phase>install</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
</artifactItem>
</artifactItems>
<outputDirectory>lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${version.plugin.source}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${version.plugin.javadoc}</version>
<configuration>
<source>8</source>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${version.plugin.projectinforeports}</version>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<id>self-contained-jar</id>
<activation>
<property>
<name>!not-self-contained-jar</name>
</property>
</activation>
<build>
<resources>
<resource>
<directory>${basedir}/../src/main/resources-fat-jar</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-fat-jar-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${basedir}/../src/main/java-fat-jar</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>${version.plugin.buildnumber}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>create-timestamp</goal>
</goals>
</execution>
</executions>
<configuration>
<timestampFormat>yyyyMMddHHmmss</timestampFormat>
<timestampPropertyName>buildNumber.timestamp</timestampPropertyName>
<doCheck>false</doCheck>
<revisionOnScmFailure/>
<doUpdate>false</doUpdate>
<!--- Note for those who come later. If you specify "buildNumber" in the items field, it becomes an incrementing buildNumber
AFAIK (and I spent a lot of time on this) it is impossible to get the SCM rev number and incrementing build number at the same time -->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${version.plugin.shade}</version>
<configuration>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<relocation>
<pattern>net.snowflake.common</pattern>
<shadedPattern>${shadeBase}.snowflake.common</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache</pattern>
<shadedPattern>${shadeBase}.apache</shadedPattern>
</relocation>
<relocation>
<pattern>org.slf4j</pattern>
<shadedPattern>${shadeBase}.org.slf4j</shadedPattern>
</relocation>
<relocation>
<pattern>software.amazon.awssdk</pattern>
<shadedPattern>${shadeBase}.software.amazon.awssdk</shadedPattern>
</relocation>
<relocation>
<pattern>software.amazon.encryption.s3</pattern>
<shadedPattern>${shadeBase}.software.amazon.encryption.s3</shadedPattern>
</relocation>
<relocation>
<pattern>software.amazon.eventstream</pattern>
<shadedPattern>${shadeBase}.software.amazon.eventstream</shadedPattern>
</relocation>
<relocation>
<pattern>software.amazon.ion</pattern>
<shadedPattern>${shadeBase}.software.amazon.ion</shadedPattern>
</relocation>
<relocation>
<pattern>org.reactivestreams</pattern>
<shadedPattern>${shadeBase}.reactivestreams</shadedPattern>
</relocation>
<relocation>
<pattern>org.jvnet.staxex</pattern>
<shadedPattern>${shadeBase}.jvnet.staxex</shadedPattern>
</relocation>
<relocation>
<pattern>jakarta.xml.soap</pattern>
<shadedPattern>${shadeBase}.jakarta.xml.soap</shadedPattern>
</relocation>
<relocation>
<pattern>jakarta.activation</pattern>
<shadedPattern>${shadeBase}.jakarta.activation</shadedPattern>
</relocation>
<relocation>
<pattern>com.azure</pattern>
<shadedPattern>${shadeBase}.azure</shadedPattern>
</relocation>
<relocation>
<pattern>com.fasterxml</pattern>
<shadedPattern>${shadeBase}.fasterxml</shadedPattern>
</relocation>
<relocation>
<pattern>com.google</pattern>
<shadedPattern>${shadeBase}.google</shadedPattern>
</relocation>
<!-- google packages should be relocated explicitly to avoid problems with properties files renaming -->
<relocation>
<pattern>google.api</pattern>
<shadedPattern>${shadeBase}.google.api</shadedPattern>
</relocation>
<relocation>
<pattern>google.apps</pattern>
<shadedPattern>${shadeBase}.google.apps</shadedPattern>
</relocation>
<relocation>
<pattern>google.cloud</pattern>
<shadedPattern>${shadeBase}.google.cloud</shadedPattern>
</relocation>
<relocation>
<pattern>google.geo</pattern>
<shadedPattern>${shadeBase}.google.geo</shadedPattern>
</relocation>
<relocation>
<pattern>google.iam</pattern>
<shadedPattern>${shadeBase}.google.iam</shadedPattern>
</relocation>
<relocation>
<pattern>google.logging</pattern>
<shadedPattern>${shadeBase}.google.logging</shadedPattern>
</relocation>
<relocation>
<pattern>google.longrunning</pattern>
<shadedPattern>${shadeBase}.google.longrunning</shadedPattern>
</relocation>
<relocation>
<pattern>google.monitoring</pattern>
<shadedPattern>${shadeBase}.google.monitoring</shadedPattern>
</relocation>
<relocation>
<pattern>google.protobuf</pattern>
<shadedPattern>${shadeBase}.google.protobuf</shadedPattern>
</relocation>
<relocation>
<pattern>google.rpc</pattern>
<shadedPattern>${shadeBase}.google.rpc</shadedPattern>
</relocation>
<relocation>
<pattern>google.shopping</pattern>
<shadedPattern>${shadeBase}.google.shopping</shadedPattern>
</relocation>
<relocation>
<pattern>google.storage</pattern>
<shadedPattern>${shadeBase}.google.storage</shadedPattern>
</relocation>
<relocation>
<pattern>google.type</pattern>
<shadedPattern>${shadeBase}.google.type</shadedPattern>
</relocation>
<relocation>
<pattern>org.joda</pattern>
<shadedPattern>${shadeBase}.joda</shadedPattern>
</relocation>
<relocation>
<pattern>javax.servlet</pattern>
<shadedPattern>${shadeBase}.javax.servlet</shadedPattern>
</relocation>
<relocation>
<pattern>org.jsoup</pattern>
<shadedPattern>${shadeBase}.org.jsoup</shadedPattern>
</relocation>
<relocation>
<pattern>com.nimbusds</pattern>
<shadedPattern>${shadeBase}.com.nimbusds</shadedPattern>
</relocation>
<relocation>
<pattern>javax.annotation</pattern>
<shadedPattern>${shadeBase}.javax.annotation</shadedPattern>
</relocation>
<relocation>
<pattern>net.jcip</pattern>
<shadedPattern>${shadeBase}.net.jcip</shadedPattern>
</relocation>
<relocation>
<pattern>net.minidev</pattern>
<shadedPattern>${shadeBase}.net.minidev</shadedPattern>
</relocation>
<relocation>
<pattern>org.objectweb</pattern>
<shadedPattern>${shadeBase}.org.objectweb</shadedPattern>
</relocation>
<relocation>
<pattern>io.netty</pattern>
<shadedPattern>${shadeBase}.io.netty</shadedPattern>
</relocation>
<relocation>
<pattern>com.carrotsearch</pattern>
<shadedPattern>${shadeBase}.com.carrotsearch</shadedPattern>
</relocation>
<relocation>
<pattern>io.opencensus</pattern>
<shadedPattern>${shadeBase}.opencensus</shadedPattern>
</relocation>
<relocation>
<pattern>io.opentelemetry</pattern>
<shadedPattern>${shadeBase}.opentelemetry</shadedPattern>
</relocation>
<relocation>
<pattern>org.threeten</pattern>
<shadedPattern>${shadeBase}.threeten</shadedPattern>
</relocation>
<relocation>
<pattern>io.grpc</pattern>
<shadedPattern>${shadeBase}.grpc</shadedPattern>
</relocation>
<relocation>
<pattern>META-INF.native.io_grpc_netty_shaded_netty_tcnative</pattern>
<shadedPattern>META-INF.native.${shadeNativeBase}_grpc_netty_shaded_netty_tcnative</shadedPattern>
</relocation>
<relocation>
<pattern>META-INF.native.libio_grpc_netty_shaded_netty_tcnative</pattern>
<shadedPattern>META-INF.native.lib${shadeNativeBase}_grpc_netty_shaded_netty_tcnative</shadedPattern>
</relocation>
<relocation>
<pattern>META-INF.native.io_grpc_netty_shaded_netty_transport_native_epoll</pattern>
<shadedPattern>META-INF.native.${shadeNativeBase}_grpc_netty_shaded_netty_transport_native_epoll</shadedPattern>
</relocation>
<relocation>
<pattern>META-INF.native.libio_grpc_netty_shaded_netty_transport_native_epoll</pattern>
<shadedPattern>META-INF.native.lib${shadeNativeBase}_grpc_netty_shaded_netty_transport_native_epoll</shadedPattern>
</relocation>
<relocation>
<pattern>org.checkerframework</pattern>
<shadedPattern>${shadeBase}.org.checkerframework</shadedPattern>
</relocation>
<relocation>
<pattern>org.codehaus</pattern>
<shadedPattern>${shadeBase}.org.codehaus</shadedPattern>
</relocation>
<relocation>
<pattern>io.perfmark</pattern>
<shadedPattern>${shadeBase}.io.perfmark</shadedPattern>
</relocation>
<relocation>
<pattern>opencensus</pattern>
<shadedPattern>${shadeBase}.opencensus</shadedPattern>
</relocation>
<relocation>
<pattern>grpc</pattern>
<shadedPattern>${shadeBase}.grpc</shadedPattern>
</relocation>
<relocation>
<pattern>android.annotation</pattern>
<shadedPattern>${shadeBase}.android.annotation</shadedPattern>
</relocation>
<relocation>
<pattern>reactor</pattern>
<shadedPattern>${shadeBase}.reactor</shadedPattern>
</relocation>
<relocation>
<pattern>org.reactivestreams</pattern>
<shadedPattern>${shadeBase}.org.reactivestreams</shadedPattern>
</relocation>
</relocations>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/LICENSE*</exclude>
<exclude>META-INF/NOTICE*</exclude>
<exclude>META-INF/DEPENDENCIES</exclude>
<exclude>META-INF/maven/**</exclude>
<exclude>META-INF/services/com.fasterxml.*</exclude>
<exclude>META-INF/versions/9/module-info.*</exclude>
<exclude>META-INF/versions/11/module-info.*</exclude>
<exclude>META-INF/*.xml</exclude>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>.netbeans_automatic_build</exclude>
<exclude>git.properties</exclude>
<exclude>arrow-git.properties</exclude>
<exclude>google-http-client.properties</exclude>
<exclude>pipes-fork-server-default-log4j2.xml</exclude>
<exclude>dependencies.properties</exclude>
<exclude>azure-*.properties</exclude>
<exclude>VersionInfo.java</exclude>
<exclude>project.properties</exclude>
</excludes>
</filter>
<filter>
<artifact>org.apache.arrow:arrow-vector</artifact>
<excludes>
<!-- codegen directory is used to generate java code for arrow vector package. Excludes them since we only need class file -->
<exclude>codegen/**</exclude>
</excludes>
</filter>
<filter>
<artifact>com.google.guava:guava</artifact>
<includes>
<include>com/google/common/io/**</include>
<include>com/google/common/base/**</include>
<include>com/google/common/hash/**</include>
<include>com/google/common/collect/**</include>
<include>com/google/common/graph/**</include>
<include>com/google/common/math/**</include>
<include>com/google/common/util/concurrent/**</include>
</includes>
</filter>
<filter>
<artifact>commons-logging:commons-logging</artifact>
<excludes>
<exclude>org/apache/commons/logging/impl/AvalonLogger.class</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/io.netty.versions.properties</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!-- relocate the META-INF/versions files manually due to the maven bug -->
<!-- https://issues.apache.org/jira/browse/MSHADE-406 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${version.plugin.antrun}</version>
<executions>
<execution>
<id>repack</id>
<goals>
<goal>run</goal>
</goals>
<phase>package</phase>
<configuration>
<target>
<unzip dest="${project.build.directory}/relocate" src="${project.build.directory}/${project.build.finalName}.jar"/>
<mkdir dir="${project.build.directory}/relocate/META-INF/versions/9/${relocationBase}"/>
<mkdir dir="${project.build.directory}/relocate/META-INF/versions/11/${relocationBase}"/>
<mkdir dir="${project.build.directory}/relocate/META-INF/versions/17/${relocationBase}"/>
<mkdir dir="${project.build.directory}/relocate/META-INF/versions/21/${relocationBase}"/>
<mkdir dir="${project.build.directory}/relocate/META-INF/versions/22/${relocationBase}"/>
<!-- com.fasterxml.* packages are relocated to ${relocationBase}.fasterxml.* -->
<move file="${project.build.directory}/relocate/META-INF/versions/11/com/fasterxml" todir="${project.build.directory}/relocate/META-INF/versions/11/${relocationBase}"/>
<move file="${project.build.directory}/relocate/META-INF/versions/17/com/fasterxml" todir="${project.build.directory}/relocate/META-INF/versions/17/${relocationBase}"/>
<move file="${project.build.directory}/relocate/META-INF/versions/21/com/fasterxml" todir="${project.build.directory}/relocate/META-INF/versions/21/${relocationBase}"/>
<!-- io.opentelemetry.* packages are relocated to ${relocationBase}.io.opentelemetry.* -->
<move file="${project.build.directory}/relocate/META-INF/versions/9/io" todir="${project.build.directory}/relocate/META-INF/versions/9/${relocationBase}"/>
<!-- reactor.* packages are relocated to ${relocationBase}.reactor.* -->
<move file="${project.build.directory}/relocate/META-INF/versions/11/reactor/core" todir="${project.build.directory}/relocate/META-INF/versions/11/${relocationBase}"/>
<move file="${project.build.directory}/relocate/META-INF/versions/17/reactor/netty" todir="${project.build.directory}/relocate/META-INF/versions/17/${relocationBase}"/>
<move file="${project.build.directory}/relocate/META-INF/versions/21/reactor/core" todir="${project.build.directory}/relocate/META-INF/versions/21/${relocationBase}"/>
<!-- contains class name from before shading, loaded with Class.forName -->
<replace file="${project.build.directory}/relocate/net/snowflake/client/jdbc/internal/software/amazon/awssdk/services/s3/execution.interceptors"
token="software.amazon.awssdk"
value="net.snowflake.client.jdbc.internal.software.amazon.awssdk"/>
<!-- Overwrite shaded SLF4JLogger with unshaded version.
The shade plugin rewrites org.slf4j references to the shaded namespace,
but SLF4JLogger must reference the user's real org.slf4j for SLF4J opt-in.
SLF4JJCLWrapper is left shaded since it also implements the shaded
org.apache.commons.logging.Log interface. -->
<copy file="${project.build.outputDirectory}/net/snowflake/client/internal/log/SLF4JLogger.class"
todir="${project.build.directory}/relocate/net/snowflake/client/internal/log"
overwrite="true"/>
<zip basedir="${project.build.directory}/relocate" destfile="${project.build.directory}/${project.build.finalName}.jar"/>
<delete dir="${project.build.directory}/relocate/META-INF/versions/9/${relocationBase}"/>
<delete dir="${project.build.directory}/relocate/META-INF/versions/11/${relocationBase}"/>
<delete dir="${project.build.directory}/relocate/META-INF/versions/17/${relocationBase}"/>
<delete dir="${project.build.directory}/relocate/META-INF/versions/21/${relocationBase}"/>
<delete dir="${project.build.directory}/relocate/META-INF/versions/22/${relocationBase}"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Run mvn -P check-style verify -->
<profile>
<id>check-style</id>
<build>
<plugins>
<plugin>
<groupId>com.coveo</groupId>
<artifactId>fmt-maven-plugin</artifactId>
<version>${version.plugin.fmt}</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>check-content</id>
<activation>
<os>
<family>!windows</family>
</os>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${version.plugin.exec}</version>
<executions>
<execution>
<id>check-shaded-content</id>
<phase>verify</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/scripts/check_content.sh</executable>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java-9</id>
<activation>
<jdk>(9,)</jdk>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit-platform</artifactId>
<version>${version.plugin.surefire}</version>
</dependency>
</dependencies>
<version>${version.plugin.failsafe}</version>
<configuration>
<argLine>
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
--add-exports=java.base/sun.security.internal.spec=ALL-UNNAMED
--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
</argLine>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
--add-exports=java.base/sun.security.internal.spec=ALL-UNNAMED
--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
</argLine>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jenkinsIT</id>
<activation>
<property>
<name>jenkinsIT</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit-platform</artifactId>
<version>${version.plugin.surefire}</version>
</dependency>
</dependencies>
<version>${version.plugin.failsafe}</version>
<executions>
<execution>
<id>DefaultIT</id>
<goals>
<goal>integration-test</goal>
</goals>
<configuration>
<includes>
<include>**/ConnectionFipsIT.java</include>
</includes>
<systemPropertyVariables>
<net.snowflake.jdbc.loggerImpl>
net.snowflake.client.internal.log.JDK14Logger
</net.snowflake.jdbc.loggerImpl>
<java.util.logging.config.file>
${basedir}/../src/test/resources/logging.properties
</java.util.logging.config.file>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- profiles deployed into ossrh stage area -->
<profile>
<id>ossrh-deploy</id>
<activation>
<property>
<name>ossrhDeploy</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${version.plugin.gpg}</version>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>sign-and-deploy-file</goal>
</goals>
<configuration>
<file>target/${project.artifactId}.jar</file>
<repositoryId>ossrh</repositoryId>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
<pomFile>generated_public_pom.xml</pomFile>
<javadoc>target/${project.artifactId}-javadoc.jar</javadoc>
<sources>target/${project.artifactId}-sources.jar</sources>
<keyname>${env.GPG_KEY_ID}</keyname>
<passphrase>${env.GPG_KEY_PASSPHRASE}</passphrase>
</configuration>
</execution>
</executions>
</plugin>
<!-- skip default deploy plugin if we use gpg plugin to deploy -->
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>central-deploy</id>
<activation>
<property>
<name>central-deploy</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${version.plugin.buildhelper}</version>
<executions>
<execution>
<id>attach-public-pom</id>
<goals>
<goal>attach-artifact</goal>
</goals>
<phase>package</phase>
<configuration>
<artifacts>
<artifact>
<file>generated_public_pom.xml</file>
<type>pom</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<keyname>${env.GPG_KEY_ID}</keyname>
<passphrase>${env.GPG_KEY_PASSPHRASE}</passphrase>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<goals>
<goal>sign</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${version.plugin.publishing}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>ossrh</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
================================================
FILE: FIPS/public_pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.snowflake</groupId>
<artifactId>snowflake-jdbc-fips</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Snowflake JDBC Driver</name>
<description>Snowflake JDBC Driver</description>
<url>https://www.snowflake.net/</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>Snowflake Support Team</name>
<email>snowflake-java@snowflake.net</email>
<organization>Snowflake Computing</organization>
<organizationUrl>https://www.snowflake.net</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/snowflakedb/snowflake-jdbc</connection>
<url>http://github.com/snowflakedb/snowflake-jdbc/tree/master</url>
</scm>
<properties>
<bouncycastle.bcfips.version>1.0.2.6</bouncycastle.bcfips.version>
<bouncycastle.bcpkixfips.version>1.0.8</bouncycastle.bcpkixfips.version>
<jna.version>5.13.0</jna.version>
</properties>
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bc-fips</artifactId>
<version>${bouncycastle.bcfips.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-fips</artifactId>
<version>${bouncycastle.bcpkixfips.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>${jna.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>${jna.version}</version>
<optional>true</optional>
</dependency>
</dependencies>
</project>
================================================
FILE: FIPS/scripts/check_content.sh
================================================
#!/bin/bash -e
# scripts used to check if all dependencies are shaded into snowflake internal path
set -o pipefail
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
if jar tvf $DIR/../target/snowflake-jdbc-fips.jar | awk '{print $8}' | grep -v -E "/$" | grep -v -E "^(net|com)/snowflake" | grep -v -E "(com|net)/\$" | grep -v -E "^META-INF" | grep -v -E "^iso3166_" | grep -v -E "^mozilla" | grep -v -E "^com/sun/jna" | grep -v com/sun/ | grep -v mime.types | grep -v -E "^com/github/luben/zstd/" | grep -v -E "^aix/" | grep -v -E "^darwin/" | grep -v -E "^freebsd/" | grep -v -E "^linux/" | grep -v -E "^win/" | grep -v -E "^minicore/" | grep -v -E "^org/conscrypt/"; then
echo "[ERROR] JDBC jar includes class not under the snowflake namespace"
exit 1
fi
================================================
FILE: FIPS/src/test/java/net/snowflake/client/AbstractDriverIT.java
================================================
package net.snowflake.client;
import com.google.common.base.Strings;
import java.net.URL;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.TimeZone;
import java.util.logging.Level;
import java.util.logging.Logger;
import static org.hamcrest.MatcherAssert.assertThat;
/** Base test class with common constants, data structures and methods */
public class AbstractDriverIT {
// This is required to use ConditionalIgnore annotation.
public static final String DRIVER_CLASS = "net.snowflake.client.api.driver.SnowflakeDriver";
public static final String DRIVER_CLASS_COM = "com.snowflake.client.jdbc.SnowflakeDriver";
public static final int DONT_INJECT_SOCKET_TIMEOUT = 0;
// data files
protected static final String TEST_DATA_FILE = "orders_100.csv";
protected static final String TEST_DATA_FILE_2 = "orders_101.csv";
protected static final String[] fileNames = {TEST_DATA_FILE, TEST_DATA_FILE_2};
private static Logger logger = Logger.getLogger(AbstractDriverIT.class.getName());
protected final int ERROR_CODE_BIND_VARIABLE_NOT_ALLOWED_IN_VIEW_OR_UDF_DEF = 2210;
protected final int ERROR_CODE_DOMAIN_OBJECT_DOES_NOT_EXIST = 2003;
public static Map<String, String> getConnectionParameters(String accountName) {
Map<String, String> params = new HashMap<>();
String account;
String host;
if (accountName == null) {
account = TestUtil.systemGetEnv("SNOWFLAKE_TEST_ACCOUNT");
host = TestUtil.systemGetEnv("SNOWFLAKE_TEST_HOST");
} else {
account = accountName;
// By default, the test will run against reg deployment.
// If developer needs to run in IntelliJ, you can set this env as ".dev.local"
String deployment = TestUtil.systemGetEnv("SNOWFLAKE_TEST_DEPLOYMENT");
if (Strings.isNullOrEmpty(deployment)) {
deployment = ".reg.local";
}
host = accountName.trim() + deployment;
}
assertThat(
"set SNOWFLAKE_TEST_ACCOUNT environment variable to the account name.",
!Strings.isNullOrEmpty(account));
params.put("account", account);
if (Strings.isNullOrEmpty(host)) {
host = account + ".snowflakecomputing.com";
}
assertThat(
"set SNOWFLAKE_TEST_HOST environment variable to the host name.",
!Strings.isNullOrEmpty(host));
params.put("host", host);
String protocol = TestUtil.systemGetEnv("SNOWFLAKE_TEST_PROTOCOL");
String ssl;
if ("http".equals(protocol)) {
ssl = "off";
} else {
ssl = "on";
}
params.put("ssl", ssl);
String user = TestUtil.systemGetEnv("SNOWFLAKE_TEST_USER");
assertThat("set SNOWFLAKE_TEST_USER environment variable.", !Strings.isNullOrEmpty(user));
params.put("user", user);
String privateKeyFile = TestUtil.systemGetEnv("SNOWFLAKE_TEST_PRIVATE_KEY_FILE");
if (!Strings.isNullOrEmpty(privateKeyFile)) {
String workspace = System.getenv("WORKSPACE");
if (workspace != null) {
params.put("private_key_file", java.nio.file.Paths.get(workspace, privateKeyFile).toString());
} else {
params.put("private_key_file", privateKeyFile);
}
params.put("authenticator", "SNOWFLAKE_JWT");
String privateKeyPwd = TestUtil.systemGetEnv("SNOWFLAKE_TEST_PRIVATE_KEY_PWD");
if (!Strings.isNullOrEmpty(privateKeyPwd)) {
params.put("private_key_pwd", privateKeyPwd);
}
} else {
String password = TestUtil.systemGetEnv("SNOWFLAKE_TEST_PASSWORD");
if (!Strings.isNullOrEmpty(password)) {
params.put("password", password);
} else {
throw new IllegalStateException("Neither SNOWFLAKE_TEST_PRIVATE_KEY_FILE nor SNOWFLAKE_TEST_PASSWORD environment variable is set. Please configure one of them for authentication.");
}
}
String port = TestUtil.systemGetEnv("SNOWFLAKE_TEST_PORT");
if (Strings.isNullOrEmpty(port)) {
if ("on".equals(ssl)) {
port = "443";
} else {
port = "80";
}
}
assertThat("set SNOWFLAKE_TEST_PORT environment variable.", !Strings.isNullOrEmpty(port));
params.put("port", port);
String database = TestUtil.systemGetEnv("SNOWFLAKE_TEST_DATABASE");
assertThat(
"set SNOWFLAKE_TEST_DATABASE environment variable.", !Strings.isNullOrEmpty(database));
params.put("database", database);
String schema = TestUtil.systemGetEnv("SNOWFLAKE_TEST_SCHEMA");
assertThat("set SNOWFLAKE_TEST_SCHEMA environment variable.", !Strings.isNullOrEmpty(schema));
params.put("schema", schema);
String role = TestUtil.systemGetEnv("SNOWFLAKE_TEST_ROLE");
assertThat("set SNOWFLAKE_TEST_ROLE environment variable.", !Strings.isNullOrEmpty(role));
params.put("role", role);
String warehouse = TestUtil.systemGetEnv("SNOWFLAKE_TEST_WAREHOUSE");
assertThat(
"set SNOWFLAKE_TEST_WAREHOUSE environment variable.", !Strings.isNullOrEmpty(warehouse));
params.put("warehouse", warehouse);
params.put("uri", String.format("jdbc:snowflake://%s:%s", host, port));
String adminUser = TestUtil.systemGetEnv("SNOWFLAKE_TEST_ADMIN_USER");
params.put("adminUser", adminUser);
String adminPassword = TestUtil.systemGetEnv("SNOWFLAKE_TEST_ADMIN_PASSWORD");
params.put("adminPassword", adminPassword);
String ssoUser = TestUtil.systemGetEnv("SNOWFLAKE_TEST_SSO_USER");
params.put("ssoUser", ssoUser);
String ssoPassword = TestUtil.systemGetEnv("SNOWFLAKE_TEST_SSO_PASSWORD");
params.put("ssoPassword", ssoPassword);
return params;
}
public static Map<String, String> getConnectionParameters() {
return getConnectionParameters(null);
}
/**
* Gets a connection with default session parameter settings, but tunable query api version and
* socket timeout setting
*
* @param paramProperties connection properties
* @return Connection a database connection
* @throws SQLException raised if any error occurs
*/
public static Connection getConnection(Properties paramProperties) throws SQLException {
return getConnection(DONT_INJECT_SOCKET_TIMEOUT, paramProperties, false, false);
}
/**
* Gets a connection with custom account name, but otherwise default settings
*
* @return Connection a database connection
* @throws SQLException raised if any error occurs
*/
public static Connection getConnection(String accountName) throws SQLException {
return getConnection(DONT_INJECT_SOCKET_TIMEOUT, null, false, false, accountName);
}
/**
* Gets a connection with default settings
*
* @return Connection a database connection
* @throws SQLException raised if any error occurs
*/
public static Connection getConnection() throws SQLException {
return getConnection(DONT_INJECT_SOCKET_TIMEOUT, null, false, false);
}
/**
* Gets a connection with default session parameter settings, but tunable query api version and
* socket timeout setting
*
* @param injectSocketTimeout number of seconds to inject in connection
* @return Connection a database connection
* @throws SQLException raised if any error occurs
*/
public static Connection getConnection(int injectSocketTimeout) throws SQLException {
return getConnection(injectSocketTimeout, null, false, false);
}
/**
* Gets a connection with Snowflake admin
*
* @return Connection a database connection
* @throws SQLException raised if any error occurs
*/
protected static Connection getSnowflakeAdminConnection() throws SQLException {
return getConnection(DONT_INJECT_SOCKET_TIMEOUT, null, true, false);
}
/**
* Gets a connection with Snowflake admin
*
* @param paramProperties connection properties
* @return Connection a database connection
* @throws SQLException raised if any error occurs
*/
protected static Connection getSnowflakeAdminConnection(Properties paramProperties)
throws SQLException {
return getConnection(DONT_INJECT_SOCKET_TIMEOUT, paramProperties, true, false);
}
/**
* Gets a connection in same way as function below but with default account (gotten from
* environment variables)
*
* @param injectSocketTimeout
* @param paramProperties
* @param isAdmin
* @param usesCom
* @return
* @throws SQLException
*/
public static Connection getConnection(
int injectSocketTimeout, Properties paramProperties, boolean isAdmin, boolean usesCom)
throws SQLException {
return getConnection(injectSocketTimeout, paramProperties, isAdmin, usesCom, null);
}
/**
* Gets a connection for the custom session parameter settings and tunable query api version and
* socket timeout setting
*
* @param injectSocketTimeout number of seconds to inject in connection
* @param paramProperties connection properties
* @param isAdmin is Snowflake admin user?
* @param usesCom uses com.snowflake instead of net.snowflake?
* @return Connection database connection
* @throws SQLException raised if any error occurs
*/
public static Connection getConnection(
int injectSocketTimeout,
Properties paramProperties,
boolean isAdmin,
boolean usesCom,
String accountName)
throws SQLException {
// Load Snowflake JDBC class
String driverClass = DRIVER_CLASS;
if (usesCom) {
driverClass = DRIVER_CLASS_COM;
}
try {
Class.forName(driverClass);
} catch (Exception e) {
logger.log(Level.SEVERE, "Cannot find Driver", e);
throw new RuntimeException(e.getCause());
}
Map<String, String> params = getConnectionParameters(accountName);
// build connection properties
Properties properties = new Properties();
if (isAdmin) {
assertThat(
"set SNOWFLAKE_TEST_ADMIN_USER environment variable.",
!Strings.isNullOrEmpty(params.get("adminUser")));
assertThat(
"set SNOWFLAKE_TEST_ADMIN_PASSWORD environment variable.",
!Strings.isNullOrEmpty(params.get("adminPassword")));
properties.put("user", params.get("adminUser"));
properties.put("password", params.get("adminPassword"));
properties.put("role", "accountadmin");
properties.put("account", "snowflake");
} else {
properties.put("user", params.get("user"));
properties.put("role", params.get("role"));
properties.put("account", params.get("account"));
if (!Strings.isNullOrEmpty(params.get("private_key_file"))) {
properties.put("private_key_file", params.get("private_key_file"));
if (params.get("authenticator") != null) {
properties.put("authenticator", params.get("authenticator"));
}
if (!Strings.isNullOrEmpty(params.get("private_key_pwd"))) {
properties.put("private_key_pwd", params.get("private_key_pwd"));
}
} else if (!Strings.isNullOrEmpty(params.get("password"))) {
properties.put("password", params.get("password"));
}
}
properties.put("db", params.get("database"));
properties.put("schema", params.get("schema"));
properties.put("warehouse", params.get("warehouse"));
properties.put("ssl", params.get("ssl"));
properties.put("internal", Boolean.TRUE.toString()); // TODO: do we need this?
properties.put("insecureMode", false); // use OCSP for all tests.
if (injectSocketTimeout > 0) {
properties.put("injectSocketTimeout", String.valueOf(injectSocketTimeout));
}
// Set the session parameter properties
if (paramProperties != null) {
for (Map.Entry<?, ?> entry : paramProperties.entrySet()) {
properties.put(entry.getKey(), entry.getValue());
}
}
return DriverManager.getConnection(params.get("uri"), properties);
}
/**
* Close SQL Objects
*
* @param resultSet a result set object
* @param statement a statement object
* @param connection a connection
* @throws SQLException raised if any error occurs
*/
public void closeSQLObjects(ResultSet resultSet, Statement statement, Connection connection)
throws SQLException {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
}
/**
* Close SQL Objects
*
* @param statement a statement object
* @param connection a connection
* @throws SQLException raised if any error occurs
*/
public void closeSQLObjects(Statement statement, Connection connection) throws SQLException {
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
}
/**
* Get a full path of the file in Resource
*
* @param fileName a file name
* @return a full path name of the file
*/
public static String getFullPathFileInResource(String fileName) {
ClassLoader classLoader = AbstractDriverIT.class.getClassLoader();
URL url = classLoader.getResource(fileName);
if (url != null) {
return url.getFile();
} else {
throw new RuntimeException("No file is found: " + fileName);
}
}
protected static Timestamp buildTimestamp(
int year, int month, int day, int hour, int minute, int second, int fractionInNanoseconds) {
Calendar cal = Calendar.getInstance();
cal.set(year, month, day, hour, minute, second);
Timestamp ts = new Timestamp(cal.getTime().getTime());
ts.setNanos(fractionInNanoseconds);
return ts;
}
protected static Date buildDate(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.set(year, month, day, 0, 0, 0);
cal.set(Calendar.MILLISECOND, 0);
return new Date(cal.getTime().getTime());
}
protected static Date buildDateWithTZ(int year, int month, int day, TimeZone tz) {
Calendar cal = Calendar.getInstance();
cal.setTimeZone(tz);
cal.set(year, month, day, 0, 0, 0);
cal.set(Calendar.MILLISECOND, 0);
return new Date(cal.getTime().getTime());
}
}
================================================
FILE: FIPS/src/test/java/net/snowflake/client/DontRunOnGCP.java
================================================
package net.snowflake.client;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@DisabledIfEnvironmentVariable(named = "CLOUD_PROVIDER", matches = "(?i)GCP(?-i)")
public @interface DontRunOnGCP {}
================================================
FILE: FIPS/src/test/java/net/snowflake/client/DontRunOnGithubActions.java
================================================
package net.snowflake.client;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@DisabledIfEnvironmentVariable(named = "GITHUB_ACTIONS", matches = ".*")
public @interface DontRunOnGithubActions {}
================================================
FILE: FIPS/src/test/java/net/snowflake/client/TestUtil.java
================================================
package net.snowflake.client;
import net.snowflake.client.internal.core.SFException;
import net.snowflake.client.internal.log.SFLogger;
import net.snowflake.client.internal.log.SFLoggerFactory;
import org.junit.jupiter.api.Assertions;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
public class TestUtil {
private static final SFLogger logger = SFLoggerFactory.getLogger(TestUtil.class);
/**
* Util function to assert a piece will throw exception and assert on the error code
*
* @param errorCode expected error code
* @param testCode the code that will run and throws exception
*/
public static void assertSFException(int errorCode, TestRunInterface testCode) {
try {
testCode.run();
Assertions.fail();
} catch (SFException e) {
assertThat(e.getVendorCode(), is(errorCode));
}
}
/** Functional interface used to run a piece of code which throws SFException */
@FunctionalInterface
public interface TestRunInterface {
void run() throws SFException;
}
/**
* System.getenv wrapper. If System.getenv raises a SecurityException, it is ignored and returns
* null.
* @deprecated This method should be replaced by SnowflakeUtil.systemGetEnv.
* <p>This is replicated from SnowflakeUtil.systemGetEnv, because the old driver doesn't have that
* function for the tests to use it. Replace this function call with SnowflakeUtil.systemGetEnv
* when it is available.
*
* @param env the environment variable name.
* @return the environment variable value if set, otherwise null.
*/
@Deprecated
public static String systemGetEnv(String env) {
try {
return System.getenv(env);
} catch (SecurityException ex) {
logger.debug(
"Failed to get environment variable {}. Security exception raised: {}",
env,
ex.getMessage());
}
return null;
}
}
================================================
FILE: FIPS/src/test/java/net/snowflake/client/category/FipsTestSuite.java
================================================
package net.snowflake.client.category;
import org.junit.platform.suite.api.IncludeTags;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.junit.platform.suite.api.ExcludePackages;
import org.junit.platform.suite.api.IncludeClassNamePatterns;
import org.junit.platform.suite.api.SelectPackages;
import org.junit.platform.suite.api.Suite;
import org.junit.platform.suite.api.SuiteDisplayName;
@Suite
@SelectPackages("net.snowflake.client")
@ExcludePackages("net.snowflake.client.suites")
@IncludeClassNamePatterns(".+")
public class FipsTestSuite {
}
================================================
FILE: FIPS/src/test/java/net/snowflake/client/jdbc/ConnectionFipsIT.java
================================================
package net.snowflake.client.jdbc;
import static org.junit.jupiter.api.Assertions.*;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.net.ssl.HttpsURLConnection;
import net.snowflake.client.AbstractDriverIT;
import net.snowflake.client.DontRunOnGCP;
import net.snowflake.client.DontRunOnGithubActions;
import net.snowflake.client.internal.core.SecurityUtil;
import org.apache.commons.codec.binary.Base64;
import org.bouncycastle.crypto.CryptoServicesRegistrar;
import org.bouncycastle.crypto.fips.FipsStatus;
import org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
@Tag("fips")
public class ConnectionFipsIT extends AbstractDriverIT {
private static final String JCE_PROVIDER_BOUNCY_CASTLE_FIPS = "BCFIPS";
private static final String JCE_PROVIDER_SUN_JCE = "SunJCE";
private static final String JCE_PROVIDER_SUN_RSA_SIGN = "SunRsaSign";
private static final String JCE_KEYSTORE_BOUNCY_CASTLE = "BCFKS";
private static final String JCE_KEYSTORE_JKS = "JKS";
private static final String BOUNCY_CASTLE_RNG_HYBRID_MODE = "C:HYBRID;ENABLE{All};";
private static final String SSL_ENABLED_PROTOCOLS = "TLSv1.2,TLSv1.1,TLSv1";
private static final String SSL_ENABLED_CIPHERSUITES =
"TLS_AES_128_GCM_SHA256,"
+ "TLS_AES_256_GCM_SHA384,"
+ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"
+ "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"
+ "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"
+ "TLS_RSA_WITH_AES_256_GCM_SHA384,"
+ "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,"
+ "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,"
+ "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,"
+ "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(,"
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"
+ "TLS_RSA_WITH_AES_128_GCM_SHA256,"
+ "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,"
+ "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,"
+ "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,"
+ "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,"
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,"
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,"
+ "TLS_RSA_WITH_AES_256_CBC_SHA256,"
+ "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,"
+ "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,"
+ "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,"
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,"
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,"
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,"
+ "TLS_RSA_WITH_AES_256_CBC_SHA,"
+ "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,"
+ "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,"
+ "TLS_DHE_RSA_WITH_AES_256_CBC_SHA,"
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA,"
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,"
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,"
+ "TLS_RSA_WITH_AES_128_CBC_SHA256,"
+ "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,"
+ "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,"
+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,"
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,"
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,"
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,"
+ "TLS_RSA_WITH_AES_128_CBC_SHA,"
+ "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,"
+ "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,"
+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA,"
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA";
private static final String JAVA_SYSTEM_PROPERTY_SSL_KEYSTORE_TYPE = "javax.net.ssl.keyStoreType";
private static final String JAVA_SYSTEM_PROPERTY_SSL_TRUSTSTORE_TYPE =
"javax.net.ssl.trustStoreType";
private static final String JAVA_SYSTEM_PROPERTY_SSL_PROTOCOLS = "jdk.tls.client.protocols";
private static final String JAVA_SYSTEM_PROPERTY_SSL_CIPHERSUITES = "jdk.tls.client.cipherSuites";
private static final String JAVA_SYSTEM_PROPERTY_SSL_NAMEDGROUPS = "jdk.tls.namedGroups";
private static String JAVA_SYSTEM_PROPERTY_SSL_KEYSTORE_TYPE_ORIGINAL_VALUE;
private static String JAVA_SYSTEM_PROPERTY_SSL_TRUSTSTORE_TYPE_ORIGINAL_VALUE;
private static String JAVA_SYSTEM_PROPERTY_SSL_PROTOCOLS_ORIGINAL_VALUE;
private static String JAVA_SYSTEM_PROPERTY_SSL_CIPHERSUITES_ORIGINAL_VALUE;
private static Provider JCE_PROVIDER_SUN_JCE_PROVIDER_VALUE;
private static Provider JCE_PROVIDER_SUN_RSA_SIGN_PROVIDER_VALUE;
private static int JCE_PROVIDER_SUN_JCE_PROVIDER_POSITION;
private static int JCE_PROVIDER_SUN_RSA_SIGN_PROVIDER_POSITION;
@BeforeAll
public static void setup() throws Exception {
System.setProperty("javax.net.debug", "ssl");
// Setting up the named group to avoid test failure on GCP environment.
System.setProperty(JAVA_SYSTEM_PROPERTY_SSL_NAMEDGROUPS, "secp256r1, secp384r1, ffdhe2048, ffdhe3072");
// get keystore types for BouncyCastle libraries
JAVA_SYSTEM_PROPERTY_SSL_KEYSTORE_TYPE_ORIGINAL_VALUE =
System.getProperty(JAVA_SYSTEM_PROPERTY_SSL_KEYSTORE_TYPE);
JAVA_SYSTEM_PROPERTY_SSL_TRUSTSTORE_TYPE_ORIGINAL_VALUE =
System.getProperty(JAVA_SYSTEM_PROPERTY_SSL_TRUSTSTORE_TYPE);
// set keystore types for BouncyCastle libraries
System.setProperty(JAVA_SYSTEM_PROPERTY_SSL_KEYSTORE_TYPE, JCE_KEYSTORE_BOUNCY_CASTLE);
System.setProperty(JAVA_SYSTEM_PROPERTY_SSL_TRUSTSTORE_TYPE, JCE_KEYSTORE_JKS);
// remove Java's standard encryption and SSL providers
List<Provider> providers = Arrays.asList(Security.getProviders());
JCE_PROVIDER_SUN_JCE_PROVIDER_VALUE = Security.getProvider(JCE_PROVIDER_SUN_JCE);
JCE_PROVIDER_SUN_JCE_PROVIDER_POSITION = providers.indexOf(JCE_PROVIDER_SUN_JCE_PROVIDER_VALUE);
JCE_PROVIDER_SUN_RSA_SIGN_PROVIDER_VALUE = Security.getProvider(JCE_PROVIDER_SUN_RSA_SIGN);
JCE_PROVIDER_SUN_RSA_SIGN_PROVIDER_POSITION =
providers.indexOf(JCE_PROVIDER_SUN_RSA_SIGN_PROVIDER_VALUE);
Security.removeProvider(JCE_PROVIDER_SUN_JCE);
Security.removeProvider(JCE_PROVIDER_SUN_RSA_SIGN);
// workaround to connect to accounts.google.com over HTTPS, which consists
// of disabling TLS 1.3 and disabling default SSL cipher suites that are
// using CHACHA20_POLY1305 algorithms
JAVA_SYSTEM_PROPERTY_SSL_PROTOCOLS_ORIGINAL_VALUE =
System.getProperty(JAVA_SYSTEM_PROPERTY_SSL_PROTOCOLS);
JAVA_SYSTEM_PROPERTY_SSL_CIPHERSUITES_ORIGINAL_VALUE =
System.getProperty(JAVA_SYSTEM_PROPERTY_SSL_CIPHERSUITES);
System.setProperty(JAVA_SYSTEM_PROPERTY_SSL_PROTOCOLS, SSL_ENABLED_PROTOCOLS);
System.setProperty(JAVA_SYSTEM_PROPERTY_SSL_CIPHERSUITES, SSL_ENABLED_CIPHERSUITES);
/*
* Insert BouncyCastle's FIPS-compliant encryption and SSL providers.
*/
BouncyCastleFipsProvider bcFipsProvider =
new BouncyCastleFipsProvider(BOUNCY_CASTLE_RNG_HYBRID_MODE);
/*
* We remove BCFIPS provider pessimistically. This is a no-op if provider
* does not exist. This is necessary to always add it to the first
* position when calling insertProviderAt.
*
* JavaDoc for insertProviderAt states:
* "A provider cannot be added if it is already installed."
*/
Security.removeProvider(JCE_PROVIDER_BOUNCY_CASTLE_FIPS);
Security.insertProviderAt(bcFipsProvider, 1);
if (!CryptoServicesRegistrar.isInApprovedOnlyMode()) {
if (FipsStatus.isReady()) {
CryptoServicesRegistrar.setApprovedOnlyMode(true);
} else {
throw new RuntimeException(
"FIPS is not ready to be enabled and FIPS " + "mode is required for this test to run");
}
}
// attempts an SSL connection to Google
// connectToGoogle();
}
@AfterAll
public static void teardown() throws Exception {
// Remove BouncyCastle FIPS Provider
Security.removeProvider(JCE_PROVIDER_BOUNCY_CASTLE_FIPS);
// Restore ciphers removed to connect to accounts.google.com
if (JAVA_SYSTEM_PROPERTY_SSL_PROTOCOLS_ORIGINAL_VALUE == null) {
System.clearProperty(JAVA_SYSTEM_PROPERTY_SSL_PROTOCOLS);
} else {
System.setProperty(
JAVA_SYSTEM_PROPERTY_SSL_PROTOCOLS, JAVA_SYSTEM_PROPERTY_SSL_PROTOCOLS_ORIGINAL_VALUE);
}
if (JAVA_SYSTEM_PROPERTY_SSL_CIPHERSUITES_ORIGINAL_VALUE == null) {
System.clearProperty(JAVA_SYSTEM_PROPERTY_SSL_KEYSTORE_TYPE);
} else {
System.setProperty(
JAVA_SYSTEM_PROPERTY_SSL_CIPHERSUITES,
JAVA_SYSTEM_PROPERTY_SSL_CIPHERSUITES_ORIGINAL_VALUE);
}
// remove Java's standard encryption and SSL providers
Security.insertProviderAt(
JCE_PROVIDER_SUN_JCE_PROVIDER_VALUE, JCE_PROVIDER_SUN_JCE_PROVIDER_POSITION);
Security.insertProviderAt(
JCE_PROVIDER_SUN_RSA_SIGN_PROVIDER_VALUE, JCE_PROVIDER_SUN_RSA_SIGN_PROVIDER_POSITION);
// Restore previous keystore values
if (JAVA_SYSTEM_PROPERTY_SSL_KEYSTORE_TYPE_ORIGINAL_VALUE == null) {
System.clearProperty(JAVA_SYSTEM_PROPERTY_SSL_KEYSTORE_TYPE);
} else {
System.setProperty(
JAVA_SYSTEM_PROPERTY_SSL_KEYSTORE_TYPE,
JAVA_SYSTEM_PROPERTY_SSL_KEYSTORE_TYPE_ORIGINAL_VALUE);
}
if (JAVA_SYSTEM_PROPERTY_SSL_TRUSTSTORE_TYPE_ORIGINAL_VALUE == null) {
System.clearProperty(JAVA_SYSTEM_PROPERTY_SSL_TRUSTSTORE_TYPE);
} else {
System.setProperty(
JAVA_SYSTEM_PROPERTY_SSL_TRUSTSTORE_TYPE,
JAVA_SYSTEM_PROPERTY_SSL_TRUSTSTORE_TYPE_ORIGINAL_VALUE);
}
System.clearProperty(SecurityUtil.USE_BUNDLED_BOUNCY_CASTLE_FOR_PRIVATE_KEY_DECRYPTION_JVM);
// clear the named group.
System.clearProperty(JAVA_SYSTEM_PROPERTY_SSL_NAMEDGROUPS);
// attempts an SSL connection to Google
// connectToGoogle();
}
@Test
public void connectWithFips() throws SQLException {
Connection con = getConnection();
Statement statement = con.createStatement();
ResultSet resultSet = statement.executeQuery("show parameters");
assertTrue(resultSet.next());
assertFalse(con.isClosed());
statement.close();
con.close();
assertTrue(con.isClosed());
con.close(); // ensure no exception
}
@Test
@DontRunOnGithubActions
public void connectWithFipsKeyPair() throws Exception {
Map<String, String> parameters = getConnectionParameters();
String testUser = parameters.get("user");
Connection connection = getConnection();
Statement statement = connection.createStatement();
statement.execute("use role accountadmin");
String pathfile = getFullPathFileInResource("rsa_key.pub");
String pubKey = new String(Files.readAllBytes(Paths.get(pathfile)));
pubKey = pubKey.replace("-----BEGIN PUBLIC KEY-----", "");
pubKey = pubKey.replace("-----END PUBLIC KEY-----", "");
statement.execute(String.format("alter user %s set rsa_public_key='%s'", testUser, pubKey));
connection.close();
// PKCS8 private key file. No PKCS1 is supported.
String privateKeyLocation = getFullPathFileInResource("rsa_key.p8");
String uri = parameters.get("uri") + "/?private_key_file=" + privateKeyLocation;
// Create Properties with simple null checks to avoid NullPointerException
Properties properties = new Properties();
properties.put("user", testUser);
if (parameters.get("account") != null) {
properties.put("account", parameters.get("account"));
}
if (parameters.get("ssl") != null) {
properties.put("ssl", parameters.get("ssl"));
}
if (parameters.get("port") != null) {
properties.put("port", parameters.get("port"));
}
if (parameters.get("database") != null) {
properties.put("db", parameters.get("database"));
}
if (parameters.get("schema") != null) {
properties.put("schema", parameters.get("schema"));
}
connection = DriverManager.getConnection(uri, properties);
assertNotNull(connection);
connection.close();
}
@Test
@DontRunOnGithubActions
public void testConnectUsingKeyPair() throws Exception {
Map<String, String> parameters = getConnectionParameters();
String testUser = parameters.get("user");
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", "BCFIPS");
SecureRandom random = SecureRandom.getInstance("DEFAULT", "BCFIPS");
keyPairGenerator.initialize(2048, random);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
try (Connection connection = getConnection()) {
Statement statement = connection.createStatement();
statement.execute("use role accountadmin");
String encodePublicKey = Base64.encodeBase64String(publicKey.getEncoded());
statement.execute(
String.format("alter user %s set rsa_public_key='%s'", testUser, encodePublicKey));
}
String uri = parameters.get("uri");
Properties properties = new Properties();
properties.put("user", testUser);
if (parameters.get("account") != null) {
properties.put("account", parameters.get("account"));
}
if (parameters.get("ssl") != null) {
properties.put("ssl", parameters.get("ssl"));
}
if (parameters.get("port") != null) {
properties.put("port", parameters.get("port"));
}
if (parameters.get("database") != null) {
properties.put("db", parameters.get("database"));
}
if (parameters.get("schema") != null) {
properties.put("schema", parameters.get("schema"));
}
// test correct private key one
properties.put("privateKey", privateKey);
DriverManager.getConnection(uri, properties).close();
}
/**
* Test case for connecting with FIPS and executing a query.
*/
@Test
public void connectWithFipsAndQuery() throws SQLException {
try (Connection con = getConnection()) {
Statement statement = con.createStatement();
ResultSet resultSet =
statement.executeQuery(
"select seq8(), randstr(100, random()) from table(generator(rowcount=>10000))");
int cnt = 0;
while (resultSet.next()) {
assertNotNull(resultSet.getInt(1));
assertNotNull(resultSet.getString(2));
cnt++;
}
assertEquals(cnt, 10000);
}
}
@Test
public void connectWithFipsAndPut() throws Exception {
try (Connection con = getConnection()) {
// put files
ResultSet resultSet =
con.createStatement()
.executeQuery("PUT file://" + getFullPathFileInResource(TEST_DATA_FILE) + " @~");
int cnt = 0;
while (resultSet.next()) {
cnt++;
}
assertEquals(cnt, 1);
}
}
/** Added in > 3.15.1 */
@Test
@DontRunOnGithubActions
public void connectWithFipsKeyPairWithBouncyCastle() throws Exception {
System.setProperty(
SecurityUtil.USE_BUNDLED_BOUNCY_CASTLE_FOR_PRIVATE_KEY_DECRYPTION_JVM, "true");
connectWithFipsKeyPair();
}
/** Added in > 3.15.1 */
@Test
@DontRunOnGithubActions
public void testConnectUsingKeyPairWithBouncyCastle() throws Exception {
System.setProperty(
SecurityUtil.USE_BUNDLED_BOUNCY_CASTLE_FOR_PRIVATE_KEY_DECRYPTION_JVM, "true");
testConnectUsingKeyPair();
}
private static void connectToGoogle() throws Exception {
URL url = new URL("https://www.google.com/");
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
int code = con.getResponseCode();
if (code != 200) {
throw new Exception("Got " + code + " instead of HTTP_OK");
}
System.out.println("Connected to Google successfully");
}
}
================================================
FILE: Jenkinsfile
================================================
@Library('pipeline-utils')
import com.snowflake.DevEnvUtils
import groovy.json.JsonOutput
class JdbcJobDefinition {
String jdk
List params
String jobToRun
String runName
}
pipeline {
agent { label 'regular-memory-node-snowos' }
options { timestamps() }
environment {
COMMIT_SHA_LONG = sh(returnStdout: true, script: "echo \$(git rev-parse " + "HEAD)").trim()
// environment variables for semgrep_agent (for findings / analytics page)
// remove .git at the end
// remove SCM URL + .git at the end
BASELINE_BRANCH = "${env.CHANGE_TARGET}"
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
}
}
timestamps {
node('regular-memory-node-snowos') {
stage('checkout') {
scmInfo = checkout scm
println("${scmInfo}")
env.GIT_BRANCH = scmInfo.GIT_BRANCH
}
stage('Authenticate Artifactory') {
script {
new DevEnvUtils().withSfCli {
sh "sf artifact oci auth"
}
}
}
stage('Build') {
sh '''\
|export JAVA_HOME=/usr/java/latest
|export PATH=$JAVA_HOME/bin:$PATH
|export GIT_BRANCH=${GIT_BRANCH}
|$WORKSPACE/ci/build.sh
'''.stripMargin()
}
jdkToParams = ['openjdk8': 'jdbc-rockylinux8-openjdk8', 'openjdk11': 'jdbc-rockylinux8-openjdk11', 'openjdk17': 'jdbc-rockylinux8-openjdk17', 'openjdk21': 'jdbc-rockylinux8-openjdk21'].collectEntries { jdk, image ->
return [(jdk): [
string(name: 'client_git_branch', value: scmInfo.GIT_BRANCH),
string(name: 'client_git_commit', value: scmInfo.GIT_COMMIT),
string(name: 'branch', value: 'main'),
string(name: 'TARGET_DOCKER_TEST_IMAGE', value: image),
string(name: 'parent_job', value: env.JOB_NAME),
string(name: 'parent_build_number', value: env.BUILD_NUMBER),
string(name: 'timeout_value', value: '420'),
string(name: 'PR_Key', value: scmInfo.GIT_BRANCH.substring(3)),
string(name: 'svn_revision', value: 'sut-stable')
]]
}
jobDefinitions = jdkToParams.collectMany { jdk, params ->
return [
'RT-LanguageJDBC1-PC' : "Test JDBC 1 - $jdk",
'RT-LanguageJDBC2-PC' : "Test JDBC 2 - $jdk",
'RT-LanguageJDBC3-PC' : "Test JDBC 3 - $jdk",
'RT-LanguageJDBC4-PC' : "Test JDBC 4 - $jdk",
].collect { jobToRun, runName ->
return new JdbcJobDefinition(
jdk: jdk,
params: params,
jobToRun: jobToRun,
runName: runName
)
}
}.collectEntries { jobDefinition ->
return [(jobDefinition.runName): { build job: jobDefinition.jobToRun, parameters: jobDefinition.params }]
}
jobDefinitions.put('JDBC-AIX-Unit', { build job: 'JDBC-AIX-UnitTests', parameters: [ string(name: 'BRANCH', value: scmInfo.GIT_BRANCH ) ] } )
jobDefinitions.put('Test Authentication', {
withCredentials([
string(credentialsId: 'sfctest0-parameters-secret', variable: 'PARAMETERS_SECRET'),
]) {
sh '''\
|#!/bin/bash
|set -e
|ci/test_authentication.sh
'''.stripMargin()
}
})
jobDefinitions.put('Test WIF', {
withCredentials([
string(credentialsId: 'sfctest0-parameters-secret', variable: 'PARAMETERS_SECRET'),
]) {
sh '''\
|#!/bin/bash
|set -e
|ci/test_wif.sh
'''.stripMargin()
}
})
jobDefinitions.put('Test Revocation Validation', {
withCredentials([
usernamePassword(credentialsId: 'jenkins-snowflakedb-github-app',
usernameVariable: 'GITHUB_USER',
passwordVariable: 'GITHUB_TOKEN')
]) {
try {
sh '''\
|#!/bin/bash -e
|chmod +x $WORKSPACE/ci/test_revocation.sh
|$WORKSPACE/ci/test_revocation.sh
'''.stripMargin()
} finally {
archiveArtifacts artifacts: 'revocation-results.json,revocation-report.html', allowEmptyArchive: true
publishHTML(target: [
allowMissing: true,
alwaysLinkToLastBuild: true,
keepAll: true,
reportDir: '.',
reportFiles: 'revocation-report.html',
reportName: 'Revocation Validation Report'
])
}
}
})
stage('Test') {
parallel (jobDefinitions)
}
}
}
def wgetUpdateGithub(String state, String folder, String targetUrl, String seconds) {
def ghURL = "https://api.github.com/repos/snowflakedb/snowflake-jdbc/statuses/$COMMIT_SHA_LONG"
def data = JsonOutput.toJson([state: "${state}", context: "jenkins/${folder}",target_url: "${targetUrl}"])
sh "wget ${ghURL} --spider -q --header='Authorization: token $GIT_PASSWORD' --post-data='${data}'"
}
================================================
FILE: LICENSE.txt
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright (c) 2013-2018 Snowflake Computing, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.rst
================================================
Snowflake JDBC Driver
*********************
.. image:: https://github.com/snowflakedb/snowflake-jdbc/workflows/Build%20and%20Test/badge.svg?branch=master
:target: https://github.com/snowflakedb/snowflake-jdbc/actions?query=workflow%3A%22Build+and+Test%22+branch%3Amaster
.. image:: https://codecov.io/gh/snowflakedb/snowflake-jdbc/branch/master/graph/badge.svg?token=Mj6uPxk0pV
:target: https://codecov.io/gh/snowflakedb/snowflake-jdbc
.. image:: http://img.shields.io/:license-Apache%202-brightgreen.svg
:target: http://www.apache.org/licenses/LICENSE-2.0.txt
Snowflake provides a JDBC type 4 driver that supports core functionality, allowing Java program to connect to Snowflake.
.. |maven-snowflake-jdbc| image:: https://maven-badges.herokuapp.com/maven-central/net.snowflake/snowflake-jdbc/badge.svg?style=plastic
:target: https://repo1.maven.org/maven2/net/snowflake/snowflake-jdbc/
.. |maven-snowflake-jdbc-fips| image:: https://maven-badges.herokuapp.com/maven-central/net.snowflake/snowflake-jdbc-fips/badge.svg?style=plastic
:target: https://repo1.maven.org/maven2/net/snowflake/snowflake-jdbc-fips/
.. |maven-snowflake-jdbc-thin| image:: https://maven-badges.herokuapp.com/maven-central/net.snowflake/snowflake-jdbc-thin/badge.svg?style=plastic
:target: https://repo1.maven.org/maven2/net/snowflake/snowflake-jdbc-thin/
- snowflake-jdbc (fat-jar): |maven-snowflake-jdbc|
- snowflake-jdbc-fips (FIPS compliant fat-jar): |maven-snowflake-jdbc-fips|
- snowflake-jdbc-thin (thin-jar): |maven-snowflake-jdbc-thin|
Prerequisites
=============
The Snowflake JDBC driver requires Java 1.8 or higher. If the minimum required version of Java is not installed on the client machines where the JDBC driver is installed, you must install either Oracle Java or OpenJDK.
Installation
============
Maven
-----
Add following dependency for fat-jar
.. code-block:: xml
<dependency>
<groupId>net.snowflake</groupId>
<artifactId>snowflake-jdbc</artifactId>
<version>{version}</version>
</dependency>
or for FIPS compliant fat-jar
.. code-block:: xml
<dependency>
<groupId>net.snowflake</groupId>
<artifactId>snowflake-jdbc-fips</artifactId>
<version>{version}</version>
</dependency>
or for thin-jar
.. code-block:: xml
<dependency>
<groupId>net.snowflake</groupId>
<artifactId>snowflake-jdbc-thin</artifactId>
<version>{version}</version>
</dependency>
Build from Source Code
----------------------
1. Checkout source code from Github by running:
.. code-block:: bash
git clone https://github.com/snowflakedb/snowflake-jdbc.git
2. Build the fat-jar and install it in local maven repository by running:
.. code-block:: bash
./mvnw clean verify
./mvnw org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file -Dfile=target/snowflake-jdbc.jar -DpomFile=./public_pom.xml
3. Build the FIPS compliant fat-jar and install it in local maven repository by running:
.. code-block:: bash
cd FIPS
../mvnw clean verify
../mvnw org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file -Dfile=target/snowflake-jdbc-fips.jar -DpomFile=./public_pom.xml
cd -
4. Build the thin-jar and install it in local maven repository by running:
.. code-block:: bash
./mvnw clean verify -Dnot-self-contained-jar -Dthin-jar
./mvnw org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file -Dfile=target/snowflake-jdbc-thin.jar -DpomFile=./thin_public_pom.xml -Dnot-self-contained-jar -Dthin-jar
- ``thin-jar`` enables thin jar profile
- ``not-self-contained-jar`` turns off fat jar profile (enabled by default)
5. **Note that the built dependencies are installed with version 1.0-SNAPSHOT**
Usage
=====
Load Driver Class
-----------------
.. code-block:: java
Class.forName("net.snowflake.client.api.driver.SnowflakeDriver")
Note: The legacy driver class ``net.snowflake.client.jdbc.SnowflakeDriver`` is still available for backward compatibility but is deprecated.
Datasource
----------
Use ``SnowflakeDataSourceFactory`` to create DataSource instances:
.. code-block:: java
import net.snowflake.client.api.datasource.SnowflakeDataSource;
import net.snowflake.client.api.datasource.SnowflakeDataSourceFactory;
SnowflakeDataSource ds = SnowflakeDataSourceFactory.createDataSource();
ds.setAccount("myaccount");
ds.setUser("myuser");
ds.setPassword("mypassword");
Connection String
-----------------
US(West) Region:
.. code-block:: bash
jdbc:snowflake://<account>.snowflakecomputing.com/?<connection_params>
EU(Frankfurt) Region:
.. code-block:: bash
jdbc:snowflake://<account>.eu-central-1.snowflakecomputing.com/?<connection_params>
Documentation
=============
For detailed documentation, please refer to https://docs.snowflake.net/manuals/user-guide/jdbc.html
Development
=============
Run the maven command to check the coding style.
.. code-block:: bash
mvn -P check-style validate
Follow the instruction if any error occurs or run this command to fix the formats.
.. code-block:: bash
mvn com.spotify.fmt:fmt-maven-plugin:format
You may import the coding style from IntelliJ so that the coding style can be applied on IDE:
- In the **File** -> **Settings/Plugins**, and install `google-java-format` plugin.
- Enable `google-java-format` for the JDBC project.
- In the source code window, select **Code** -> **Reformat** to apply the coding style.
- Additionally configure IDE in **File** -> **Editor** -> **Code Style** -> **Java** to
- not use wildcard imports (tab **Imports**):
- **Use single class import**
- **Class count to use import with '*'** to 1000
- **Names count to use static import with '*'** to 1000
- always use braces in ``if/while/for/do..while`` in (tab **Wrapping and Braces**)
Tests
=====
Run Tests
---------
Set the environment variables to specify the target database.
.. code-block:: bash
export SNOWFLAKE_TEST_HOST=<your_host>
export SNOWFLAKE_TEST_ACCOUNT=<your_account>
export SNOWFLAKE_TEST_USER=<your_user>
export SNOWFLAKE_TEST_PASSWORD=<your_password>
export SNOWFLAKE_TEST_DATABASE=<your_database>
export SNOWFLAKE_TEST_SCHEMA=<your_schema>
export SNOWFLAKE_TEST_WAREHOUSE=<your_warehouse>
export SNOWFLAKE_TEST_ROLE=<your_role>
Run the maven ``verify`` goal.
.. code-block:: bash
mvn -DjenkinsIT -DtestCategory=net.snowflake.client.category.<category> verify
where ``category`` is the class name under the package ``net.snowflake.client.category``.
Prepare new version
---------------
Run script passing desired version:
.. code-block:: bash
./prepareNewVersion.sh 3.100.42
Add SNAPSHOT suffix when necessary:
.. code-block:: bash
./prepareNewVersion.sh 3.100.42-SNAPSHOT
Test Class Naming Convention
----------------------------
The test cases are fallen into a couple of criteria:
- The unit test class names end with ``Test``. They run part of the JDBC build jobs.
- The integration test class names end with ``IT``. They run part of the ``verify`` maven goal along with the test category specified by the parameter ``testCategory`` having ``net.snowflake.client.category`` classes.
- The manual test class names end with ``Manual``. They don't run in the CI but you can run them manually.
Aside from the general test criteria, the test case class names ending with ``LatestIT`` run only with the latest JDBC driver.
The main motivation behind is to skip those tests for the old JDBC driver. See ``./TestOnly`` directory for further information.
Support
=============
Feel free to file an issue or submit a PR here for general cases. For official support, contact Snowflake support at:
https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge
Notes
----------
This driver support GCP regional endpoints starting from version 3.21.0. Please ensure that any workloads using through this driver below the version 3.21.0 do not require support for regional endpoints on GCP. If you have questions about this, please contact Snowflake Support.
The driver uses Rust library called sf_mini_core, you can find its source code [here](https://github.com/snowflakedb/universal-driver/tree/main/sf_mini_core)
================================================
FILE: SECURITY.md
================================================
# Security Policy
Please refer to the Snowflake [HackerOne program](https://hackerone.com/snowflake?type=team) for our security policies and for reporting any security vulnerabilities.
For other security related questions and concerns, please contact the Snowflake security team at security@snowflake.com
================================================
FILE: TestOnly/.gitignore
================================================
target/
.idea/
================================================
FILE: TestOnly/README.rst
================================================
Test Only Maven Project
***********************
This directory includes a maven project to run the Snowflake JDBC tests with the specified JDBC version.
The primary goal is to run the tests against the oldest support JDBC driver to ensure no regression.
Run Tests
==========
.. code-block:: bash
mvn -DjenkinsIT -DtestCategory=net.snowflake.client.category.<category> verify
where ``category`` is the class name under the package ``net.snowflake.client.category``.
Update the JDBC version
=======================
Here are the steps updating the target JDBC driver version.
- Change the project version in ``pom.xml`` to the JDBC version that you want to run the tests.
- Locate ``maven-compiler-plugin`` plugin in ``pom.xml``
- Delete test case class files that should run along with the JDBC version.
- Check ``*LatestIT.java`` and move the test cases that should run along with the JDBC to the base classes.
================================================
FILE: TestOnly/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.snowflake</groupId>
<artifactId>snowflake-jdbc-test</artifactId>
<version>3.13.21</version>
<name>snowflake-jdbc-test</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<arrow.version>17.0.0</arrow.version>
<awaitility.version>4.2.0</awaitility.version>
<jacksondatabind.version>2.17.2</jacksondatabind.version>
<jacoco.version>0.8.4</jacoco.version>
<jacoco.skip.instrument>true</jacoco.skip.instrument>
<jna.version>5.13.0</jna.version>
<junit.version>5.11.1</junit.version>
<surefire.version>3.5.1</surefire.version>
<mockito.version>3.5.6</mockito.version>
<netty.version>4.1.133.Final</netty.version>
<apache.httpclient.version>4.5.14</apache.httpclient.version>
<bouncycastle.version>1.84</bouncycastle.version>
<shadeBase>net.snowflake.client.jdbc.internal</shadeBase>
</properties>
<dependencies>
<dependency> <!-- netty is not a direct dependency. It is used by arrow-vector -->
<groupId>io.netty</groupId>
<artifactId>netty-common</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${apache.httpclient.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite</artifactId>
<version>1.11.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-engine</artifactId>
<version>1.11.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>1.11.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite-api</artifactId>
<version>1.11.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite-engine</artifactId>
<version>1.11.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.11.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>2.1</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>${awaitility.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.4</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.snowflake</groupId>
<artifactId>snowflake-jdbc</artifactId>
<version>${project.version}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>net.snowflake</groupId>
<artifactId>snowflake-common</artifactId>
<version>4.0.2-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.10.0</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.28.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart-mini</artifactId>
<version>1.0.6.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jacksondatabind.version}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-vector</artifactId>
<version>${arrow.version}</version>
<exclusions>
<exclusion> <!-- Exclude earlier version to avoid whitesource vulnerability. -->
<groupId>io.netty</groupId>
<artifactId>netty-common</artifactId>
</exclusion>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-unsafe</artifactId>
<version>${arrow.version}</version>
</dependency>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-netty-buffer-patch</artifactId>
<version>${arrow.version}</version>
<exclusions>
<exclusion> <!-- Exclude earlier version to avoid whitesource vulnerability. -->
<groupId>io.netty</groupId>
<artifactId>netty-common</artifactId>
</exclusion>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.4.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>32.0.0-jre</version>
</dependency>
<!-- http://mvnrepository.com/artifact/net.java.dev.jna/jna -->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>${jna.version}</version>
</dependency>
<!-- http://mvnrepository.com/artifact/net.java.dev.jna/jna-platform -->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>${jna.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>${basedir}/../src/main/java</sourceDirectory>
<testSourceDirectory>${basedir}/../src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>${basedir}/../src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>${basedir}/../src/test/resources</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<excludeDefaultDirectories/>
<filesets>
<fileset>
<directory>lib</directory>
<includes>
<include>*.jar</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>3.0.0-M1</version>
<executions>
<execution>
<id>install-arrow-memory</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.basedir}/../dependencies/arrow-memory-${arrow.version}.pom</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory</artifactId>
<version>${arrow.version}</version>
<packaging>pom</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-memory-core</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.basedir}/../dependencies/arrow-memory-core-${arrow.version}.jar</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-core</artifactId>
<version>${arrow.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-memory-unsafe</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.basedir}/../dependencies/arrow-memory-unsafe-${arrow.version}.jar</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-unsafe</artifactId>
<version>${arrow.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-memory-netty-buffer-patch</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.basedir}/../dependencies/arrow-memory-netty-buffer-patch-${arrow.version}.jar</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-netty</artifactId>
<version>${arrow.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-format</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.basedir}/../dependencies/arrow-format-${arrow.version}.jar</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-format</artifactId>
<version>${arrow.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-arrow-vector</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.basedir}/../dependencies/arrow-vector-${arrow.version}.jar</file>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-vector</artifactId>
<version>${arrow.version}</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<skipMain>true</skipMain>
<source>8</source>
<target>8</target>
<testExcludes>
<!-- arrow tests -->
<exclude>**/net/snowflake/client/core/arrow/*.java</exclude>
<exclude>**/ResultSetArrow*.java</exclude>
<exclude>**/PreparedStatementArrow*IT.java</exclude>
<exclude>**/SFArrowResultSetIT.java</exclude>
<!-- structured types tests -->
<exclude>**/structuredtypes/sqldata/*.java</exclude>
<!-- Latest JDBC driver tests that cannot run with the oldest driver -->
<exclude>**/*LatestIT.java</exclude> <!-- Latest JDBC driver tests that cannot run with the oldest driver -->
<exclude>**/*WiremockIT.java</exclude>
<!-- Unit Tests -->
<exclude>**/*Test.java</exclude>
<!-- Manual Tests -->
<exclude>**/*Manual.java</exclude>
<!-- Telemetry API is new -->
<exclude>**/TelemetryServiceIT.java</exclude>
<exclude>**/TelemetryIT.java</exclude>
<!-- OCSP implementation is new -->
<exclude>**/SFTrustManagerIT.java</exclude>
<!-- Logger improvement is new -->
<exclude>**/SLF4JLoggerIT.java</exclude>
<!-- Async support is new -->
<exclude>**/ResultSetAsyncIT.java</exclude>
<!-- ResultSet serialization is new -->
<exclude>**/SnowflakeResultSetSerializable*IT.java</exclude>
<!-- AuthTestHelper is a new class for authentication tests -->
<exclude>**/AuthTestHelper.java</exclude>
</testExcludes>
<useIncrementalCompilation>false</useIncrementalCompilation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit-platform</artifactId>
<version>${surefire.version}</version>
</dependency>
</dependencies>
<version>${surefire.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit-platform</artifactId>
<version>${surefire.version}</version>
</dependency>
</dependencies>
<version>${surefire.version}</version>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>jenkinsIT</id>
<activation>
<property>
<name>jenkinsIT</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<failIfNoTests>false</failIfNoTests>
</configuration>
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>verify</goal>
</goals>
</execution>
<execution>
<id>DefaultIT</id>
<goals>
<goal>integration-test</goal>
</goals>
<configuration>
<systemPropertyVariables>
<net.snowflake.jdbc.loggerImpl>net.snowflake.client.internal.log.JDK14Logger</net.snowflake.jdbc.loggerImpl>
<java.util.logging.config.file>${basedir}/src/test/resources/logging.properties</java.util.logging.config.file>
</systemPropertyVariables>
<test>${integrationTestSuites}</test>
</configuration>
</execution>
</executions>
</plugin>
<!-- collect code coverage -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<executions>
<execution>
<id>pre-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>target/jacoco-it.exec</destFile>
</configuration>
</execution>
<execution>
<id>post-integration-test</id>
<phase>post-integration-test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>target/jacoco-it.exec</dataFile>
<outputDirectory>target/jacoco-it</outputDirectory>
</configuration>
</execution>
</executions>
<configuration>
<skip>${jacoco.skip.instrument}</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
================================================
FILE: ci/_init.sh
================================================
#!/usr/local/bin/env bash
set -e
export PLATFORM=$(echo $(uname) | tr '[:upper:]' '[:lower:]')
export INTERNAL_REPO=artifactory.ci1.us-west-2.aws-dev.app.snowflake.com/internal-development-docker-drivers-local
if [[ -z "$GITHUB_ACTIONS" ]]; then
# Use the internal Docker Registry
export DOCKER_REGISTRY_NAME=$INTERNAL_REPO/snowflakedb
export WORKSPACE=${WORKSPACE:-/tmp}
else
# Use Docker Hub
export DOCKER_REGISTRY_NAME=snowflakedb
export WORKSPACE=$GITHUB_WORKSPACE
fi
mkdir -p $WORKSPACE
export DRIVER_NAME=jdbc
# Test Images
TEST_IMAGE_VERSION=1
declare -A TEST_IMAGE_NAMES=(
[$DRIVER_NAME-rockylinux8-openjdk8]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-rockylinux8-openjdk8-test:$TEST_IMAGE_VERSION
[$DRIVER_NAME-rockylinux8-openjdk11]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-rockylinux8-openjdk11-test:$TEST_IMAGE_VERSION
[$DRIVER_NAME-rockylinux8-openjdk17]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-rockylinux8-openjdk17-test:$TEST_IMAGE_VERSION
[$DRIVER_NAME-rockylinux8-openjdk21]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-rockylinux8-openjdk21-test:$TEST_IMAGE_VERSION
[$DRIVER_NAME-rockylinux9-openjdk8]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-rockylinux9-openjdk8-test:$TEST_IMAGE_VERSION
[$DRIVER_NAME-rockylinux9-openjdk11]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-rockylinux9-openjdk11-test:$TEST_IMAGE_VERSION
[$DRIVER_NAME-rockylinux9-openjdk17]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-rockylinux9-openjdk17-test:$TEST_IMAGE_VERSION
[$DRIVER_NAME-rockylinux9-openjdk21]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-rockylinux9-openjdk21-test:$TEST_IMAGE_VERSION
)
export TEST_IMAGE_NAMES
declare -A TEST_IMAGE_DOCKERFILES=(
[$DRIVER_NAME-rockylinux8-openjdk8]=jdbc-rockylinux8-openjdk-test
[$DRIVER_NAME-rockylinux8-openjdk11]=jdbc-rockylinux8-openjdk-test
[$DRIVER_NAME-rockylinux8-openjdk17]=jdbc-rockylinux8-openjdk-test
[$DRIVER_NAME-rockylinux8-openjdk21]=jdbc-rockylinux8-openjdk-test
[$DRIVER_NAME-rockylinux9-openjdk8]=jdbc-rockylinux-openjdk-test
[$DRIVER_NAME-rockylinux9-openjdk11]=jdbc-rockylinux-openjdk-test
[$DRIVER_NAME-rockylinux9-openjdk17]=jdbc-rockylinux-openjdk-test
[$DRIVER_NAME-rockylinux9-openjdk21]=jdbc-rockylinux-openjdk-test
)
declare -A TEST_IMAGE_BUILD_ARGS=(
[$DRIVER_NAME-rockylinux8-openjdk8]="--target jdbc-rockylinux8-openjdk8"
[$DRIVER_NAME-rockylinux8-openjdk11]="--target jdbc-rockylinux8-openjdk11"
[$DRIVER_NAME-rockylinux8-openjdk17]="--target jdbc-rockylinux8-openjdk17"
[$DRIVER_NAME-rockylinux8-openjdk21]="--target jdbc-rockylinux8-openjdk21"
[$DRIVER_NAME-rockylinux9-openjdk8]="--target jdbc-rockylinux-openjdk8"
[$DRIVER_NAME-rockylinux9-openjdk11]="--target jdbc-rockylinux-openjdk11"
[$DRIVER_NAME-rockylinux9-openjdk17]="--target jdbc-rockylinux-openjdk17"
[$DRIVER_NAME-rockylinux9-openjdk21]="--target jdbc-rockylinux-openjdk21"
)
================================================
FILE: ci/build.sh
================================================
#!/usr/bin/env bash
set -e
#
# Build JDBC driver
#
set -o pipefail
THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export WORKSPACE=${WORKSPACE:=/tmp}
$THIS_DIR/container/build_component.sh
================================================
FILE: ci/container/build_component.sh
================================================
#!/bin/bash -e
#
# Build JDBC driver
#
set -o pipefail
THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
JDBC_ROOT=$(cd "${THIS_DIR}/../../" && pwd)
cd $JDBC_ROOT
rm -f lib/*.jar
mvn clean install -DskipTests --batch-mode --show-version
cd FIPS
rm -f lib/*.jar
mvn clean install -DskipTests -Dsurefire.argLine="-Djavax.net.debug=ssl:handshake" -Dfailsafe.argLine="-Djavax.net.debug=ssl:handshake" --batch-mode --show-version
$THIS_DIR/upload_artifact.sh
================================================
FILE: ci/container/change_snowflake_test_pwd.py
================================================
#!/usr/bin/env python
#
# Set a complex password for test user snowman
#
import os
import sys
import snowflake.connector
params = {
'account': '',
'user': os.getenv("SNOWFLAKE_TEST_USER"),
'password': os.getenv("SNOWFLAKE_TEST_PASSWORD"),
'database': os.getenv("SNOWFLAKE_TEST_DATABASE"),
'role': os.getenv("SNOWFLAKE_TEST_ROLE"),
'host': os.getenv("SNOWFLAKE_TEST_HOST"),
'port': os.getenv("SNOWFLAKE_TEST_PORT"),
'protocol': os.getenv("SNOWFLAKE_TEST_PROTOCOL"),
}
for account in ["testaccount", "s3testaccount", "azureaccount", "gcpaccount"]:
params['account'] = account
conn = snowflake.connector.connect(**params)
conn.cursor().execute("use role accountadmin")
cmd = "alter user set password = '{}'".format(os.getenv("SNOWFLAKE_TEST_PASSWORD_NEW"))
print(cmd)
conn.cursor().execute(cmd)
conn.close()
================================================
FILE: ci/container/create_schema.py
================================================
#!/usr/bin/env python
#
# Create test schema
#
import os
import sys
import snowflake.connector
import sf_test_utils
test_schema = sf_test_utils.get_test_schema()
if not test_schema:
sys.exit(2)
params = sf_test_utils.init_connection_params()
con = snowflake.connector.connect(**params)
con.cursor().execute("create or replace schema {0}".format(test_schema))
sys.exit(0)
================================================
FILE: ci/container/download_artifact.sh
================================================
#!/bin/bash -e
#
# Download Artifact
#
set -o pipefail
THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
JDBC_ROOT=$(cd "${THIS_DIR}/../../" && pwd)
if [[ -z "$GITHUB_ACTIONS" ]] ;then
export GIT_BRANCH=${GIT_BRANCH:-origin/$(git rev-parse --abbrev-ref HEAD)}
BRANCH=$(basename ${GIT_BRANCH})
# Place to hold downloaded library
export LIB_DIR=$WORKSPACE/lib
if [[ "$is_old_driver" != "true" ]]; then
# Not Old Driver test
mkdir -p $LIB_DIR
pushd $LIB_DIR >& /dev/null
base_stage=s3://sfc-eng-jenkins/repository/jdbc/${BRANCH}
export GIT_COMMIT=${GIT_COMMIT:-$(aws s3 cp $base_stage/latest_commit -)}
source_stage=$base_stage/${GIT_COMMIT}
echo "[INFO] downloading ${source_stage}/"
aws s3 cp --only-show-errors $source_stage/ . --recursive
popd >& /dev/null
mkdir -p /mnt/host/lib
cp -p $LIB_DIR/*.jar /mnt/host/lib
fi
else
export GIT_BRANCH=origin/$(basename ${GITHUB_REF})
export GIT_COMMIT=${GITHUB_SHA}
fi
================================================
FILE: ci/container/drop_schema.py
================================================
#!/usr/bin/env python
#
# Create test schema
#
import os
import sys
import snowflake.connector
import sf_test_utils
test_schema = sf_test_utils.get_test_schema()
if not test_schema:
sys.exit(0)
params = sf_test_utils.init_connection_params()
con = snowflake.connector.connect(**params)
con.cursor().execute("drop schema if exists {0}".format(test_schema))
sys.exit(0)
================================================
FILE: ci/container/hang_webserver.py
================================================
#!/usr/bin/env python3
import sys
from http.server import BaseHTTPRequestHandler,HTTPServer
from socketserver import ThreadingMixIn
import threading
import time
class HTTPRequestHandler(BaseHTTPRequestHandler):
def do_POST(self):
if self.path.startswith('/403'):
self.send_response(403)
self.send_header('Content-Type', 'text/plain')
self.end_headers()
elif self.path.startswith('/404'):
self.send_response(404)
self.send_header('Content-Type', 'text/plain')
self.end_headers()
elif self.path.startswith('/hang'):
time.sleep(300)
self.send_response(200, 'OK')
self.send_header('Content-Type', 'text/plain')
self.end_headers()
else:
self.send_response(200, 'OK')
self.send_header('Content-Type', 'text/plain')
self.end_headers()
do_GET = do_POST
class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
allow_reuse_address = True
def shutdown(self):
self.socket.close()
HTTPServer.shutdown(self)
class SimpleHttpServer():
def __init__(self, ip, port):
self.server = ThreadedHTTPServer((ip,port), HTTPRequestHandler)
def start(self):
self.server_thread = threading.Thread(target=self.server.serve_forever)
self.server_thread.daemon = True
self.server_thread.start()
def waitForThread(self):
self.server_thread.join()
def stop(self):
self.server.shutdown()
self.waitForThread()
if __name__=='__main__':
if len(sys.argv) != 2:
print("Usage: python3 {} PORT".format(sys.argv[0]))
sys.exit(2)
PORT = int(sys.argv[1])
server = SimpleHttpServer('localhost', PORT)
print('HTTP Server Running on PORT {}..........'.format(PORT))
server.start
gitextract_690hkf8e/ ├── .cursor/ │ └── skills/ │ └── graphite-pr-workflow/ │ └── SKILL.md ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── BUG_REPORT.md │ │ └── FEATURE_REQUEST.md │ ├── pull_request_template.md │ ├── repo_meta.yaml │ └── workflows/ │ ├── build-test.yml │ ├── changelog.yml │ ├── check-style.yml │ ├── cla_bot.yml │ ├── jira_close.yml │ ├── jira_comment.yml │ ├── jira_issue.yml │ ├── parameters_aws.json.gpg │ ├── parameters_aws_auth_tests.json.gpg │ ├── parameters_azure.json.gpg │ ├── parameters_gcp.json.gpg │ ├── rsa_keys/ │ │ ├── rsa_key_jdbc_aws.p8.gpg │ │ ├── rsa_key_jdbc_azure.p8.gpg │ │ └── rsa_key_jdbc_gcp.p8.gpg │ ├── semgrep.yml │ ├── snyk-issue.yml │ ├── snyk-pr.yml │ └── snyk-scan.yml ├── .gitignore ├── .mvn/ │ └── wrapper/ │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── .pre-commit-config.yaml ├── CHANGELOG.md ├── FIPS/ │ ├── .gitignore │ ├── pom.xml │ ├── public_pom.xml │ ├── scripts/ │ │ └── check_content.sh │ └── src/ │ └── test/ │ └── java/ │ └── net/ │ └── snowflake/ │ └── client/ │ ├── AbstractDriverIT.java │ ├── DontRunOnGCP.java │ ├── DontRunOnGithubActions.java │ ├── TestUtil.java │ ├── category/ │ │ └── FipsTestSuite.java │ └── jdbc/ │ └── ConnectionFipsIT.java ├── Jenkinsfile ├── LICENSE.txt ├── README.rst ├── SECURITY.md ├── TestOnly/ │ ├── .gitignore │ ├── README.rst │ └── pom.xml ├── ci/ │ ├── _init.sh │ ├── build.sh │ ├── container/ │ │ ├── build_component.sh │ │ ├── change_snowflake_test_pwd.py │ │ ├── create_schema.py │ │ ├── download_artifact.sh │ │ ├── drop_schema.py │ │ ├── hang_webserver.py │ │ ├── sf_test_utils.py │ │ ├── test_authentication.sh │ │ ├── test_component.sh │ │ └── upload_artifact.sh │ ├── image/ │ │ ├── .gitignore │ │ ├── Dockerfile.jdbc-rockylinux-openjdk-test │ │ ├── Dockerfile.jdbc-rockylinux8-openjdk-test │ │ ├── build.sh │ │ ├── scripts/ │ │ │ ├── aws.sh │ │ │ ├── entrypoint.sh │ │ │ ├── git.sh │ │ │ ├── npmrc │ │ │ ├── pip.sh │ │ │ └── python3.6.sh │ │ └── update.sh │ ├── log_analyze_setup.sh │ ├── scripts/ │ │ ├── check_content.sh │ │ ├── check_no_raw_system_calls.sh │ │ ├── login_docker.sh │ │ ├── set_git_info.sh │ │ └── setup_gpg.sh │ ├── test.sh │ ├── test_authentication.sh │ ├── test_mac.sh │ ├── test_revocation.sh │ ├── test_wif.sh │ ├── test_windows.bat │ └── wif/ │ ├── aws-lambda/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── snowflake/ │ │ │ └── wif/ │ │ │ └── aws/ │ │ │ └── WifLambdaFunctionE2e.java │ │ └── test.sh │ ├── azure-function/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── host.json │ │ ├── pom.xml │ │ ├── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── snowflake/ │ │ │ └── wif/ │ │ │ └── azure/ │ │ │ └── WifAzureFunctionE2e.java │ │ └── test.sh │ ├── gcp-function/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── snowflake/ │ │ │ └── wif/ │ │ │ └── gcp/ │ │ │ └── WifGcpFunctionE2e.java │ │ └── test.sh │ ├── parameters/ │ │ ├── parameters_wif.json.gpg │ │ ├── parameters_wif_function.json.gpg │ │ ├── rsa_gcp_function.gpg │ │ ├── rsa_wif_aws_azure.gpg │ │ └── rsa_wif_gcp.gpg │ ├── shared/ │ │ └── com/ │ │ └── snowflake/ │ │ └── wif/ │ │ └── common/ │ │ └── WifTestHelper.java │ └── test_wif.sh ├── codecov/ │ ├── codecov │ ├── codecov.SHA256SUM │ ├── codecov.SHA256SUM.sig │ └── codecov_aarch64 ├── codecov.yml ├── dependencies/ │ ├── Readme.md │ ├── arrow-format-17.0.0.jar │ ├── arrow-memory-17.0.0.pom │ ├── arrow-memory-core-17.0.0.jar │ ├── arrow-memory-netty-buffer-patch-17.0.0.jar │ ├── arrow-memory-unsafe-17.0.0.jar │ ├── arrow-vector-17.0.0.jar │ └── tika-core-2.4.1.jar ├── fat-jar-test-app/ │ ├── pom.xml │ ├── run.sh │ └── src/ │ └── main/ │ ├── fips-java/ │ │ └── net/ │ │ └── snowflake/ │ │ └── FipsInitializer.java │ ├── java/ │ │ └── net/ │ │ └── snowflake/ │ │ └── FatJarTestApp.java │ └── resources/ │ ├── logback.xml │ ├── logging.properties │ └── test.csv ├── linkage-checker-exclusion-rules.xml ├── mvnw ├── mvnw.cmd ├── output.json ├── parent-pom.xml ├── pom.xml ├── prepareNewVersion.sh ├── prober/ │ ├── Dockerfile │ ├── Jenkinsfile.groovy │ ├── entrypoint.sh │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── snowflake/ │ └── client/ │ └── jdbc/ │ └── prober/ │ └── Prober.java ├── public_pom.xml ├── settings.json ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── net/ │ │ │ └── snowflake/ │ │ │ └── client/ │ │ │ ├── api/ │ │ │ │ ├── auth/ │ │ │ │ │ └── AuthenticatorType.java │ │ │ │ ├── connection/ │ │ │ │ │ ├── DownloadStreamConfig.java │ │ │ │ │ ├── SnowflakeConnection.java │ │ │ │ │ ├── SnowflakeDatabaseMetaData.java │ │ │ │ │ └── UploadStreamConfig.java │ │ │ │ ├── datasource/ │ │ │ │ │ ├── SnowflakeDataSource.java │ │ │ │ │ └── SnowflakeDataSourceFactory.java │ │ │ │ ├── driver/ │ │ │ │ │ └── SnowflakeDriver.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── ErrorCode.java │ │ │ │ │ └── SnowflakeSQLException.java │ │ │ │ ├── http/ │ │ │ │ │ └── HttpHeadersCustomizer.java │ │ │ │ ├── loader/ │ │ │ │ │ ├── LoadResultListener.java │ │ │ │ │ ├── Loader.java │ │ │ │ │ ├── LoaderFactory.java │ │ │ │ │ ├── LoaderProperty.java │ │ │ │ │ ├── LoadingError.java │ │ │ │ │ └── Operation.java │ │ │ │ ├── pooling/ │ │ │ │ │ ├── SnowflakeConnectionPoolDataSource.java │ │ │ │ │ └── SnowflakeConnectionPoolDataSourceFactory.java │ │ │ │ ├── resultset/ │ │ │ │ │ ├── FieldMetadata.java │ │ │ │ │ ├── QueryStatus.java │ │ │ │ │ ├── SnowflakeAsyncResultSet.java │ │ │ │ │ ├── SnowflakeResultSet.java │ │ │ │ │ ├── SnowflakeResultSetMetaData.java │ │ │ │ │ ├── SnowflakeResultSetSerializable.java │ │ │ │ │ └── SnowflakeType.java │ │ │ │ └── statement/ │ │ │ │ ├── SnowflakePreparedStatement.java │ │ │ │ └── SnowflakeStatement.java │ │ │ ├── internal/ │ │ │ │ ├── api/ │ │ │ │ │ └── implementation/ │ │ │ │ │ ├── connection/ │ │ │ │ │ │ └── SnowflakeConnectionImpl.java │ │ │ │ │ ├── datasource/ │ │ │ │ │ │ └── SnowflakeBasicDataSource.java │ │ │ │ │ ├── metadata/ │ │ │ │ │ │ └── SnowflakeDatabaseMetaDataImpl.java │ │ │ │ │ ├── pooling/ │ │ │ │ │ │ ├── LogicalConnection.java │ │ │ │ │ │ ├── SnowflakeConnectionPoolDataSourceImpl.java │ │ │ │ │ │ └── SnowflakePooledConnection.java │ │ │ │ │ ├── resultset/ │ │ │ │ │ │ ├── FieldMetadataImpl.java │ │ │ │ │ │ └── SnowflakeBaseResultSet.java │ │ │ │ │ └── statement/ │ │ │ │ │ ├── SnowflakeCallableStatementImpl.java │ │ │ │ │ ├── SnowflakePreparedStatementImpl.java │ │ │ │ │ └── SnowflakeStatementImpl.java │ │ │ │ ├── common/ │ │ │ │ │ └── core/ │ │ │ │ │ ├── SFBinary.java │ │ │ │ │ └── SFBinaryFormat.java │ │ │ │ ├── config/ │ │ │ │ │ ├── ConnectionParameters.java │ │ │ │ │ ├── SFClientConfig.java │ │ │ │ │ ├── SFClientConfigParser.java │ │ │ │ │ └── SFConnectionConfigParser.java │ │ │ │ ├── core/ │ │ │ │ │ ├── ArrowSqlInput.java │ │ │ │ │ ├── AssertUtil.java │ │ │ │ │ ├── AttributeEnhancingHttpRequestRetryHandler.java │ │ │ │ │ ├── BaseSqlInput.java │ │ │ │ │ ├── BasicEvent.java │ │ │ │ │ ├── CachedCredentialType.java │ │ │ │ │ ├── CancellationReason.java │ │ │ │ │ ├── ChunkDownloader.java │ │ │ │ │ ├── ColumnTypeHelper.java │ │ │ │ │ ├── Constants.java │ │ │ │ │ ├── CredentialManager.java │ │ │ │ │ ├── DataConversionContext.java │ │ │ │ │ ├── DefaultFileCacheManager.java │ │ │ │ │ ├── DownloaderMetrics.java │ │ │ │ │ ├── Event.java │ │ │ │ │ ├── EventHandler.java │ │ │ │ │ ├── EventUtil.java │ │ │ │ │ ├── FieldSchemaCreator.java │ │ │ │ │ ├── FileCacheManager.java │ │ │ │ │ ├── FileCacheManagerBuilder.java │ │ │ │ │ ├── FileCacheUtil.java │ │ │ │ │ ├── FileTypeDetector.java │ │ │ │ │ ├── FileUtil.java │ │ │ │ │ ├── HeaderCustomizerHttpRequestInterceptor.java │ │ │ │ │ ├── HeartbeatIntervalSelector.java │ │ │ │ │ ├── HeartbeatRegistry.java │ │ │ │ │ ├── HeartbeatThread.java │ │ │ │ │ ├── HttpClientSettingsKey.java │ │ │ │ │ ├── HttpExecutingContext.java │ │ │ │ │ ├── HttpExecutingContextBuilder.java │ │ │ │ │ ├── HttpProtocol.java │ │ │ │ │ ├── HttpResponseContextDto.java │ │ │ │ │ ├── HttpResponseWithHeaders.java │ │ │ │ │ ├── HttpUtil.java │ │ │ │ │ ├── JsonSqlInput.java │ │ │ │ │ ├── JsonSqlOutput.java │ │ │ │ │ ├── MetaDataOfBinds.java │ │ │ │ │ ├── NoOpFileCacheManager.java │ │ │ │ │ ├── OCSPMode.java │ │ │ │ │ ├── OCSPTelemetryData.java │ │ │ │ │ ├── ObjectMapperFactory.java │ │ │ │ │ ├── OpaqueContextDTO.java │ │ │ │ │ ├── ParameterBindingDTO.java │ │ │ │ │ ├── PrivateLinkDetector.java │ │ │ │ │ ├── QueryContextCache.java │ │ │ │ │ ├── QueryContextDTO.java │ │ │ │ │ ├── QueryContextEntryDTO.java │ │ │ │ │ ├── QueryExecDTO.java │ │ │ │ │ ├── QueryResultFormat.java │ │ │ │ │ ├── ResultUtil.java │ │ │ │ │ ├── SFArrowResultSet.java │ │ │ │ │ ├── SFBaseResultSet.java │ │ │ │ │ ├── SFBaseSession.java │ │ │ │ │ ├── SFBaseStatement.java │ │ │ │ │ ├── SFBasicCrlTrustManager.java │ │ │ │ │ ├── SFChildResult.java │ │ │ │ │ ├── SFCrlTrustManagerFactory.java │ │ │ │ │ ├── SFException.java │ │ │ │ │ ├── SFExtendedCrlTrustManager.java │ │ │ │ │ ├── SFFixedViewResultSet.java │ │ │ │ │ ├── SFJsonResultSet.java │ │ │ │ │ ├── SFLoginInput.java │ │ │ │ │ ├── SFLoginOutput.java │ │ │ │ │ ├── SFOCSPException.java │ │ │ │ │ ├── SFOauthLoginInput.java │ │ │ │ │ ├── SFPreparedStatementMetaData.java │ │ │ │ │ ├── SFPubKeysInternal.java │ │ │ │ │ ├── SFResultSet.java │ │ │ │ │ ├── SFResultSetFactory.java │ │ │ │ │ ├── SFResultSetMetaData.java │ │ │ │ │ ├── SFSSLConnectionSocketFactory.java │ │ │ │ │ ├── SFSession.java │ │ │ │ │ ├── SFSessionProperty.java │ │ │ │ │ ├── SFSqlInput.java │ │ │ │ │ ├── SFStatement.java │ │ │ │ │ ├── SFStatementType.java │ │ │ │ │ ├── SFTrustManager.java │ │ │ │ │ ├── SdkProxyRoutePlanner.java │ │ │ │ │ ├── SecureStorageAppleManager.java │ │ │ │ │ ├── SecureStorageLinuxManager.java │ │ │ │ │ ├── SecureStorageManager.java │ │ │ │ │ ├── SecureStorageWindowsManager.java │ │ │ │ │ ├── SecurityUtil.java │ │ │ │ │ ├── SessionUtil.java │ │ │ │ │ ├── SessionUtilExternalBrowser.java │ │ │ │ │ ├── SessionUtilKeyPair.java │ │ │ │ │ ├── SfSqlArray.java │ │ │ │ │ ├── SfTimestampUtil.java │ │ │ │ │ ├── SnowflakeMutableProxyRoutePlanner.java │ │ │ │ │ ├── SpcsTokenReader.java │ │ │ │ │ ├── StmtUtil.java │ │ │ │ │ ├── SystemUtil.java │ │ │ │ │ ├── URLUtil.java │ │ │ │ │ ├── UUIDUtils.java │ │ │ │ │ ├── arrow/ │ │ │ │ │ │ ├── AbstractArrowVectorConverter.java │ │ │ │ │ │ ├── ArrayConverter.java │ │ │ │ │ │ ├── ArrowResultChunkIndexSorter.java │ │ │ │ │ │ ├── ArrowResultUtil.java │ │ │ │ │ │ ├── ArrowVectorConverter.java │ │ │ │ │ │ ├── ArrowVectorConverterUtil.java │ │ │ │ │ │ ├── BigIntToFixedConverter.java │ │ │ │ │ │ ├── BigIntToScaledFixedConverter.java │ │ │ │ │ │ ├── BigIntToTimeConverter.java │ │ │ │ │ │ ├── BigIntToTimestampLTZConverter.java │ │ │ │ │ │ ├── BigIntToTimestampNTZConverter.java │ │ │ │ │ │ ├── BitToBooleanConverter.java │ │ │ │ │ │ ├── DateConverter.java │ │ │ │ │ │ ├── DecfloatToDecimalConverter.java │ │ │ │ │ │ ├── DecimalToScaledFixedConverter.java │ │ │ │ │ │ ├── DoubleToRealConverter.java │ │ │ │ │ │ ├── IntToFixedConverter.java │ │ │ │ │ │ ├── IntToScaledFixedConverter.java │ │ │ │ │ │ ├── IntToTimeConverter.java │ │ │ │ │ │ ├── IntervalDayTimeToDurationConverter.java │ │ │ │ │ │ ├── IntervalYearMonthToPeriodConverter.java │ │ │ │ │ │ ├── MapConverter.java │ │ │ │ │ │ ├── SmallIntToFixedConverter.java │ │ │ │ │ │ ├── SmallIntToScaledFixedConverter.java │ │ │ │ │ │ ├── StructConverter.java │ │ │ │ │ │ ├── StructObjectWrapper.java │ │ │ │ │ │ ├── StructuredTypeDateTimeConverter.java │ │ │ │ │ │ ├── ThreeFieldStructToTimestampTZConverter.java │ │ │ │ │ │ ├── TinyIntToFixedConverter.java │ │ │ │ │ │ ├── TinyIntToScaledFixedConverter.java │ │ │ │ │ │ ├── TwoFieldStructToTimestampLTZConverter.java │ │ │ │ │ │ ├── TwoFieldStructToTimestampNTZConverter.java │ │ │ │ │ │ ├── TwoFieldStructToTimestampTZConverter.java │ │ │ │ │ │ ├── VarBinaryToBinaryConverter.java │ │ │ │ │ │ ├── VarCharConverter.java │ │ │ │ │ │ ├── VectorTypeConverter.java │ │ │ │ │ │ └── tostringhelpers/ │ │ │ │ │ │ ├── ArrowArrayStringRepresentationBuilder.java │ │ │ │ │ │ ├── ArrowObjectStringRepresentationBuilder.java │ │ │ │ │ │ └── ArrowStringRepresentationBuilderBase.java │ │ │ │ │ ├── auth/ │ │ │ │ │ │ ├── ClientAuthnDTO.java │ │ │ │ │ │ ├── ClientAuthnParameter.java │ │ │ │ │ │ ├── oauth/ │ │ │ │ │ │ │ ├── AccessTokenProvider.java │ │ │ │ │ │ │ ├── AuthorizationCodeRedirectRequestHandler.java │ │ │ │ │ │ │ ├── DPoPUtil.java │ │ │ │ │ │ │ ├── OAuthAccessTokenForRefreshTokenProvider.java │ │ │ │ │ │ │ ├── OAuthAccessTokenProviderFactory.java │ │ │ │ │ │ │ ├── OAuthAuthorizationCodeAccessTokenProvider.java │ │ │ │ │ │ │ ├── OAuthClientCredentialsAccessTokenProvider.java │ │ │ │ │ │ │ ├── OAuthUtil.java │ │ │ │ │ │ │ ├── RandomStateProvider.java │ │ │ │ │ │ │ ├── StateProvider.java │ │ │ │ │ │ │ └── TokenResponseDTO.java │ │ │ │ │ │ └── wif/ │ │ │ │ │ │ ├── AwsAttestationService.java │ │ │ │ │ │ ├── AwsIdentityAttestationCreator.java │ │ │ │ │ │ ├── AzureAttestationService.java │ │ │ │ │ │ ├── AzureIdentityAttestationCreator.java │ │ │ │ │ │ ├── GcpIdentityAttestationCreator.java │ │ │ │ │ │ ├── OidcIdentityAttestationCreator.java │ │ │ │ │ │ ├── PlatformDetectionUtil.java │ │ │ │ │ │ ├── WorkloadIdentityAttestation.java │ │ │ │ │ │ ├── WorkloadIdentityAttestationCreator.java │ │ │ │ │ │ ├── WorkloadIdentityAttestationProvider.java │ │ │ │ │ │ ├── WorkloadIdentityProviderType.java │ │ │ │ │ │ └── WorkloadIdentityUtil.java │ │ │ │ │ ├── bind/ │ │ │ │ │ │ ├── BindException.java │ │ │ │ │ │ └── BindUploader.java │ │ │ │ │ ├── crl/ │ │ │ │ │ │ ├── CRLCache.java │ │ │ │ │ │ ├── CRLCacheConfig.java │ │ │ │ │ │ ├── CRLCacheEntry.java │ │ │ │ │ │ ├── CRLCacheManager.java │ │ │ │ │ │ ├── CRLFileCache.java │ │ │ │ │ │ ├── CRLInMemoryCache.java │ │ │ │ │ │ ├── CRLValidationResult.java │ │ │ │ │ │ ├── CRLValidationUtils.java │ │ │ │ │ │ ├── CRLValidator.java │ │ │ │ │ │ ├── CertRevocationCheckMode.java │ │ │ │ │ │ ├── CertificateValidationResult.java │ │ │ │ │ │ ├── CrlRevocationManager.java │ │ │ │ │ │ ├── NoopCRLCache.java │ │ │ │ │ │ └── VerifiedCertPathBuilder.java │ │ │ │ │ ├── json/ │ │ │ │ │ │ ├── BooleanConverter.java │ │ │ │ │ │ ├── BytesConverter.java │ │ │ │ │ │ ├── Converters.java │ │ │ │ │ │ ├── DateTimeConverter.java │ │ │ │ │ │ ├── NumberConverter.java │ │ │ │ │ │ └── StringConverter.java │ │ │ │ │ ├── minicore/ │ │ │ │ │ │ ├── Minicore.java │ │ │ │ │ │ ├── MinicoreLibrary.java │ │ │ │ │ │ ├── MinicoreLoadError.java │ │ │ │ │ │ ├── MinicoreLoadLogger.java │ │ │ │ │ │ ├── MinicoreLoadResult.java │ │ │ │ │ │ ├── MinicoreLoader.java │ │ │ │ │ │ ├── MinicorePlatform.java │ │ │ │ │ │ └── MinicoreTelemetry.java │ │ │ │ │ └── structs/ │ │ │ │ │ ├── SQLDataCreationHelper.java │ │ │ │ │ └── SnowflakeObjectTypeFactories.java │ │ │ │ ├── driver/ │ │ │ │ │ ├── AutoConfigurationHelper.java │ │ │ │ │ ├── ConnectionFactory.java │ │ │ │ │ ├── DriverInitializer.java │ │ │ │ │ ├── DriverVersion.java │ │ │ │ │ └── DriverVersionProperties.java │ │ │ │ ├── exception/ │ │ │ │ │ └── SnowflakeSQLLoggedException.java │ │ │ │ ├── jdbc/ │ │ │ │ │ ├── ArrowResultChunk.java │ │ │ │ │ ├── BindingParameterMetadata.java │ │ │ │ │ ├── ChunkDownloadContext.java │ │ │ │ │ ├── ColumnTypeInfo.java │ │ │ │ │ ├── CompressedStreamFactory.java │ │ │ │ │ ├── DBMetadataResultSetMetadata.java │ │ │ │ │ ├── DefaultResultStreamProvider.java │ │ │ │ │ ├── DefaultSFConnectionHandler.java │ │ │ │ │ ├── EnvironmentVariables.java │ │ │ │ │ ├── FileBackedOutputStream.java │ │ │ │ │ ├── JsonResultChunk.java │ │ │ │ │ ├── MatDesc.java │ │ │ │ │ ├── OCSPErrorCode.java │ │ │ │ │ ├── QueryIdValidator.java │ │ │ │ │ ├── RestRequest.java │ │ │ │ │ ├── ResultJsonParserV2.java │ │ │ │ │ ├── ResultStreamProvider.java │ │ │ │ │ ├── RetryContext.java │ │ │ │ │ ├── RetryContextManager.java │ │ │ │ │ ├── SFAsyncResultSet.java │ │ │ │ │ ├── SFBaseFileTransferAgent.java │ │ │ │ │ ├── SFConnectionHandler.java │ │ │ │ │ ├── SnowflakeChunkDownloader.java │ │ │ │ │ ├── SnowflakeClob.java │ │ │ │ │ ├── SnowflakeColumn.java │ │ │ │ │ ├── SnowflakeColumnMetadata.java │ │ │ │ │ ├── SnowflakeConnectString.java │ │ │ │ │ ├── SnowflakeDatabaseMetaDataQueryResultSet.java │ │ │ │ │ ├── SnowflakeDatabaseMetaDataResultSet.java │ │ │ │ │ ├── SnowflakeDateWithTimezone.java │ │ │ │ │ ├── SnowflakeFileTransferAgent.java │ │ │ │ │ ├── SnowflakeFileTransferConfig.java │ │ │ │ │ ├── SnowflakeFileTransferMetadata.java │ │ │ │ │ ├── SnowflakeFileTransferMetadataV1.java │ │ │ │ │ ├── SnowflakeFixedView.java │ │ │ │ │ ├── SnowflakeLoggedFeatureNotSupportedException.java │ │ │ │ │ ├── SnowflakeParameterMetadata.java │ │ │ │ │ ├── SnowflakeReauthenticationRequest.java │ │ │ │ │ ├── SnowflakeResultChunk.java │ │ │ │ │ ├── SnowflakeResultSetMetaDataV1.java │ │ │ │ │ ├── SnowflakeResultSetSerializableV1.java │ │ │ │ │ ├── SnowflakeResultSetV1.java │ │ │ │ │ ├── SnowflakeRichResultSetSerializableV1.java │ │ │ │ │ ├── SnowflakeSQLExceptionWithRetryContext.java │ │ │ │ │ ├── SnowflakeSimulatedUploadFailure.java │ │ │ │ │ ├── SnowflakeTimeWithTimezone.java │ │ │ │ │ ├── SnowflakeTimestampWithTimezone.java │ │ │ │ │ ├── SnowflakeUseDPoPNonceException.java │ │ │ │ │ ├── SnowflakeUtil.java │ │ │ │ │ ├── cloud/ │ │ │ │ │ │ └── storage/ │ │ │ │ │ │ ├── AwsSdkGCPSigner.java │ │ │ │ │ │ ├── AzureObjectSummariesIterator.java │ │ │ │ │ │ ├── CloudStorageProxyFactory.java │ │ │ │ │ │ ├── CommonObjectMetadata.java │ │ │ │ │ │ ├── EncryptionProvider.java │ │ │ │ │ │ ├── GCSAccessStrategy.java │ │ │ │ │ │ ├── GCSAccessStrategyAwsSdk.java │ │ │ │ │ │ ├── GCSDefaultAccessStrategy.java │ │ │ │ │ │ ├── GcmEncryptionProvider.java │ │ │ │ │ │ ├── GcsObjectSummariesIterator.java │ │ │ │ │ │ ├── ProxySettings.java │ │ │ │ │ │ ├── QueryIdHelper.java │ │ │ │ │ │ ├── S3ErrorHandler.java │ │ │ │ │ │ ├── S3ObjectMetadata.java │ │ │ │ │ │ ├── S3ObjectSummariesIterator.java │ │ │ │ │ │ ├── SnowflakeAzureClient.java │ │ │ │ │ │ ├── SnowflakeGCSClient.java │ │ │ │ │ │ ├── SnowflakeS3Client.java │ │ │ │ │ │ ├── SnowflakeStorageClient.java │ │ │ │ │ │ ├── StageInfo.java │ │ │ │ │ │ ├── StorageClientFactory.java │ │ │ │ │ │ ├── StorageHelper.java │ │ │ │ │ │ ├── StorageObjectMetadata.java │ │ │ │ │ │ ├── StorageObjectSummary.java │ │ │ │ │ │ ├── StorageObjectSummaryCollection.java │ │ │ │ │ │ └── StorageProviderException.java │ │ │ │ │ ├── diagnostic/ │ │ │ │ │ │ ├── CertificateDiagnosticCheck.java │ │ │ │ │ │ ├── DiagnosticCheck.java │ │ │ │ │ │ ├── DiagnosticContext.java │ │ │ │ │ │ ├── DiagnosticTrustManager.java │ │ │ │ │ │ ├── DnsDiagnosticCheck.java │ │ │ │ │ │ ├── HttpAndHttpsDiagnosticCheck.java │ │ │ │ │ │ ├── ProxyConfig.java │ │ │ │ │ │ ├── SnowflakeEndpoint.java │ │ │ │ │ │ └── TcpDiagnosticCheck.java │ │ │ │ │ ├── telemetry/ │ │ │ │ │ │ ├── CSVMetricsExporter.java │ │ │ │ │ │ ├── ExecTimeTelemetryData.java │ │ │ │ │ │ ├── InternalApiTelemetryTracker.java │ │ │ │ │ │ ├── NoOpTelemetryClient.java │ │ │ │ │ │ ├── PreSessionTelemetryClient.java │ │ │ │ │ │ ├── RevocationCheckTelemetryData.java │ │ │ │ │ │ ├── SqlExceptionTelemetryHandler.java │ │ │ │ │ │ ├── Telemetry.java │ │ │ │ │ │ ├── TelemetryClient.java │ │ │ │ │ │ ├── TelemetryData.java │ │ │ │ │ │ ├── TelemetryField.java │ │ │ │ │ │ └── TelemetryUtil.java │ │ │ │ │ ├── telemetryOOB/ │ │ │ │ │ │ ├── TelemetryEvent.java │ │ │ │ │ │ ├── TelemetryService.java │ │ │ │ │ │ └── TelemetryThreadPool.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── DriverUtil.java │ │ │ │ │ ├── SnowflakeTypeHelper.java │ │ │ │ │ └── SnowflakeTypeUtil.java │ │ │ │ ├── loader/ │ │ │ │ │ ├── BufferStage.java │ │ │ │ │ ├── FileUploader.java │ │ │ │ │ ├── OnError.java │ │ │ │ │ ├── ProcessQueue.java │ │ │ │ │ ├── PutQueue.java │ │ │ │ │ ├── StreamLoader.java │ │ │ │ │ └── Utils.java │ │ │ │ ├── log/ │ │ │ │ │ ├── ArgSupplier.java │ │ │ │ │ ├── CommonsLoggingWrapper.java │ │ │ │ │ ├── CommonsLoggingWrapperMode.java │ │ │ │ │ ├── JDK14JCLWrapper.java │ │ │ │ │ ├── JDK14Logger.java │ │ │ │ │ ├── SFFormatter.java │ │ │ │ │ ├── SFLogLevel.java │ │ │ │ │ ├── SFLogger.java │ │ │ │ │ ├── SFLoggerFactory.java │ │ │ │ │ ├── SFLoggerUtil.java │ │ │ │ │ ├── SFToJavaLogMapper.java │ │ │ │ │ ├── SLF4JJCLWrapper.java │ │ │ │ │ ├── SLF4JLogger.java │ │ │ │ │ ├── StdErrOutThresholdAwareConsoleHandler.java │ │ │ │ │ ├── StdOutConsoleHandler.java │ │ │ │ │ └── UnknownJavaUtilLoggingLevelException.java │ │ │ │ └── util/ │ │ │ │ ├── Converter.java │ │ │ │ ├── DecorrelatedJitterBackoff.java │ │ │ │ ├── EnvironmentProvider.java │ │ │ │ ├── LibcDetails.java │ │ │ │ ├── LibcInfo.java │ │ │ │ ├── MaskedException.java │ │ │ │ ├── OsReleaseDetails.java │ │ │ │ ├── Platform.java │ │ │ │ ├── PlatformDetector.java │ │ │ │ ├── SFPair.java │ │ │ │ ├── SFTimestamp.java │ │ │ │ ├── SecretDetector.java │ │ │ │ ├── SnowflakeEnvironmentProvider.java │ │ │ │ ├── Stopwatch.java │ │ │ │ ├── ThrowingBiCallable.java │ │ │ │ ├── ThrowingBiFunction.java │ │ │ │ ├── ThrowingCallable.java │ │ │ │ ├── ThrowingFunction.java │ │ │ │ ├── ThrowingTriCallable.java │ │ │ │ ├── ThrowingTriFunction.java │ │ │ │ ├── TimeMeasurement.java │ │ │ │ └── VariableTypeArray.java │ │ │ └── jdbc/ │ │ │ └── SnowflakeDriver.java │ │ ├── java-fat-jar/ │ │ │ └── net/ │ │ │ └── snowflake/ │ │ │ └── client/ │ │ │ └── internal/ │ │ │ └── log/ │ │ │ ├── SFBridgeLogger.java │ │ │ ├── SFBridgeLoggerFactory.java │ │ │ └── SFBridgeServiceProvider.java │ │ ├── javadoc/ │ │ │ ├── licenses.html │ │ │ └── overview.html │ │ ├── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── com.boomi.Dependencies │ │ │ │ └── services/ │ │ │ │ ├── java.nio.file.spi.FileTypeDetector │ │ │ │ └── java.sql.Driver │ │ │ └── net/ │ │ │ └── snowflake/ │ │ │ └── client/ │ │ │ └── jdbc/ │ │ │ ├── jdbc_error_messages.properties │ │ │ ├── jdbc_error_messages_fr.properties │ │ │ └── version.properties │ │ └── resources-fat-jar/ │ │ └── META-INF/ │ │ └── services/ │ │ └── org.slf4j.spi.SLF4JServiceProvider │ └── test/ │ ├── java/ │ │ ├── com/ │ │ │ └── snowflake/ │ │ │ └── client/ │ │ │ └── jdbc/ │ │ │ └── SnowflakeDriverIT.java │ │ └── net/ │ │ └── snowflake/ │ │ └── client/ │ │ ├── .gitignore │ │ ├── AbstractDriverIT.java │ │ ├── AssumptionUtils.java │ │ ├── SystemPropertyOverrider.java │ │ ├── TestUtil.java │ │ ├── ThrowingConsumer.java │ │ ├── ThrowingRunnable.java │ │ ├── annotations/ │ │ │ ├── DontRunOnGithubActions.java │ │ │ ├── DontRunOnJava21.java │ │ │ ├── DontRunOnJava8.java │ │ │ ├── DontRunOnJenkins.java │ │ │ ├── DontRunOnTestaccount.java │ │ │ ├── DontRunOnThinJar.java │ │ │ ├── DontRunOnWindows.java │ │ │ ├── RunOnAWS.java │ │ │ ├── RunOnAzure.java │ │ │ ├── RunOnGCP.java │ │ │ ├── RunOnGithubActionsNotMac.java │ │ │ ├── RunOnLinux.java │ │ │ ├── RunOnLinuxOrMac.java │ │ │ ├── RunOnMac.java │ │ │ ├── RunOnTestaccountNotOnGithubActions.java │ │ │ ├── RunOnWindows.java │ │ │ └── RunOnWindowsOrMac.java │ │ ├── api/ │ │ │ ├── driver/ │ │ │ │ └── SnowflakeDriverTest.java │ │ │ ├── exception/ │ │ │ │ └── SqlFeatureNotSupportedTelemetryTest.java │ │ │ └── pooling/ │ │ │ ├── LogicalConnectionAlreadyClosedLatestIT.java │ │ │ └── LogicalConnectionFeatureNotSupportedLatestIT.java │ │ ├── authentication/ │ │ │ ├── AuthConnectionParameters.java │ │ │ ├── AuthTestHelper.java │ │ │ ├── ExternalBrowserLatestIT.java │ │ │ ├── IdTokenLatestIT.java │ │ │ ├── MFALatestIT.java │ │ │ ├── OauthLatestIT.java │ │ │ ├── OauthOktaAuthorizationCodeLatestIT.java │ │ │ ├── OauthOktaClientCredentialsLatestIT.java │ │ │ ├── OauthSnowflakeAuthorizationCodeLatestIT.java │ │ │ ├── OauthSnowflakeAuthorizationCodeWildcardsLatestIT.java │ │ │ ├── OktaAuthLatestIT.java │ │ │ └── PATLatestIT.java │ │ ├── category/ │ │ │ └── TestTags.java │ │ ├── internal/ │ │ │ ├── api/ │ │ │ │ └── implementation/ │ │ │ │ ├── metadata/ │ │ │ │ │ └── SnowflakeDatabaseMetaDataImplColumnSizeTest.java │ │ │ │ ├── pooling/ │ │ │ │ │ ├── ConnectionPoolingDataSourceIT.java │ │ │ │ │ └── LogicalConnectionLatestIT.java │ │ │ │ └── statement/ │ │ │ │ └── SnowflakeStatementImplCopyResultSetTest.java │ │ │ ├── config/ │ │ │ │ ├── ConnectionAutoUrlParserTest.java │ │ │ │ ├── SFClientConfigParserTest.java │ │ │ │ ├── SFConnectionConfigParserPermissionTest.java │ │ │ │ ├── SFConnectionConfigParserTest.java │ │ │ │ └── SFPermissionsTest.java │ │ │ ├── core/ │ │ │ │ ├── AttributeEnhancingHttpRequestRetryHandlerTest.java │ │ │ │ ├── CertificateChainTrustValidationTestLatestIT.java │ │ │ │ ├── CoreUtilsMiscellaneousTest.java │ │ │ │ ├── CredentialManagerTest.java │ │ │ │ ├── EventHandlerTest.java │ │ │ │ ├── EventTest.java │ │ │ │ ├── FileCacheManagerDefaultDirTest.java │ │ │ │ ├── FileCacheManagerTest.java │ │ │ │ ├── HeaderCustomizerHttpRequestInterceptorTest.java │ │ │ │ ├── HeartbeatIntervalSelectorTest.java │ │ │ │ ├── HeartbeatRegistryTest.java │ │ │ │ ├── HeartbeatThreadTest.java │ │ │ │ ├── HttpUtilLatestIT.java │ │ │ │ ├── HttpUtilTest.java │ │ │ │ ├── HttpUtilWiremockLatestIT.java │ │ │ │ ├── MinicoreTelemetryWiremockIT.java │ │ │ │ ├── OAuthAuthorizationCodeFlowLatestIT.java │ │ │ │ ├── OAuthClientCredentialsFlowLatestIT.java │ │ │ │ ├── OAuthLegacyFlowLatestIT.java │ │ │ │ ├── OAuthTokenCacheLatestIT.java │ │ │ │ ├── OCSPCacheServerTest.java │ │ │ │ ├── ObjectMapperTest.java │ │ │ │ ├── PrivateLinkDetectorTest.java │ │ │ │ ├── ProgrammaticAccessTokenAuthFlowLatestIT.java │ │ │ │ ├── QueryContextCacheTest.java │ │ │ │ ├── QueryContextEntryDTOTest.java │ │ │ │ ├── SFArrowResultSetIT.java │ │ │ │ ├── SFCrlTrustManagerDelegationTest.java │ │ │ │ ├── SFCrlTrustManagerFactoryTest.java │ │ │ │ ├── SFCrlTrustManagerLatestIT.java │ │ │ │ ├── SFExtendedCrlTrustManagerDelegationTest.java │ │ │ │ ├── SFLoginInputTest.java │ │ │ │ ├── SFSSLConnectionSocketFactoryTest.java │ │ │ │ ├── SFSessionPropertyTest.java │ │ │ │ ├── SFStatementTest.java │ │ │ │ ├── SFTrustManagerIT.java │ │ │ │ ├── SFTrustManagerMockitoMockLatestIT.java │ │ │ │ ├── SFTrustManagerOcspCachePoisoningTest.java │ │ │ │ ├── SFTrustManagerProxyWiremockIT.java │ │ │ │ ├── SFTrustManagerTest.java │ │ │ │ ├── SQLInputOutputTest.java │ │ │ │ ├── SecureStorageManagerTest.java │ │ │ │ ├── SessionUtilExternalBrowserTest.java │ │ │ │ ├── SessionUtilKeyPairTest.java │ │ │ │ ├── SessionUtilLatestIT.java │ │ │ │ ├── SessionUtilTest.java │ │ │ │ ├── SessionUtilWiremockIT.java │ │ │ │ ├── SnowflakeMFACacheTest.java │ │ │ │ ├── SpcsTokenReaderTest.java │ │ │ │ ├── SqlInputTimestampUtilTest.java │ │ │ │ ├── StmtUtilTest.java │ │ │ │ ├── URLUtilTest.java │ │ │ │ ├── arrow/ │ │ │ │ │ ├── ArrowResultUtilTest.java │ │ │ │ │ ├── BaseConverterTest.java │ │ │ │ │ ├── BigIntToFixedConverterTest.java │ │ │ │ │ ├── BigIntToTimeConverterTest.java │ │ │ │ │ ├── BigIntToTimestampLTZConverterTest.java │ │ │ │ │ ├── BigIntToTimestampNTZConverterTest.java │ │ │ │ │ ├── BitToBooleanConverterTest.java │ │ │ │ │ ├── DateConverterTest.java │ │ │ │ │ ├── DoubleToRealConverterTest.java │ │ │ │ │ ├── IntToFixedConverterTest.java │ │ │ │ │ ├── IntToTimeConverterTest.java │ │ │ │ │ ├── SmallIntToFixedConverterTest.java │ │ │ │ │ ├── ThreeFieldStructToTimestampTZConverterTest.java │ │ │ │ │ ├── TinyIntToFixedConverterTest.java │ │ │ │ │ ├── TwoFieldStructToTimestampLTZConverterTest.java │ │ │ │ │ ├── TwoFieldStructToTimestampNTZConverterTest.java │ │ │ │ │ ├── TwoFieldStructToTimestampTZConverterTest.java │ │ │ │ │ ├── VarBinaryToBinaryConverterTest.java │ │ │ │ │ └── VarCharConverterTest.java │ │ │ │ ├── auth/ │ │ │ │ │ ├── oauth/ │ │ │ │ │ │ ├── AuthorizationCodeRedirectRequestHandlerTest.java │ │ │ │ │ │ ├── OAuthAccessTokenProviderFactoryTest.java │ │ │ │ │ │ ├── OAuthUtilTest.java │ │ │ │ │ │ ├── RandomStateProviderTest.java │ │ │ │ │ │ └── TokenResponseDTOTest.java │ │ │ │ │ └── wif/ │ │ │ │ │ ├── AwsIdentityAttestationCreatorTest.java │ │ │ │ │ ├── AzureIdentityAttestationCreatorLatestIT.java │ │ │ │ │ ├── GcpIdentityAttestationCreatorLatestIT.java │ │ │ │ │ ├── OidcIdentityAttestationCreatorTest.java │ │ │ │ │ ├── PlatformDetectionUtilTest.java │ │ │ │ │ └── WorkloadIdentityAttestationProviderTest.java │ │ │ │ ├── bind/ │ │ │ │ │ └── BindExceptionTest.java │ │ │ │ ├── crl/ │ │ │ │ │ ├── CRLCacheManagerLatestIT.java │ │ │ │ │ ├── CRLCacheManagerTest.java │ │ │ │ │ ├── CRLFileCacheTest.java │ │ │ │ │ ├── CRLInMemoryCacheTest.java │ │ │ │ │ ├── CRLValidationUtilsTest.java │ │ │ │ │ ├── CRLValidatorTest.java │ │ │ │ │ ├── CRLValidatorWiremockIT.java │ │ │ │ │ ├── CertificateGeneratorUtil.java │ │ │ │ │ └── VerifiedCertPathBuilderTest.java │ │ │ │ ├── json/ │ │ │ │ │ ├── BooleanConverterTest.java │ │ │ │ │ ├── BytesConverterTest.java │ │ │ │ │ ├── DateTimeConverterTest.java │ │ │ │ │ ├── NumberConverterTest.java │ │ │ │ │ └── StringConverterTest.java │ │ │ │ └── minicore/ │ │ │ │ ├── MinicoreLoaderTest.java │ │ │ │ ├── MinicorePlatformTest.java │ │ │ │ ├── MinicoreTelemetryTest.java │ │ │ │ ├── MinicoreTest.java │ │ │ │ └── MinicoreTestLatestIT.java │ │ │ ├── driver/ │ │ │ │ └── DriverInitializerTest.java │ │ │ ├── jdbc/ │ │ │ │ ├── ArrowResultChunkTest.java │ │ │ │ ├── AuthenticatedProxyLatestIT.java │ │ │ │ ├── AutoConnectionConfigurationLatestIT.java │ │ │ │ ├── BaseJDBCTest.java │ │ │ │ ├── BaseJDBCWithSharedConnectionIT.java │ │ │ │ ├── BaseWiremockTest.java │ │ │ │ ├── BatchExecutionIT.java │ │ │ │ ├── BatchExecutionLatestIT.java │ │ │ │ ├── BindUploaderIT.java │ │ │ │ ├── BindUploaderLatestIT.java │ │ │ │ ├── BindingAndInsertingStructuredTypesLatestIT.java │ │ │ │ ├── BindingDataIT.java │ │ │ │ ├── BindingDataLatestIT.java │ │ │ │ ├── CallableStatementIT.java │ │ │ │ ├── CallableStatementITBase.java │ │ │ │ ├── CallableStatementLatestIT.java │ │ │ │ ├── ChunkDownloaderS3RetryUrlLatestIT.java │ │ │ │ ├── ClientMemoryLimitParallelIT.java │ │ │ │ ├── CompressedStreamFactoryTest.java │ │ │ │ ├── ConnectStringParseTest.java │ │ │ │ ├── ConnectionAlreadyClosedIT.java │ │ │ │ ├── ConnectionFeatureNotSupportedIT.java │ │ │ │ ├── ConnectionIT.java │ │ │ │ ├── ConnectionLatestIT.java │ │ │ │ ├── ConnectionManual.java │ │ │ │ ├── ConnectionPoolingIT.java │ │ │ │ ├── ConnectionWithDisableOCSPModeLatestIT.java │ │ │ │ ├── ConnectionWithOCSPModeIT.java │ │ │ │ ├── CustomProxyLatestIT.java │ │ │ │ ├── DatabaseMetaDataIT.java │ │ │ │ ├── DatabaseMetaDataInternalIT.java │ │ │ │ ├── DatabaseMetaDataInternalLatestIT.java │ │ │ │ ├── DatabaseMetaDataLatestIT.java │ │ │ │ ├── DatabaseMetaDataResultSetLatestIT.java │ │ │ │ ├── DatabaseMetaDataResultsetIT.java │ │ │ │ ├── DecfloatTypeLatestIT.java │ │ │ │ ├── DefaultSFConnectionHandlerTest.java │ │ │ │ ├── DellBoomiCloudIT.java │ │ │ │ ├── FileConnectionConfigurationLatestIT.java │ │ │ │ ├── FileUploaderExpandFileNamesTest.java │ │ │ │ ├── FileUploaderLatestIT.java │ │ │ │ ├── FileUploaderMimeTypeToCompressionTypeTest.java │ │ │ │ ├── FileUploaderPrep.java │ │ │ │ ├── FileUploaderSessionlessTest.java │ │ │ │ ├── GCPLargeResult.java │ │ │ │ ├── GitRepositoryDownloadLatestIT.java │ │ │ │ ├── HeartbeatAsyncLatestIT.java │ │ │ │ ├── HeartbeatIT.java │ │ │ │ ├── HeartbeatMultiSessionIT.java │ │ │ │ ├── IntervalDayTimeTypeLatestIT.java │ │ │ │ ├── IntervalYearMonthTypeLatestIT.java │ │ │ │ ├── LobSizeLatestIT.java │ │ │ │ ├── MaxLobSizeLatestIT.java │ │ │ │ ├── MockConnectionTest.java │ │ │ │ ├── MultiStatementArrowIT.java │ │ │ │ ├── MultiStatementIT.java │ │ │ │ ├── MultiStatementLatestIT.java │ │ │ │ ├── OpenGroupCLIFuncIT.java │ │ │ │ ├── OpenGroupCLIFuncLatestIT.java │ │ │ │ ├── PreparedMultiStmtIT.java │ │ │ │ ├── PreparedStatement0IT.java │ │ │ │ ├── PreparedStatement1IT.java │ │ │ │ ├── PreparedStatement1LatestIT.java │ │ │ │ ├── PreparedStatement2IT.java │ │ │ │ ├── PreparedStatement2LatestIT.java │ │ │ │ ├── PreparedStatementFeatureNotSupportedIT.java │ │ │ │ ├── PreparedStatementLargeUpdateLatestIT.java │ │ │ │ ├── PrivateKeyAuthenticationExceptionHandlingLatestIT.java │ │ │ │ ├── ProxyLatestIT.java │ │ │ │ ├── PutFileWithSpaceIncludedIT.java │ │ │ │ ├── PutUnescapeBackslashIT.java │ │ │ │ ├── QueryContextWiremockIT.java │ │ │ │ ├── RestRequestTest.java │ │ │ │ ├── RestRequestTestRetriesWiremockIT.java │ │ │ │ ├── RestRequestWiremockLatestIT.java │ │ │ │ ├── ResultJsonParserV2Test.java │ │ │ │ ├── ResultSet0IT.java │ │ │ │ ├── ResultSetAlreadyClosedIT.java │ │ │ │ ├── ResultSetArrowForce0MultiTimeZone.java │ │ │ │ ├── ResultSetArrowForceLTZMultiTimeZoneIT.java │ │ │ │ ├── ResultSetArrowForceTZMultiTimeZoneIT.java │ │ │ │ ├── ResultSetAsyncIT.java │ │ │ │ ├── ResultSetAsyncLatestIT.java │ │ │ │ ├── ResultSetFeatureNotSupportedIT.java │ │ │ │ ├── ResultSetFormatType.java │ │ │ │ ├── ResultSetIT.java │ │ │ │ ├── ResultSetJsonVsArrowIT.java │ │ │ │ ├── ResultSetJsonVsArrowMultiTZIT.java │ │ │ │ ├── ResultSetLatestIT.java │ │ │ │ ├── ResultSetMultiTimeZoneIT.java │ │ │ │ ├── ResultSetMultiTimeZoneLatestIT.java │ │ │ │ ├── ResultSetVectorLatestIT.java │ │ │ │ ├── SSOConnectionTest.java │ │ │ │ ├── ServiceNameTest.java │ │ │ │ ├── SessionContextWiremockLatestIT.java │ │ │ │ ├── SessionVariablesIT.java │ │ │ │ ├── SnowflakeAzureClientHandleExceptionLatestIT.java │ │ │ │ ├── SnowflakeBasicDataSourceTest.java │ │ │ │ ├── SnowflakeChunkDownloaderLatestIT.java │ │ │ │ ├── SnowflakeClobTest.java │ │ │ │ ├── SnowflakeConnectionImplTest.java │ │ │ │ ├── SnowflakeDriverConnectionStressTest.java │ │ │ │ ├── SnowflakeDriverIT.java │ │ │ │ ├── SnowflakeDriverLatestIT.java │ │ │ │ ├── SnowflakeDriverTest.java │ │ │ │ ├── SnowflakeFileTransferAgentExtractSafeDestFileNameTest.java │ │ │ │ ├── SnowflakeFileTransferConfigTest.java │ │ │ │ ├── SnowflakeGcsClientHandleExceptionLatestIT.java │ │ │ │ ├── SnowflakeResultSetSerializableIT.java │ │ │ │ ├── SnowflakeS3ClientHandleExceptionLatestIT.java │ │ │ │ ├── SnowflakeSerializableTest.java │ │ │ │ ├── SnowflakeTimestampWithTimezoneTest.java │ │ │ │ ├── SnowflakeTypeTest.java │ │ │ │ ├── SnowflakeUtilTest.java │ │ │ │ ├── StatementAlreadyClosedIT.java │ │ │ │ ├── StatementArrowIT.java │ │ │ │ ├── StatementFeatureNotSupportedIT.java │ │ │ │ ├── StatementIT.java │ │ │ │ ├── StatementLargeUpdateIT.java │ │ │ │ ├── StatementLatestIT.java │ │ │ │ ├── StatementNoOpLatestIT.java │ │ │ │ ├── StreamIT.java │ │ │ │ ├── StreamLatestIT.java │ │ │ │ ├── cloud/ │ │ │ │ │ └── storage/ │ │ │ │ │ ├── AwsSdkGCPSignerTest.java │ │ │ │ │ ├── CloudStorageClientLatestIT.java │ │ │ │ │ ├── CloudStorageProxyFactoryTest.java │ │ │ │ │ ├── EncryptionProviderTest.java │ │ │ │ │ ├── GcmEncryptionProviderTest.java │ │ │ │ │ ├── SnowflakeAzureClientLatestIT.java │ │ │ │ │ ├── SnowflakeAzureClientTest.java │ │ │ │ │ ├── SnowflakeS3ClientLatestIT.java │ │ │ │ │ ├── SnowflakeS3ClientTest.java │ │ │ │ │ ├── SnowflakeStorageClientTest.java │ │ │ │ │ ├── StageInfoGcsCustomEndpointTest.java │ │ │ │ │ └── StorageProviderExceptionTest.java │ │ │ │ ├── diagnostic/ │ │ │ │ │ ├── DiagnosticContextLatestIT.java │ │ │ │ │ └── SnowflakeEndpointTest.java │ │ │ │ ├── structuredtypes/ │ │ │ │ │ ├── ResultSetStructuredTypesLatestIT.java │ │ │ │ │ ├── StructuredTypesArrowJsonCompatibilityLatestIT.java │ │ │ │ │ ├── StructuredTypesGetStringBaseIT.java │ │ │ │ │ └── sqldata/ │ │ │ │ │ ├── AllTypesClass.java │ │ │ │ │ ├── NestedStructSqlData.java │ │ │ │ │ ├── NullableFieldsSqlData.java │ │ │ │ │ ├── SimpleClass.java │ │ │ │ │ └── StringClass.java │ │ │ │ ├── telemetry/ │ │ │ │ │ ├── CSVMetricsExporterTest.java │ │ │ │ │ ├── ExecTimeTelemetryDataTest.java │ │ │ │ │ ├── InternalApiMarkerUsageArchTest.java │ │ │ │ │ ├── InternalApiTelemetryTrackerTest.java │ │ │ │ │ ├── NoOpTelemetryClientTest.java │ │ │ │ │ ├── PreSessionTelemetryClientTest.java │ │ │ │ │ ├── TelemetryIT.java │ │ │ │ │ ├── TelemetryTest.java │ │ │ │ │ └── TelemetryUtilTest.java │ │ │ │ └── telemetryOOB/ │ │ │ │ ├── TelemetryServiceIT.java │ │ │ │ ├── TelemetryServiceTest.java │ │ │ │ └── TelemetryThreadPoolTest.java │ │ │ ├── loader/ │ │ │ │ ├── FlatfileReadMultithreadIT.java │ │ │ │ ├── LoaderBase.java │ │ │ │ ├── LoaderIT.java │ │ │ │ ├── LoaderLatestIT.java │ │ │ │ ├── LoaderMultipleBatchIT.java │ │ │ │ ├── LoaderTimestampIT.java │ │ │ │ ├── OnErrorTest.java │ │ │ │ └── TestDataConfigBuilder.java │ │ │ ├── log/ │ │ │ │ ├── AbstractLoggerIT.java │ │ │ │ ├── CommonsLoggingWrapperModeTest.java │ │ │ │ ├── CommonsLoggingWrapperTest.java │ │ │ │ ├── JDK14JCLWrapperLatestIT.java │ │ │ │ ├── JDK14LoggerConsoleHandlerOverrideLatestIT.java │ │ │ │ ├── JDK14LoggerLatestIT.java │ │ │ │ ├── JDK14LoggerTest.java │ │ │ │ ├── JDK14LoggerWithClientLatestIT.java │ │ │ │ ├── MaskedExceptionLoggerIntegrationTest.java │ │ │ │ ├── SFFormatterTest.java │ │ │ │ ├── SFLogLevelTest.java │ │ │ │ ├── SFLoggerFactoryTest.java │ │ │ │ ├── SFToJavaLogMapperTest.java │ │ │ │ ├── SLF4JJJCLWrapperLatestIT.java │ │ │ │ └── SLF4JLoggerLatestIT.java │ │ │ └── util/ │ │ │ ├── DecorrelatedJitterBackoffTest.java │ │ │ ├── LibcDetailsTest.java │ │ │ ├── MaskedExceptionTest.java │ │ │ ├── OsReleaseDetailsTest.java │ │ │ ├── PlatformDetectorLatestIT.java │ │ │ ├── SFPairTest.java │ │ │ ├── SecretDetectorTest.java │ │ │ └── StopwatchTest.java │ │ ├── providers/ │ │ │ ├── BooleanProvider.java │ │ │ ├── ProvidersUtil.java │ │ │ ├── ResultFormatProvider.java │ │ │ ├── ScaleProvider.java │ │ │ ├── SimpleResultFormatProvider.java │ │ │ ├── SnowflakeArgumentsProvider.java │ │ │ └── TimezoneProvider.java │ │ ├── suites/ │ │ │ ├── ArrowTestSuite.java │ │ │ ├── AuthenticationTestSuite.java │ │ │ ├── BaseTestSuite.java │ │ │ ├── ConnectionOldDriverTestSuite.java │ │ │ ├── ConnectionTestSuite.java │ │ │ ├── CoreOldDriverTestSuite.java │ │ │ ├── CoreTestSuite.java │ │ │ ├── DatabaseMetaDataTestSuite.java │ │ │ ├── DiagnosticOldDriverTestSuite.java │ │ │ ├── DiagnosticTestSuite.java │ │ │ ├── LoaderOldDriverTestSuite.java │ │ │ ├── LoaderTestSuite.java │ │ │ ├── OldDriverTestSuite.java │ │ │ ├── OnlyTestingTestSuite.java │ │ │ ├── OthersOldDriverTestSuite.java │ │ │ ├── OthersTestSuite.java │ │ │ ├── ResultSetOldDriverTestSuite.java │ │ │ ├── ResultSetTestSuite.java │ │ │ ├── StatementOldDriverTestSuite.java │ │ │ ├── StatementTestSuite.java │ │ │ ├── UnitOldDriverTestSuite.java │ │ │ ├── UnitTestSuite.java │ │ │ └── WIFTestSuite.java │ │ └── wif/ │ │ └── WIFLatestIT.java │ └── resources/ │ ├── .gitignore │ ├── FileUploaderPrep/ │ │ ├── exampleAzure.json │ │ ├── exampleGCS.json │ │ ├── exampleGCSWithEndpoint.json │ │ ├── exampleGCSWithUseRegionalUrl.json │ │ ├── exampleS3.json │ │ └── exampleS3WithStageEndpoint.json │ ├── allowlist.json │ ├── encrypted_rsa_key.p8 │ ├── encrypted_rsa_key.pub │ ├── invalid_private_key.pem │ ├── logback-test.xml │ ├── logging.properties │ ├── net/ │ │ └── snowflake/ │ │ └── client/ │ │ ├── .gitignore │ │ ├── internal/ │ │ │ └── jdbc/ │ │ │ ├── boomi.policy │ │ │ └── test_copy.csv │ │ ├── jenkins_it_logging.properties │ │ └── travis_it_logging.properties │ ├── orders_100.csv │ ├── orders_101.csv │ ├── os-release-test │ ├── revoked_certs.pem │ ├── rsa_key.p8 │ ├── rsa_key.pem │ ├── rsa_key.pub │ ├── ssl-tests/ │ │ ├── certs/ │ │ │ ├── amz_root_ca1_chain.crt │ │ │ ├── amz_root_ca1_chain.csr │ │ │ ├── amz_root_ca1_chain.srl │ │ │ ├── amz_root_ca1_common.key │ │ │ ├── amz_root_ca1_trust_store.crt │ │ │ ├── amz_root_ca1_trust_store.csr │ │ │ ├── amz_rsa_m02_intermediate.crt │ │ │ ├── amz_rsa_m02_intermediate.csr │ │ │ ├── amz_rsa_m02_intermediate.key │ │ │ ├── amz_rsa_m02_intermediate.srl │ │ │ ├── client_keystore.p12 │ │ │ ├── leaf.crt │ │ │ ├── leaf.csr │ │ │ ├── leaf.key │ │ │ ├── st_class2_root.crt │ │ │ ├── st_class2_root.csr │ │ │ ├── st_class2_root.key │ │ │ ├── st_class2_root.srl │ │ │ ├── st_g2_root.crt │ │ │ ├── st_g2_root.csr │ │ │ ├── st_g2_root.key │ │ │ ├── st_g2_root.srl │ │ │ └── truststore.jks │ │ └── generate_certs.sh │ ├── test_encryption_256.csv │ ├── test_file │ ├── test_file.csv │ └── wiremock/ │ ├── ca-cert.jks │ └── mappings/ │ ├── connection/ │ │ └── session_context_switches.json │ ├── minicore/ │ │ └── minicore_telemetry.json │ ├── oauth/ │ │ ├── authorization_code/ │ │ │ ├── browser_timeout_authorization_error.json │ │ │ ├── dpop_nonce_error_flow.json │ │ │ ├── external_idp_custom_urls.json │ │ │ ├── invalid_scope_error.json │ │ │ ├── invalid_state_error.json │ │ │ ├── successful_dpop_flow.json │ │ │ ├── successful_flow.json │ │ │ ├── successful_flow_with_single_use_refresh_tokens.json │ │ │ └── token_request_error.json │ │ ├── client_credentials/ │ │ │ ├── dpop_nonce_error_flow.json │ │ │ ├── successful_dpop_flow.json │ │ │ ├── successful_flow.json │ │ │ └── token_request_error.json │ │ ├── legacy_oauth/ │ │ │ └── token_expired.json │ │ └── token_caching/ │ │ ├── caching_refreshed_access_token_and_new_refresh_token.json │ │ ├── caching_tokens_after_connecting.json │ │ ├── caching_tokens_and_dpop_key_after_connecting.json │ │ ├── not_caching_after_client_credentials_flow.json │ │ ├── refreshing_expired_access_token.json │ │ ├── refreshing_expired_access_token_dpop.json │ │ ├── refreshing_expired_access_token_dpop_nonce_error.json │ │ ├── restarting_full_flow_on_expiration_and_no_refresh_token.json │ │ ├── restarting_full_flow_on_refresh_token_error.json │ │ └── reusing_cached_access_token_to_authenticate.json │ ├── pat/ │ │ ├── invalid_pat_token.json │ │ └── successful_flow.json │ ├── platform-detection/ │ │ ├── aws_ec2_instance_successful.json │ │ ├── aws_ec2_token_successful.json │ │ ├── azure_managed_identity_successful.json │ │ ├── azure_metadata_unavailable.json │ │ ├── azure_vm_successful.json │ │ ├── ec2_successful_imdsv1.json │ │ ├── ec2_successful_imdsv2.json │ │ ├── gcp_identity_successful.json │ │ ├── gcp_metadata_unavailable.json │ │ ├── gcp_vm_slow_response.json │ │ ├── gcp_vm_successful.json │ │ ├── slow_response_timeout.json │ │ └── timeout_scenarios.json │ ├── querycontext/ │ │ └── qcc-merge-on-failed-query.json │ ├── restrequest/ │ │ ├── certificate_revoked.json │ │ ├── correct_response.json │ │ ├── http_307_retry.json │ │ ├── http_308_retry.json │ │ ├── response503.json │ │ ├── six_malformed_and_correct.json │ │ ├── sticky_header_from_first_query.json │ │ ├── sticky_header_from_login.json │ │ └── sticky_header_updated.json │ ├── session/ │ │ ├── session-util-wiremock-it-always-429-in-federated-step-3.json │ │ ├── session-util-wiremock-it-always-429-in-federated-step-4.json │ │ ├── session-util-wiremock-it-libc-details-in-login-request.json │ │ ├── session-util-wiremock-it-multiple-429-from-okta-in-login-request-to-sf.json │ │ ├── session-util-wiremock-it-multiple-429-in-federated-step-3.json │ │ ├── session-util-wiremock-it-multiple-429-in-federated-step-4.json │ │ ├── session-util-wiremock-it-os-details-in-login-request.json │ │ ├── session-util-wiremock-it-spcs-token-in-login-request.json │ │ └── session-util-wiremock-it-unsupported-mfa-in-federated-step-3.json │ └── wif/ │ ├── azure/ │ │ ├── http_error.json │ │ ├── invalid_issuer_flow.json │ │ ├── missing_issuer_claim.json │ │ ├── missing_sub_claim.json │ │ ├── non_json_response.json │ │ ├── successful_flow_azure_functions.json │ │ ├── successful_flow_azure_functions_custom_entra_resource.json │ │ ├── successful_flow_azure_functions_no_client_id.json │ │ ├── successful_flow_azure_functions_v2_issuer.json │ │ ├── successful_flow_basic.json │ │ ├── successful_flow_v2_issuer.json │ │ └── unparsable_token.json │ └── gcp/ │ ├── http_error.json │ ├── invalid_issuer_claim.json │ ├── missing_issuer_claim.json │ ├── missing_sub_claim.json │ ├── successful_flow.json │ ├── successful_impersonation_flow.json │ └── unparsable_token.json └── thin_public_pom.xml
Showing preview only (789K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (9696 symbols across 757 files)
FILE: FIPS/src/test/java/net/snowflake/client/AbstractDriverIT.java
class AbstractDriverIT (line 24) | public class AbstractDriverIT {
method getConnectionParameters (line 43) | public static Map<String, String> getConnectionParameters(String accou...
method getConnectionParameters (line 157) | public static Map<String, String> getConnectionParameters() {
method getConnection (line 169) | public static Connection getConnection(Properties paramProperties) thr...
method getConnection (line 179) | public static Connection getConnection(String accountName) throws SQLE...
method getConnection (line 189) | public static Connection getConnection() throws SQLException {
method getConnection (line 201) | public static Connection getConnection(int injectSocketTimeout) throws...
method getSnowflakeAdminConnection (line 211) | protected static Connection getSnowflakeAdminConnection() throws SQLEx...
method getSnowflakeAdminConnection (line 222) | protected static Connection getSnowflakeAdminConnection(Properties par...
method getConnection (line 238) | public static Connection getConnection(
method getConnection (line 255) | public static Connection getConnection(
method closeSQLObjects (line 337) | public void closeSQLObjects(ResultSet resultSet, Statement statement, ...
method closeSQLObjects (line 357) | public void closeSQLObjects(Statement statement, Connection connection...
method getFullPathFileInResource (line 372) | public static String getFullPathFileInResource(String fileName) {
method buildTimestamp (line 382) | protected static Timestamp buildTimestamp(
method buildDate (line 391) | protected static Date buildDate(int year, int month, int day) {
method buildDateWithTZ (line 398) | protected static Date buildDateWithTZ(int year, int month, int day, Ti...
FILE: FIPS/src/test/java/net/snowflake/client/TestUtil.java
class TestUtil (line 11) | public class TestUtil {
method assertSFException (line 19) | public static void assertSFException(int errorCode, TestRunInterface t...
type TestRunInterface (line 29) | @FunctionalInterface
method run (line 31) | void run() throws SFException;
method systemGetEnv (line 45) | @Deprecated
FILE: FIPS/src/test/java/net/snowflake/client/category/FipsTestSuite.java
class FipsTestSuite (line 14) | @Suite
FILE: FIPS/src/test/java/net/snowflake/client/jdbc/ConnectionFipsIT.java
class ConnectionFipsIT (line 33) | @Tag("fips")
method setup (line 106) | @BeforeAll
method teardown (line 168) | @AfterAll
method connectWithFips (line 216) | @Test
method connectWithFipsKeyPair (line 229) | @Test
method testConnectUsingKeyPair (line 273) | @Test
method connectWithFipsAndQuery (line 323) | @Test
method connectWithFipsAndPut (line 340) | @Test
method connectWithFipsKeyPairWithBouncyCastle (line 356) | @Test
method testConnectUsingKeyPairWithBouncyCastle (line 365) | @Test
method connectToGoogle (line 373) | private static void connectToGoogle() throws Exception {
FILE: ci/container/hang_webserver.py
class HTTPRequestHandler (line 8) | class HTTPRequestHandler(BaseHTTPRequestHandler):
method do_POST (line 9) | def do_POST(self):
class ThreadedHTTPServer (line 29) | class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
method shutdown (line 32) | def shutdown(self):
class SimpleHttpServer (line 36) | class SimpleHttpServer():
method __init__ (line 37) | def __init__(self, ip, port):
method start (line 40) | def start(self):
method waitForThread (line 45) | def waitForThread(self):
method stop (line 48) | def stop(self):
FILE: ci/container/sf_test_utils.py
function get_test_schema (line 8) | def get_test_schema():
function init_connection_params (line 12) | def init_connection_params():
FILE: ci/wif/aws-lambda/src/main/java/com/snowflake/wif/aws/WifLambdaFunctionE2e.java
class WifLambdaFunctionE2e (line 13) | public class WifLambdaFunctionE2e implements RequestHandler<Object, APIG...
class LambdaLogger (line 17) | private static class LambdaLogger implements WifTestHelper.WifLogger {
method LambdaLogger (line 20) | public LambdaLogger(Context context) {
method log (line 24) | @Override
method handleRequest (line 30) | @Override
method extractQueryParameters (line 60) | private Map<String, String> extractQueryParameters(Object input, WifTe...
method createResponse (line 81) | private APIGatewayProxyResponseEvent createResponse(int mavenExitCode) {
method createErrorResponse (line 99) | private APIGatewayProxyResponseEvent createErrorResponse(int statusCod...
FILE: ci/wif/azure-function/src/main/java/com/snowflake/wif/azure/WifAzureFunctionE2e.java
class WifAzureFunctionE2e (line 10) | public class WifAzureFunctionE2e {
class AzureLogger (line 12) | private static class AzureLogger implements WifTestHelper.WifLogger {
method AzureLogger (line 15) | public AzureLogger(ExecutionContext context) {
method log (line 19) | @Override
method run (line 25) | @FunctionName("WifAzureFunctionE2e")
method createResponse (line 58) | private HttpResponseMessage createResponse(HttpRequestMessage<Optional...
FILE: ci/wif/gcp-function/src/main/java/com/snowflake/wif/gcp/WifGcpFunctionE2e.java
class WifGcpFunctionE2e (line 18) | public class WifGcpFunctionE2e implements HttpFunction {
class GcpLogger (line 22) | private static class GcpLogger implements WifTestHelper.WifLogger {
method GcpLogger (line 25) | public GcpLogger(Logger logger) {
method log (line 29) | @Override
method createGcpResponseMessage (line 35) | private static String createGcpResponseMessage(int mavenExitCode, Stri...
method performGcpCleanup (line 51) | private static void performGcpCleanup(String workingDirectory, WifTest...
method service (line 62) | @Override
method extractQueryParameters (line 92) | private Map<String, String> extractQueryParameters(HttpRequest request...
method createResponse (line 130) | private void createResponse(HttpResponse response, int mavenExitCode, ...
method createErrorResponse (line 149) | private void createErrorResponse(HttpResponse response, int statusCode...
FILE: ci/wif/shared/com/snowflake/wif/common/WifTestHelper.java
class WifTestHelper (line 26) | public class WifTestHelper {
method generateUniqueSessionId (line 28) | private static String generateUniqueSessionId() {
method validateQueryParameters (line 32) | public static void validateQueryParameters(Map<String, String> queryPa...
method buildTarballUrl (line 56) | public static String buildTarballUrl(String branch) {
method findRepositoryFolder (line 65) | public static String findRepositoryFolder(String workingDirectory) {
method executeMavenBuild (line 84) | public static int executeMavenBuild(String repoFolderPath, String temp...
method cleanupMavenTempDirectories (line 189) | private static void cleanupMavenTempDirectories(File mavenRepo, File w...
method cleanupDirectory (line 199) | private static void cleanupDirectory(File directory, String descriptio...
method makeExecutable (line 226) | public static void makeExecutable(String repoFolderPath, WifLogger log...
method cleanupWorkingDirectory (line 267) | public static void cleanupWorkingDirectory(String workingDirectory, Wi...
method cleanupOrphanedMavenDirectories (line 310) | private static void cleanupOrphanedMavenDirectories(WifLogger logger) {
method downloadAndExtractRepository (line 355) | public static String downloadAndExtractRepository(String tarballUrl, W...
method downloadAndExtractWithJava (line 378) | public static void downloadAndExtractWithJava(String tarballUrl, File ...
method createOutputFile (line 431) | private static File createOutputFile(File workingDirectory, String ent...
method createMavenResultMessage (line 445) | public static String createMavenResultMessage(int mavenExitCode) {
type WifLogger (line 467) | public interface WifLogger {
method log (line 468) | void log(String message);
FILE: fat-jar-test-app/src/main/fips-java/net/snowflake/FipsInitializer.java
class FipsInitializer (line 16) | public class FipsInitializer {
method initializeFipsMode (line 42) | private static void initializeFipsMode() {
method ensureInitialized (line 99) | public static void ensureInitialized() {
FILE: fat-jar-test-app/src/main/java/net/snowflake/FatJarTestApp.java
class FatJarTestApp (line 15) | public class FatJarTestApp {
method main (line 47) | public static void main(String[] args) throws Exception {
method runQueries (line 53) | private static void runQueries(String[] args) throws Exception {
method setupLogging (line 71) | private static void setupLogging() throws Exception {
method verifyLogs (line 83) | private static void verifyLogs() throws Exception {
method getTestFilePath (line 117) | private static String getTestFilePath() throws URISyntaxException {
method getConnection (line 125) | private static Connection getConnection(String[] args) throws Exception {
method getSfEnv (line 156) | private static String getSfEnv(String param) {
FILE: prober/src/main/java/com/snowflake/client/jdbc/prober/Prober.java
class Prober (line 34) | public class Prober {
type Status (line 43) | enum Status {
method Status (line 49) | Status(int code) {
method getCode (line 53) | public int getCode() {
type Scope (line 58) | enum Scope {
method main (line 64) | public static void main(String[] args) throws Exception {
method testLogin (line 89) | private static void testLogin(String url, Properties properties) {
method testPutFetchGet (line 106) | private static void testPutFetchGet(String url, Properties properties) {
method testPutFetchGetFailClosed (line 136) | private static void testPutFetchGetFailClosed(String url, Properties p...
method createDatabase (line 170) | private static void createDatabase(Statement statement, Properties pro...
method createSchema (line 184) | private static void createSchema(Statement statement, Properties prope...
method createWarehouse (line 198) | private static void createWarehouse(Statement statement, Properties pr...
method cleanupResources (line 212) | private static void cleanupResources(Statement statement, String metri...
method compareFetchedDataAndFile (line 225) | private static void compareFetchedDataAndFile(Statement statement, Lis...
method downloadFile (line 254) | private static String downloadFile(SnowflakeConnection sfConnection, S...
method fetchAndVerifyRows (line 270) | private static void fetchAndVerifyRows(Statement statement, String met...
method loadFileIntoTable (line 282) | private static void loadFileIntoTable(Statement statement, String metr...
method uploadFile (line 295) | private static void uploadFile(SnowflakeConnection sfConnection, Strin...
method createDataTable (line 306) | private static void createDataTable(Statement statement, String metric...
method createDataStage (line 323) | private static void createDataStage(Statement statement, String metric...
method setupLogging (line 340) | private static void setupLogging(Properties properties) throws IOExcep...
method logMetric (line 350) | private static void logMetric(String metricName, Status status) {
method parseArguments (line 354) | private static Map<String, String> parseArguments(String[] args) {
method generateCsv (line 376) | private static List<String> generateCsv(int numRows) {
method generateRandomString (line 400) | private static String generateRandomString(int length) {
method setPrivateKey (line 412) | private static void setPrivateKey(Properties props) throws IOException...
FILE: src/main/java-fat-jar/net/snowflake/client/internal/log/SFBridgeLogger.java
class SFBridgeLogger (line 16) | public class SFBridgeLogger extends MarkerIgnoringBase {
method SFBridgeLogger (line 22) | SFBridgeLogger(String name) {
method isTraceEnabled (line 29) | @Override
method trace (line 34) | @Override
method trace (line 41) | @Override
method trace (line 48) | @Override
method trace (line 55) | @Override
method trace (line 62) | @Override
method isDebugEnabled (line 71) | @Override
method debug (line 76) | @Override
method debug (line 83) | @Override
method debug (line 90) | @Override
method debug (line 97) | @Override
method debug (line 104) | @Override
method isInfoEnabled (line 113) | @Override
method info (line 118) | @Override
method info (line 125) | @Override
method info (line 132) | @Override
method info (line 139) | @Override
method info (line 146) | @Override
method isWarnEnabled (line 155) | @Override
method warn (line 160) | @Override
method warn (line 167) | @Override
method warn (line 174) | @Override
method warn (line 181) | @Override
method warn (line 188) | @Override
method isErrorEnabled (line 197) | @Override
method error (line 202) | @Override
method error (line 209) | @Override
method error (line 216) | @Override
method error (line 223) | @Override
method error (line 230) | @Override
FILE: src/main/java-fat-jar/net/snowflake/client/internal/log/SFBridgeLoggerFactory.java
class SFBridgeLoggerFactory (line 12) | public class SFBridgeLoggerFactory implements ILoggerFactory {
method getLogger (line 16) | @Override
FILE: src/main/java-fat-jar/net/snowflake/client/internal/log/SFBridgeServiceProvider.java
class SFBridgeServiceProvider (line 24) | public class SFBridgeServiceProvider implements SLF4JServiceProvider {
method getLoggerFactory (line 33) | @Override
method getMarkerFactory (line 38) | @Override
method getMDCAdapter (line 43) | @Override
method getRequestedApiVersion (line 48) | @Override
method initialize (line 53) | @Override
FILE: src/main/java/net/snowflake/client/api/auth/AuthenticatorType.java
type AuthenticatorType (line 19) | public enum AuthenticatorType {
FILE: src/main/java/net/snowflake/client/api/connection/DownloadStreamConfig.java
class DownloadStreamConfig (line 25) | public class DownloadStreamConfig {
method DownloadStreamConfig (line 33) | private DownloadStreamConfig(Builder builder) {
method isDecompress (line 42) | public boolean isDecompress() {
method builder (line 51) | public static Builder builder() {
class Builder (line 69) | public static class Builder {
method Builder (line 73) | private Builder() {}
method setDecompress (line 87) | public Builder setDecompress(boolean decompress) {
method build (line 97) | public DownloadStreamConfig build() {
method toString (line 102) | @Override
FILE: src/main/java/net/snowflake/client/api/connection/SnowflakeConnection.java
type SnowflakeConnection (line 9) | public interface SnowflakeConnection {
method uploadStream (line 24) | void uploadStream(String stageName, String destFileName, InputStream i...
method uploadStream (line 41) | void uploadStream(
method downloadStream (line 58) | InputStream downloadStream(String stageName, String sourceFileName) th...
method downloadStream (line 74) | InputStream downloadStream(String stageName, String sourceFileName, Do...
method getSessionID (line 83) | String getSessionID() throws SQLException;
method getQueryStatus (line 92) | QueryStatus getQueryStatus(String queryID) throws SQLException;
method createResultSet (line 103) | ResultSet createResultSet(String queryID) throws SQLException;
method getChildQueryIds (line 115) | String[] getChildQueryIds(String queryID) throws SQLException;
method getDatabaseMajorVersion (line 123) | int getDatabaseMajorVersion() throws SQLException;
method getDatabaseMinorVersion (line 131) | int getDatabaseMinorVersion() throws SQLException;
method getDatabaseVersion (line 139) | String getDatabaseVersion() throws SQLException;
method getRole (line 147) | String getRole() throws SQLException;
method getWarehouse (line 155) | String getWarehouse() throws SQLException;
method getDatabase (line 166) | String getDatabase() throws SQLException;
FILE: src/main/java/net/snowflake/client/api/connection/SnowflakeDatabaseMetaData.java
type SnowflakeDatabaseMetaData (line 13) | public interface SnowflakeDatabaseMetaData extends DatabaseMetaData {
method getStreams (line 31) | ResultSet getStreams(String catalog, String schemaPattern, String stre...
method getColumns (line 54) | ResultSet getColumns(
FILE: src/main/java/net/snowflake/client/api/connection/UploadStreamConfig.java
class UploadStreamConfig (line 26) | public class UploadStreamConfig {
method UploadStreamConfig (line 35) | private UploadStreamConfig(Builder builder) {
method getDestPrefix (line 45) | public String getDestPrefix() {
method isCompressData (line 54) | public boolean isCompressData() {
method builder (line 63) | public static Builder builder() {
class Builder (line 82) | public static class Builder {
method Builder (line 87) | private Builder() {}
method setDestPrefix (line 106) | public Builder setDestPrefix(String destPrefix) {
method setCompressData (line 124) | public Builder setCompressData(boolean compressData) {
method build (line 134) | public UploadStreamConfig build() {
method toString (line 139) | @Override
FILE: src/main/java/net/snowflake/client/api/datasource/SnowflakeDataSource.java
type SnowflakeDataSource (line 33) | public interface SnowflakeDataSource extends DataSource {
method setUrl (line 36) | void setUrl(String url);
method setDatabaseName (line 39) | void setDatabaseName(String databaseName);
method setSchema (line 42) | void setSchema(String schema);
method setWarehouse (line 45) | void setWarehouse(String warehouse);
method setRole (line 48) | void setRole(String role);
method setUser (line 51) | void setUser(String user);
method setServerName (line 54) | void setServerName(String serverName);
method setPassword (line 57) | void setPassword(String password);
method setPortNumber (line 60) | void setPortNumber(int portNumber);
method setAccount (line 63) | void setAccount(String account);
method setSsl (line 66) | void setSsl(boolean ssl);
method setAuthenticator (line 69) | void setAuthenticator(String authenticator);
method setToken (line 72) | void setToken(String token);
method getUrl (line 75) | String getUrl();
method setPrivateKey (line 78) | void setPrivateKey(PrivateKey privateKey);
method setPrivateKeyFile (line 81) | void setPrivateKeyFile(String location, String password);
method setPrivateKeyBase64 (line 84) | void setPrivateKeyBase64(String privateKeyBase64, String password);
method setTracing (line 87) | void setTracing(String tracing);
method getProperties (line 90) | Properties getProperties();
method setAllowUnderscoresInHost (line 93) | void setAllowUnderscoresInHost(boolean allowUnderscoresInHost);
method setDisableGcsDefaultCredentials (line 96) | void setDisableGcsDefaultCredentials(boolean isGcsDefaultCredentialsDi...
method setDisableSamlURLCheck (line 99) | void setDisableSamlURLCheck(boolean disableSamlURLCheck);
method setPasscode (line 102) | void setPasscode(String passcode);
method setPasscodeInPassword (line 105) | void setPasscodeInPassword(boolean isPasscodeInPassword);
method setDisableSocksProxy (line 108) | void setDisableSocksProxy(boolean ignoreJvmSocksProxy);
method setNonProxyHosts (line 111) | void setNonProxyHosts(String nonProxyHosts);
method setProxyHost (line 114) | void setProxyHost(String proxyHost);
method setProxyPassword (line 117) | void setProxyPassword(String proxyPassword);
method setProxyPort (line 120) | void setProxyPort(int proxyPort);
method setProxyProtocol (line 123) | void setProxyProtocol(String proxyProtocol);
method setProxyUser (line 126) | void setProxyUser(String proxyUser);
method setUseProxy (line 129) | void setUseProxy(boolean useProxy);
method setNetworkTimeout (line 132) | void setNetworkTimeout(int networkTimeoutSeconds);
method setQueryTimeout (line 135) | void setQueryTimeout(int queryTimeoutSeconds);
method setApplication (line 138) | void setApplication(String application);
method setClientConfigFile (line 141) | void setClientConfigFile(String clientConfigFile);
method setEnablePatternSearch (line 144) | void setEnablePatternSearch(boolean enablePatternSearch);
method setEnablePutGet (line 147) | void setEnablePutGet(boolean enablePutGet);
method setArrowTreatDecimalAsInt (line 150) | void setArrowTreatDecimalAsInt(boolean treatDecimalAsInt);
method setMaxHttpRetries (line 153) | void setMaxHttpRetries(int maxHttpRetries);
method setOcspFailOpen (line 156) | void setOcspFailOpen(boolean ocspFailOpen);
method setPutGetMaxRetries (line 159) | void setPutGetMaxRetries(int putGetMaxRetries);
method setStringsQuotedForColumnDef (line 162) | void setStringsQuotedForColumnDef(boolean stringsQuotedForColumnDef);
method setEnableDiagnostics (line 165) | void setEnableDiagnostics(boolean enableDiagnostics);
method setDiagnosticsAllowlistFile (line 168) | void setDiagnosticsAllowlistFile(String diagnosticsAllowlistFile);
method setJDBCDefaultFormatDateWithTimezone (line 171) | void setJDBCDefaultFormatDateWithTimezone(Boolean jdbcDefaultFormatDat...
method setGetDateUseNullTimezone (line 174) | void setGetDateUseNullTimezone(Boolean getDateUseNullTimezone);
method setEnableClientRequestMfaToken (line 177) | void setEnableClientRequestMfaToken(boolean enableClientRequestMfaToken);
method setEnableClientStoreTemporaryCredential (line 180) | void setEnableClientStoreTemporaryCredential(boolean enableClientStore...
method setBrowserResponseTimeout (line 183) | void setBrowserResponseTimeout(int seconds);
method setHttpHeadersCustomizers (line 186) | void setHttpHeadersCustomizers(List<HttpHeadersCustomizer> httpHeaders...
FILE: src/main/java/net/snowflake/client/api/datasource/SnowflakeDataSourceFactory.java
class SnowflakeDataSourceFactory (line 29) | public final class SnowflakeDataSourceFactory {
method SnowflakeDataSourceFactory (line 31) | private SnowflakeDataSourceFactory() {
method createDataSource (line 45) | public static SnowflakeDataSource createDataSource() {
FILE: src/main/java/net/snowflake/client/api/driver/SnowflakeDriver.java
class SnowflakeDriver (line 34) | public class SnowflakeDriver implements Driver {
method acceptsURL (line 70) | @Override
method connect (line 86) | @Override
method connect (line 97) | public Connection connect() throws SQLException {
method getMajorVersion (line 101) | @Override
method getMinorVersion (line 106) | @Override
method getPatchVersion (line 117) | public long getPatchVersion() {
method getImplementationVersion (line 126) | public static String getImplementationVersion() {
method getPropertyInfo (line 130) | @Override
method jdbcCompliant (line 146) | @Override
method getParentLogger (line 151) | @Override
FILE: src/main/java/net/snowflake/client/api/exception/ErrorCode.java
type ErrorCode (line 6) | public enum ErrorCode {
method ErrorCode (line 113) | ErrorCode(Integer messageCode, String sqlState) {
method getMessageCode (line 118) | public Integer getMessageCode() {
method getSqlState (line 122) | public String getSqlState() {
method toString (line 126) | @Override
FILE: src/main/java/net/snowflake/client/api/exception/SnowflakeSQLException.java
class SnowflakeSQLException (line 7) | public class SnowflakeSQLException extends SQLException {
method SnowflakeSQLException (line 25) | public SnowflakeSQLException(String queryId, String reason, String sql...
method SnowflakeSQLException (line 35) | public SnowflakeSQLException(String queryId, String reason, String sql...
method SnowflakeSQLException (line 45) | public SnowflakeSQLException(String queryId, String sqlState, int vend...
method SnowflakeSQLException (line 58) | public SnowflakeSQLException(String sqlState, int vendorCode, Object.....
method SnowflakeSQLException (line 68) | public SnowflakeSQLException(String queryId, String sqlState, int vend...
method SnowflakeSQLException (line 81) | public SnowflakeSQLException(Throwable ex, String sqlState, int vendor...
method SnowflakeSQLException (line 94) | public SnowflakeSQLException(Throwable ex, ErrorCode errorCode, Object...
method SnowflakeSQLException (line 104) | public SnowflakeSQLException(Throwable ex, String sqlState, int vendor...
method SnowflakeSQLException (line 115) | public SnowflakeSQLException(
method SnowflakeSQLException (line 129) | public SnowflakeSQLException(ErrorCode errorCode, Object... params) {
method SnowflakeSQLException (line 142) | public SnowflakeSQLException(String queryId, ErrorCode errorCode, Obje...
method SnowflakeSQLException (line 154) | public SnowflakeSQLException(SFException e) {
method SnowflakeSQLException (line 158) | public SnowflakeSQLException(String reason) {
method SnowflakeSQLException (line 162) | public SnowflakeSQLException(Throwable ex, String message) {
method getQueryId (line 166) | public String getQueryId() {
FILE: src/main/java/net/snowflake/client/api/http/HttpHeadersCustomizer.java
type HttpHeadersCustomizer (line 14) | public interface HttpHeadersCustomizer {
method applies (line 25) | boolean applies(String method, String uri, Map<String, List<String>> c...
method newHeaders (line 32) | Map<String, List<String>> newHeaders();
method invokeOnce (line 40) | boolean invokeOnce();
FILE: src/main/java/net/snowflake/client/api/loader/LoadResultListener.java
type LoadResultListener (line 4) | public interface LoadResultListener {
method needSuccessRecords (line 9) | boolean needSuccessRecords();
method recordProvided (line 15) | void recordProvided(Operation op, Object[] record);
method addProcessedRecordCount (line 21) | void addProcessedRecordCount(Operation op, int i);
method addOperationRecordCount (line 27) | void addOperationRecordCount(Operation op, int i);
method needErrors (line 32) | boolean needErrors();
method addError (line 37) | void addError(LoadingError error);
method throwOnError (line 42) | boolean throwOnError();
method addErrorCount (line 49) | void addErrorCount(int number);
method resetErrorCount (line 52) | void resetErrorCount();
method getErrorCount (line 59) | int getErrorCount();
method addErrorRecordCount (line 66) | void addErrorRecordCount(int number);
method resetErrorRecordCount (line 69) | void resetErrorRecordCount();
method getErrorRecordCount (line 76) | int getErrorRecordCount();
method resetSubmittedRowCount (line 79) | void resetSubmittedRowCount();
method addSubmittedRowCount (line 86) | void addSubmittedRowCount(int number);
method getSubmittedRowCount (line 93) | int getSubmittedRowCount();
FILE: src/main/java/net/snowflake/client/api/loader/Loader.java
type Loader (line 17) | public interface Loader extends AutoCloseable {
method setProperty (line 20) | void setProperty(LoaderProperty property, Object value);
method setListener (line 23) | void setListener(LoadResultListener listener);
method start (line 26) | void start();
method submitRow (line 33) | void submitRow(Object[] data);
method resetOperation (line 40) | void resetOperation(Operation op);
method rollback (line 46) | void rollback();
method finish (line 54) | void finish() throws Exception;
method close (line 64) | @Override
class DataError (line 68) | class DataError extends RuntimeException {
method DataError (line 71) | public DataError(String msg) {
method DataError (line 75) | public DataError(String msg, Throwable ex) {
method DataError (line 79) | public DataError(Throwable ex) {
class ConnectionError (line 85) | class ConnectionError extends RuntimeException {
method ConnectionError (line 88) | public ConnectionError(String msg) {
method ConnectionError (line 93) | public ConnectionError(String msg, Throwable ex) {
method ConnectionError (line 97) | public ConnectionError(Throwable ex) {
method getListener (line 103) | LoadResultListener getListener();
FILE: src/main/java/net/snowflake/client/api/loader/LoaderFactory.java
class LoaderFactory (line 7) | public class LoaderFactory {
method createLoader (line 9) | public static Loader createLoader(
FILE: src/main/java/net/snowflake/client/api/loader/LoaderProperty.java
type LoaderProperty (line 4) | public enum LoaderProperty {
FILE: src/main/java/net/snowflake/client/api/loader/LoadingError.java
class LoadingError (line 35) | public class LoadingError {
type ErrorProperty (line 44) | public enum ErrorProperty {
method LoadingError (line 88) | public LoadingError(ResultSet rs, BufferStage bs, StreamLoader loader) {
method getStage (line 115) | public String getStage() {
method getPrefix (line 124) | public String getPrefix() {
method getFile (line 133) | public String getFile() {
method getTarget (line 142) | public String getTarget() {
method getProperty (line 152) | public String getProperty(ErrorProperty p) {
method setProperty (line 162) | public void setProperty(ErrorProperty p, String value) {
method toString (line 166) | public String toString() {
method getException (line 190) | public Loader.DataError getException() {
FILE: src/main/java/net/snowflake/client/api/loader/Operation.java
type Operation (line 13) | public enum Operation {
FILE: src/main/java/net/snowflake/client/api/pooling/SnowflakeConnectionPoolDataSource.java
type SnowflakeConnectionPoolDataSource (line 10) | public interface SnowflakeConnectionPoolDataSource
FILE: src/main/java/net/snowflake/client/api/pooling/SnowflakeConnectionPoolDataSourceFactory.java
class SnowflakeConnectionPoolDataSourceFactory (line 30) | public class SnowflakeConnectionPoolDataSourceFactory {
method SnowflakeConnectionPoolDataSourceFactory (line 32) | private SnowflakeConnectionPoolDataSourceFactory() {
method createConnectionPoolDataSource (line 41) | public static SnowflakeConnectionPoolDataSource createConnectionPoolDa...
FILE: src/main/java/net/snowflake/client/api/resultset/FieldMetadata.java
type FieldMetadata (line 9) | public interface FieldMetadata {
method getName (line 16) | String getName();
method getTypeName (line 23) | String getTypeName();
method getType (line 30) | int getType();
method isNullable (line 37) | boolean isNullable();
method getByteLength (line 44) | int getByteLength();
method getPrecision (line 51) | int getPrecision();
method getScale (line 58) | int getScale();
method isFixed (line 65) | boolean isFixed();
method getBase (line 72) | SnowflakeType getBase();
method getFields (line 79) | List<FieldMetadata> getFields();
FILE: src/main/java/net/snowflake/client/api/resultset/QueryStatus.java
class QueryStatus (line 26) | public final class QueryStatus {
type Status (line 28) | public enum Status {
method Status (line 46) | Status(int value, String description) {
method getValue (line 51) | public int getValue() {
method getDescription (line 55) | public String getDescription() {
method isStillRunning (line 59) | private static boolean isStillRunning(Status status) {
method isAnError (line 73) | private static boolean isAnError(Status status) {
method getStatusFromString (line 87) | private static Status getStatusFromString(String description) {
method QueryStatus (line 134) | public QueryStatus(
method empty (line 171) | public static QueryStatus empty() {
method isEmpty (line 180) | public boolean isEmpty() {
method isStillRunning (line 189) | public boolean isStillRunning() {
method isSuccess (line 198) | public boolean isSuccess() {
method isAnError (line 207) | public boolean isAnError() {
method getEndTime (line 216) | public long getEndTime() {
method getErrorCode (line 225) | public int getErrorCode() {
method getErrorMessage (line 234) | public String getErrorMessage() {
method getId (line 243) | public String getId() {
method getName (line 252) | public String getName() {
method getSessionId (line 261) | public long getSessionId() {
method getSqlText (line 270) | public String getSqlText() {
method getStartTime (line 279) | public long getStartTime() {
method getState (line 288) | public String getState() {
method getTotalDuration (line 297) | public int getTotalDuration() {
method getWarehouseExternalSize (line 306) | public String getWarehouseExternalSize() {
method getWarehouseId (line 315) | public int getWarehouseId() {
method getWarehouseName (line 324) | public String getWarehouseName() {
method getWarehouseServerType (line 333) | public String getWarehouseServerType() {
method getDescription (line 342) | public String getDescription() {
method getStatus (line 351) | public Status getStatus() {
FILE: src/main/java/net/snowflake/client/api/resultset/SnowflakeAsyncResultSet.java
type SnowflakeAsyncResultSet (line 6) | public interface SnowflakeAsyncResultSet extends SnowflakeResultSet {
method getStatus (line 17) | QueryStatus getStatus() throws SQLException;
FILE: src/main/java/net/snowflake/client/api/resultset/SnowflakeResultSet.java
type SnowflakeResultSet (line 8) | public interface SnowflakeResultSet {
method getQueryID (line 13) | String getQueryID() throws SQLException;
method getResultSetSerializables (line 26) | List<SnowflakeResultSetSerializable> getResultSetSerializables(long ma...
method getArray (line 41) | <T> T[] getArray(int columnIndex, Class<T> type) throws SQLException;
method getList (line 55) | <T> List<T> getList(int columnIndex, Class<T> type) throws SQLException;
method getMap (line 69) | <T> Map<String, T> getMap(int columnIndex, Class<T> type) throws SQLEx...
FILE: src/main/java/net/snowflake/client/api/resultset/SnowflakeResultSetMetaData.java
type SnowflakeResultSetMetaData (line 6) | public interface SnowflakeResultSetMetaData {
method getQueryID (line 7) | String getQueryID() throws SQLException;
method getColumnNames (line 9) | List<String> getColumnNames() throws SQLException;
method getColumnIndex (line 11) | int getColumnIndex(String columnName) throws SQLException;
method getInternalColumnType (line 13) | int getInternalColumnType(int column) throws SQLException;
method getColumnFields (line 15) | List<FieldMetadata> getColumnFields(int column) throws SQLException;
method getVectorDimension (line 24) | int getVectorDimension(int column) throws SQLException;
method getVectorDimension (line 33) | int getVectorDimension(String columnName) throws SQLException;
FILE: src/main/java/net/snowflake/client/api/resultset/SnowflakeResultSetSerializable.java
type SnowflakeResultSetSerializable (line 11) | public interface SnowflakeResultSetSerializable {
class ResultSetRetrieveConfig (line 13) | class ResultSetRetrieveConfig {
method ResultSetRetrieveConfig (line 17) | public ResultSetRetrieveConfig(Builder builder) {
method getProxyProperties (line 22) | public Properties getProxyProperties() {
method getSfFullURL (line 26) | public String getSfFullURL() {
class Builder (line 31) | public static class Builder {
method Builder (line 32) | private Builder() {}
method newInstance (line 37) | public static Builder newInstance() {
method build (line 41) | public ResultSetRetrieveConfig build() throws IllegalArgumentExcep...
method setProxyProperties (line 51) | public Builder setProxyProperties(Properties proxyProperties) {
method setSfFullURL (line 56) | public Builder setSfFullURL(String sfFullURL) {
method getResultSet (line 70) | ResultSet getResultSet(ResultSetRetrieveConfig resultSetRetrieveConfig...
method getRowCount (line 78) | long getRowCount() throws SQLException;
method getCompressedDataSizeInBytes (line 86) | long getCompressedDataSizeInBytes() throws SQLException;
method getUncompressedDataSizeInBytes (line 94) | long getUncompressedDataSizeInBytes() throws SQLException;
FILE: src/main/java/net/snowflake/client/api/resultset/SnowflakeType.java
type SnowflakeType (line 43) | public enum SnowflakeType {
FILE: src/main/java/net/snowflake/client/api/statement/SnowflakePreparedStatement.java
type SnowflakePreparedStatement (line 8) | public interface SnowflakePreparedStatement {
method getQueryID (line 13) | String getQueryID() throws SQLException;
method executeAsyncQuery (line 21) | ResultSet executeAsyncQuery() throws SQLException;
method setBigInteger (line 30) | void setBigInteger(int parameterIndex, BigInteger x) throws SQLException;
method setMap (line 41) | <T> void setMap(int parameterIndex, Map<String, T> map, int type) thro...
FILE: src/main/java/net/snowflake/client/api/statement/SnowflakeStatement.java
type SnowflakeStatement (line 8) | public interface SnowflakeStatement {
method getQueryID (line 14) | String getQueryID() throws SQLException;
method getBatchQueryIDs (line 20) | List<String> getBatchQueryIDs() throws SQLException;
method setParameter (line 29) | void setParameter(String name, Object value) throws SQLException;
method setBatchID (line 36) | void setBatchID(String batchID);
method executeAsyncQuery (line 46) | ResultSet executeAsyncQuery(String sql) throws SQLException;
method setAsyncQueryTimeout (line 54) | void setAsyncQueryTimeout(int seconds) throws SQLException;
FILE: src/main/java/net/snowflake/client/internal/api/implementation/connection/SnowflakeConnectionImpl.java
class SnowflakeConnectionImpl (line 73) | public class SnowflakeConnectionImpl implements Connection, SnowflakeCon...
method SnowflakeConnectionImpl (line 120) | public SnowflakeConnectionImpl(SFConnectionHandler sfConnectionHandler...
method SnowflakeConnectionImpl (line 132) | public SnowflakeConnectionImpl(
method SnowflakeConnectionImpl (line 145) | public SnowflakeConnectionImpl(String url, Properties info) throws SQL...
method SnowflakeConnectionImpl (line 156) | public SnowflakeConnectionImpl(String url, Properties info, boolean fa...
method initConnectionWithImpl (line 168) | private void initConnectionWithImpl(
method returnMissingProperties (line 186) | public List<DriverPropertyInfo> returnMissingProperties() {
method raiseSQLExceptionIfConnectionIsClosed (line 190) | private void raiseSQLExceptionIfConnectionIsClosed() throws SQLExcepti...
method executeImmediate (line 203) | private void executeImmediate(String stmtText) throws SQLException {
method createStatement (line 216) | @Override
method createResultSet (line 231) | public ResultSet createResultSet(String queryID) throws SQLException {
method getChildQueryIds (line 247) | @Override
method close (line 261) | @Override
method getSessionID (line 315) | @Override
method getQueryStatus (line 321) | @Override
method getRole (line 327) | @Override
method getWarehouse (line 333) | @Override
method getDatabase (line 339) | @Override
method isClosed (line 345) | @Override
method getMetaData (line 358) | @Override
method prepareCall (line 365) | @Override
method prepareCall (line 374) | public CallableStatement prepareCall(String sql, boolean skipParsing) ...
method prepareCall (line 389) | @Override
method prepareCall (line 401) | @Override
method nativeSQL (line 413) | @Override
method getAutoCommit (line 420) | @Override
method setAutoCommit (line 427) | @Override
method commit (line 439) | @Override
method rollback (line 445) | @Override
method rollback (line 451) | @Override
method isReadOnly (line 458) | @Override
method setReadOnly (line 465) | @Override
method getCatalog (line 474) | @Override
method setCatalog (line 480) | @Override
method getTransactionIsolation (line 488) | @Override
method setTransactionIsolation (line 501) | @Override
method getWarnings (line 515) | @Override
method clearWarnings (line 522) | @Override
method createStatement (line 530) | @Override
method createStatement (line 542) | @Override
method prepareStatement (line 556) | @Override
method prepareStatement (line 565) | @Override
method prepareStatement (line 577) | @Override
method prepareStatement (line 584) | @Override
method prepareStatement (line 592) | @Override
method prepareStatement (line 604) | @Override
method prepareStatement (line 617) | public PreparedStatement prepareStatement(String sql, boolean skipPars...
method getTypeMap (line 632) | @Override
method setTypeMap (line 638) | @Override
method getHoldability (line 644) | @Override
method setHoldability (line 650) | @Override
method setSavepoint (line 665) | @Override
method setSavepoint (line 671) | @Override
method releaseSavepoint (line 677) | @Override
method createBlob (line 683) | @Override
method createClob (line 689) | @Override
method createNClob (line 695) | @Override
method createSQLXML (line 701) | @Override
method isValid (line 707) | @Override
method setClientInfo (line 723) | @Override
method raiseSetClientInfoException (line 730) | private void raiseSetClientInfoException(Map<String, ClientInfoStatus>...
method getClientInfo (line 747) | @Override
method setClientInfo (line 755) | @Override
method getClientInfo (line 766) | @Override
method createArrayOf (line 775) | @Override
method createStruct (line 785) | @Override
method getSchema (line 792) | @Override
method setSchema (line 798) | @Override
method abort (line 812) | @Override
method setNetworkTimeout (line 819) | @Override
method getNetworkTimeout (line 827) | @Override
method isWrapperFor (line 834) | @Override
method unwrap (line 841) | @SuppressWarnings("unchecked")
method getDatabaseMajorVersion (line 853) | @Override
method getDatabaseMinorVersion (line 859) | @Override
method getDatabaseVersion (line 865) | @Override
method getHandler (line 871) | public SFConnectionHandler getHandler() {
method getHandler (line 875) | public SFConnectionHandler getHandler(InternalCallMarker internalCallM...
method uploadStream (line 880) | @Override
method uploadStream (line 886) | @Override
method compressAndUploadStream (line 911) | @Deprecated
method uploadStreamInternal (line 935) | private void uploadStreamInternal(
method downloadStream (line 999) | @Override
method downloadStream (line 1004) | @Override
method setInjectedDelay (line 1088) | public void setInjectedDelay(int delay) throws SQLException {
method injectedDelay (line 1093) | public void injectedDelay() throws SQLException {
method setInjectFileUploadFailure (line 1109) | public void setInjectFileUploadFailure(String fileToFail) throws SQLEx...
method getSFBaseSession (line 1114) | public SFBaseSession getSFBaseSession() {
method getSFBaseSession (line 1118) | public SFBaseSession getSFBaseSession(InternalCallMarker internalCallM...
method getSfSession (line 1125) | public SFSession getSfSession() throws SnowflakeSQLException {
method getSfSession (line 1129) | public SFSession getSfSession(InternalCallMarker internalCallMarker)
method appendWarning (line 1139) | private void appendWarning(SQLWarning w) {
method appendWarnings (line 1147) | private void appendWarnings(List<SFException> warnings) {
method getShowStatementParameters (line 1153) | public boolean getShowStatementParameters() {
method removeClosedStatement (line 1157) | public void removeClosedStatement(Statement stmt) {
FILE: src/main/java/net/snowflake/client/internal/api/implementation/datasource/SnowflakeBasicDataSource.java
class SnowflakeBasicDataSource (line 36) | public class SnowflakeBasicDataSource implements SnowflakeDataSource, Se...
method writeObjectHelper (line 74) | private void writeObjectHelper(ObjectOutputStream out) throws IOExcept...
method readObjectHelper (line 84) | private void readObjectHelper(ObjectInputStream in) throws IOException...
method writeObject (line 94) | private void writeObject(ObjectOutputStream out) throws IOException {
method readObject (line 98) | private void readObject(ObjectInputStream in) throws IOException, Clas...
method getConnection (line 102) | @Override
method getConnection (line 107) | @Override
method getLogWriter (line 138) | @Override
method setLogWriter (line 143) | @Override
method getLoginTimeout (line 148) | @Override
method setLoginTimeout (line 158) | @Override
method getParentLogger (line 163) | @Override
method isWrapperFor (line 168) | @Override
method unwrap (line 173) | @Override
method setUrl (line 178) | @Override
method setDatabaseName (line 183) | @Override
method setSchema (line 188) | @Override
method setWarehouse (line 193) | @Override
method setRole (line 198) | @Override
method setUser (line 203) | @Override
method setServerName (line 208) | @Override
method setPassword (line 213) | @Override
method setPortNumber (line 218) | @Override
method setAccount (line 223) | @Override
method setSsl (line 228) | @Override
method setAuthenticator (line 233) | @Override
method setToken (line 239) | @Override
method getUrl (line 244) | @Override
method setPrivateKey (line 261) | @Override
method setPrivateKeyFile (line 267) | @Override
method setPrivateKeyBase64 (line 276) | @Override
method setTracing (line 285) | @Override
method getProperties (line 290) | @Override
method setAllowUnderscoresInHost (line 295) | @Override
method setDisableGcsDefaultCredentials (line 302) | @Override
method setDisableSamlURLCheck (line 309) | @Override
method setPasscode (line 316) | @Override
method setPasscodeInPassword (line 322) | @Override
method setDisableSocksProxy (line 332) | @Override
method setNonProxyHosts (line 339) | @Override
method setProxyHost (line 344) | @Override
method setProxyPassword (line 349) | @Override
method setProxyPort (line 354) | @Override
method setProxyProtocol (line 359) | @Override
method setProxyUser (line 364) | @Override
method setUseProxy (line 369) | @Override
method setNetworkTimeout (line 374) | @Override
method setQueryTimeout (line 381) | @Override
method setApplication (line 387) | @Override
method setClientConfigFile (line 392) | @Override
method setEnablePatternSearch (line 397) | @Override
method setEnablePutGet (line 404) | @Override
method setArrowTreatDecimalAsInt (line 410) | @Override
method setMaxHttpRetries (line 417) | @Override
method setOcspFailOpen (line 423) | @Override
method setPutGetMaxRetries (line 429) | @Override
method setStringsQuotedForColumnDef (line 435) | @Override
method setEnableDiagnostics (line 442) | @Override
method setDiagnosticsAllowlistFile (line 448) | @Override
method setJDBCDefaultFormatDateWithTimezone (line 454) | @Override
method setGetDateUseNullTimezone (line 460) | @Override
method setEnableClientRequestMfaToken (line 465) | @Override
method setEnableClientStoreTemporaryCredential (line 473) | @Override
method setBrowserResponseTimeout (line 482) | @Override
method setHttpHeadersCustomizers (line 488) | @Override
FILE: src/main/java/net/snowflake/client/internal/api/implementation/metadata/SnowflakeDatabaseMetaDataImpl.java
class SnowflakeDatabaseMetaDataImpl (line 61) | public class SnowflakeDatabaseMetaDataImpl implements SnowflakeDatabaseM...
method SnowflakeDatabaseMetaDataImpl (line 181) | public SnowflakeDatabaseMetaDataImpl(Connection connection) throws SQL...
method raiseSQLExceptionIfConnectionIsClosed (line 197) | private void raiseSQLExceptionIfConnectionIsClosed() throws SQLExcepti...
method sendInBandTelemetryMetadataMetrics (line 215) | private void sendInBandTelemetryMetadataMetrics(
method unescapeChars (line 251) | private String unescapeChars(String escapedString) {
method escapeSqlQuotes (line 261) | private String escapeSqlQuotes(String originalString) {
method escapeSingleQuoteForLikeCommand (line 271) | private String escapeSingleQuoteForLikeCommand(String arg) {
method isSchemaNameWildcardPattern (line 289) | private boolean isSchemaNameWildcardPattern(String inputString) {
method allProceduresAreCallable (line 297) | @Override
method allTablesAreSelectable (line 304) | @Override
method getURL (line 311) | @Override
method getUserName (line 321) | @Override
method isReadOnly (line 328) | @Override
method nullsAreSortedHigh (line 336) | @Override
method nullsAreSortedLow (line 343) | @Override
method nullsAreSortedAtStart (line 350) | @Override
method nullsAreSortedAtEnd (line 357) | @Override
method getDatabaseProductName (line 364) | @Override
method getDatabaseProductVersion (line 371) | @Override
method getDriverName (line 378) | @Override
method getDriverVersion (line 385) | @Override
method getDriverMajorVersion (line 396) | @Override
method getDriverMinorVersion (line 402) | @Override
method usesLocalFiles (line 408) | @Override
method usesLocalFilePerTable (line 415) | @Override
method supportsMixedCaseIdentifiers (line 422) | @Override
method storesUpperCaseIdentifiers (line 429) | @Override
method storesLowerCaseIdentifiers (line 436) | @Override
method storesMixedCaseIdentifiers (line 443) | @Override
method supportsMixedCaseQuotedIdentifiers (line 450) | @Override
method storesUpperCaseQuotedIdentifiers (line 457) | @Override
method storesLowerCaseQuotedIdentifiers (line 464) | @Override
method storesMixedCaseQuotedIdentifiers (line 471) | @Override
method getIdentifierQuoteString (line 478) | @Override
method getSQLKeywords (line 485) | @Override
method getNumericFunctions (line 492) | @Override
method getStringFunctions (line 499) | @Override
method getSystemFunctions (line 506) | @Override
method getTimeDateFunctions (line 513) | @Override
method getSearchStringEscape (line 520) | @Override
method getExtraNameCharacters (line 527) | @Override
method supportsAlterTableWithAddColumn (line 534) | @Override
method supportsAlterTableWithDropColumn (line 541) | @Override
method supportsColumnAliasing (line 548) | @Override
method nullPlusNonNullIsNull (line 555) | @Override
method supportsConvert (line 562) | @Override
method supportsConvert (line 569) | @Override
method supportsTableCorrelationNames (line 576) | @Override
method supportsDifferentTableCorrelationNames (line 583) | @Override
method supportsExpressionsInOrderBy (line 590) | @Override
method supportsOrderByUnrelated (line 597) | @Override
method supportsGroupBy (line 604) | @Override
method supportsGroupByUnrelated (line 611) | @Override
method supportsGroupByBeyondSelect (line 618) | @Override
method supportsLikeEscapeClause (line 625) | @Override
method supportsMultipleResultSets (line 632) | @Override
method supportsMultipleTransactions (line 639) | @Override
method supportsNonNullableColumns (line 646) | @Override
method supportsMinimumSQLGrammar (line 653) | @Override
method supportsCoreSQLGrammar (line 660) | @Override
method supportsExtendedSQLGrammar (line 667) | @Override
method supportsANSI92EntryLevelSQL (line 674) | @Override
method supportsANSI92IntermediateSQL (line 681) | @Override
method supportsANSI92FullSQL (line 688) | @Override
method supportsIntegrityEnhancementFacility (line 695) | @Override
method supportsOuterJoins (line 702) | @Override
method supportsFullOuterJoins (line 709) | @Override
method supportsLimitedOuterJoins (line 716) | @Override
method getSchemaTerm (line 723) | @Override
method getProcedureTerm (line 730) | @Override
method getCatalogTerm (line 737) | @Override
method isCatalogAtStart (line 744) | @Override
method getCatalogSeparator (line 751) | @Override
method supportsSchemasInDataManipulation (line 758) | @Override
method supportsSchemasInProcedureCalls (line 765) | @Override
method supportsSchemasInTableDefinitions (line 772) | @Override
method supportsSchemasInIndexDefinitions (line 779) | @Override
method supportsSchemasInPrivilegeDefinitions (line 786) | @Override
method supportsCatalogsInDataManipulation (line 793) | @Override
method supportsCatalogsInProcedureCalls (line 800) | @Override
method supportsCatalogsInTableDefinitions (line 807) | @Override
method supportsCatalogsInIndexDefinitions (line 814) | @Override
method supportsCatalogsInPrivilegeDefinitions (line 821) | @Override
method supportsPositionedDelete (line 828) | @Override
method supportsPositionedUpdate (line 835) | @Override
method supportsSelectForUpdate (line 842) | @Override
method supportsStoredProcedures (line 849) | @Override
method supportsSubqueriesInComparisons (line 856) | @Override
method supportsSubqueriesInExists (line 863) | @Override
method supportsSubqueriesInIns (line 870) | @Override
method supportsSubqueriesInQuantifieds (line 877) | @Override
method supportsCorrelatedSubqueries (line 884) | @Override
method supportsUnion (line 891) | @Override
method supportsUnionAll (line 898) | @Override
method supportsOpenCursorsAcrossCommit (line 905) | @Override
method supportsOpenCursorsAcrossRollback (line 912) | @Override
method supportsOpenStatementsAcrossCommit (line 919) | @Override
method supportsOpenStatementsAcrossRollback (line 926) | @Override
method getMaxBinaryLiteralLength (line 933) | @Override
method getMaxCharLiteralLength (line 940) | @Override
method getMaxColumnNameLength (line 950) | @Override
method getMaxColumnsInGroupBy (line 957) | @Override
method getMaxColumnsInIndex (line 964) | @Override
method getMaxColumnsInOrderBy (line 971) | @Override
method getMaxColumnsInSelect (line 978) | @Override
method getMaxColumnsInTable (line 985) | @Override
method getMaxConnections (line 992) | @Override
method getMaxCursorNameLength (line 999) | @Override
method getMaxIndexLength (line 1006) | @Override
method getMaxSchemaNameLength (line 1013) | @Override
method getMaxProcedureNameLength (line 1020) | @Override
method getMaxCatalogNameLength (line 1027) | @Override
method getMaxRowSize (line 1034) | @Override
method doesMaxRowSizeIncludeBlobs (line 1041) | @Override
method getMaxStatementLength (line 1048) | @Override
method getMaxStatements (line 1055) | @Override
method getMaxTableNameLength (line 1062) | @Override
method getMaxTablesInSelect (line 1069) | @Override
method getMaxUserNameLength (line 1076) | @Override
method getDefaultTransactionIsolation (line 1083) | @Override
method supportsTransactions (line 1090) | @Override
method supportsTransactionIsolationLevel (line 1097) | @Override
method supportsDataDefinitionAndDataManipulationTransactions (line 1105) | @Override
method supportsDataManipulationTransactionsOnly (line 1112) | @Override
method dataDefinitionCausesTransactionCommit (line 1119) | @Override
method dataDefinitionIgnoredInTransactions (line 1126) | @Override
method getProcedures (line 1133) | @Override
method getProcedureColumns (line 1203) | @Override
method applySessionContext (line 1418) | private ContextAwareMetadataSearch applySessionContext(String catalog,...
method getFirstResultSetCommand (line 1443) | private String getFirstResultSetCommand(
method getSecondResultSetCommand (line 1479) | private String getSecondResultSetCommand(
method getTables (line 1499) | @Override
method getSchemas (line 1653) | @Override
method getCatalogs (line 1660) | @Override
method getTableTypes (line 1688) | @Override
method getColumns (line 1703) | @Override
method getColumns (line 1713) | public ResultSet getColumns(
method getColumnSize (line 1929) | static Integer getColumnSize(SnowflakeColumnMetadata columnMetadata) {
method getColumnPrivileges (line 1974) | @Override
method getTablePrivileges (line 2008) | @Override
method getBestRowIdentifier (line 2110) | @Override
method getVersionColumns (line 2121) | @Override
method getPrimaryKeys (line 2131) | @Override
method getForeignKeys (line 2295) | private ResultSet getForeignKeys(
method getForeignKeyConstraintProperty (line 2589) | private short getForeignKeyConstraintProperty(String property_name, St...
method getImportedKeys (line 2629) | @Override
method getExportedKeys (line 2642) | @Override
method getCrossReference (line 2655) | @Override
method getTypeInfo (line 2685) | @Override
method getStreams (line 2910) | public ResultSet getStreams(
method getIndexInfo (line 3008) | @Override
method supportsResultSetType (line 3057) | @Override
method supportsResultSetConcurrency (line 3064) | @Override
method ownUpdatesAreVisible (line 3072) | @Override
method ownDeletesAreVisible (line 3079) | @Override
method ownInsertsAreVisible (line 3086) | @Override
method othersUpdatesAreVisible (line 3093) | @Override
method othersDeletesAreVisible (line 3100) | @Override
method othersInsertsAreVisible (line 3107) | @Override
method updatesAreDetected (line 3114) | @Override
method deletesAreDetected (line 3121) | @Override
method insertsAreDetected (line 3128) | @Override
method supportsBatchUpdates (line 3135) | @Override
method getUDTs (line 3142) | @Override
method getConnection (line 3175) | @Override
method supportsSavepoints (line 3182) | @Override
method supportsNamedParameters (line 3189) | @Override
method supportsMultipleOpenResults (line 3196) | @Override
method supportsGetGeneratedKeys (line 3203) | @Override
method getSuperTypes (line 3210) | @Override
method getSuperTables (line 3221) | @Override
method getAttributes (line 3232) | @Override
method supportsResultSetHoldability (line 3245) | @Override
method getResultSetHoldability (line 3252) | @Override
method getDatabaseMajorVersion (line 3258) | @Override
method getDatabaseMinorVersion (line 3265) | @Override
method getJDBCMajorVersion (line 3272) | @Override
method getJDBCMinorVersion (line 3279) | @Override
method getSQLStateType (line 3286) | @Override
method locatorsUpdateCopy (line 3292) | @Override
method supportsStatementPooling (line 3299) | @Override
method getRowIdLifetime (line 3306) | @Override
method getSchemas (line 3313) | @Override
method supportsStoredFunctionsUsingCallSyntax (line 3387) | @Override
method autoCommitFailureClosesAllResultSets (line 3394) | @Override
method getClientInfoProperties (line 3401) | @Override
method getFunctions (line 3408) | @Override
method parseColumns (line 3486) | private List<String> parseColumns(String retType, String args) {
method getFunctionColumns (line 3514) | @Override
method getPseudoColumns (line 3673) | public ResultSet getPseudoColumns(
method generatedKeyAlwaysReturned (line 3686) | public boolean generatedKeyAlwaysReturned() throws SQLException {
method unwrap (line 3693) | @Override
method isWrapperFor (line 3704) | @Override
method executeAndReturnEmptyResultIfNotFound (line 3715) | private ResultSet executeAndReturnEmptyResultIfNotFound(
class ContextAwareMetadataSearch (line 3746) | private static class ContextAwareMetadataSearch {
method ContextAwareMetadataSearch (line 3751) | public ContextAwareMetadataSearch(String database, String schema, bo...
method database (line 3757) | public String database() {
method schema (line 3761) | public String schema() {
method isExactSchema (line 3765) | public boolean isExactSchema() {
FILE: src/main/java/net/snowflake/client/internal/api/implementation/pooling/LogicalConnection.java
class LogicalConnection (line 30) | class LogicalConnection implements Connection {
method LogicalConnection (line 45) | LogicalConnection(SnowflakePooledConnection pooledConnection) throws S...
method createStatement (line 51) | @Override
method prepareStatement (line 63) | @Override
method prepareCall (line 75) | @Override
method nativeSQL (line 87) | @Override
method setAutoCommit (line 99) | @Override
method getAutoCommit (line 111) | @Override
method commit (line 123) | @Override
method rollback (line 135) | @Override
method close (line 148) | @Override
method isClosed (line 159) | @Override
method getMetaData (line 164) | @Override
method setReadOnly (line 176) | @Override
method isReadOnly (line 188) | @Override
method setCatalog (line 200) | @Override
method getCatalog (line 212) | @Override
method setTransactionIsolation (line 224) | @Override
method getTransactionIsolation (line 236) | @Override
method getWarnings (line 248) | @Override
method clearWarnings (line 260) | @Override
method createStatement (line 272) | @Override
method prepareStatement (line 285) | @Override
method prepareCall (line 298) | @Override
method getTypeMap (line 311) | @Override
method setTypeMap (line 323) | @Override
method setHoldability (line 335) | @Override
method getHoldability (line 347) | @Override
method setSavepoint (line 359) | @Override
method setSavepoint (line 371) | @Override
method rollback (line 383) | @Override
method releaseSavepoint (line 395) | @Override
method createStatement (line 407) | @Override
method prepareStatement (line 421) | @Override
method prepareCall (line 436) | @Override
method prepareStatement (line 451) | @Override
method prepareStatement (line 463) | @Override
method prepareStatement (line 475) | @Override
method createClob (line 487) | @Override
method createBlob (line 499) | @Override
method createNClob (line 511) | @Override
method createSQLXML (line 523) | @Override
method isValid (line 535) | @Override
method setClientInfo (line 545) | @Override
method setClientInfo (line 555) | @Override
method getClientInfo (line 565) | @Override
method getClientInfo (line 575) | @Override
method createArrayOf (line 587) | @Override
method createStruct (line 599) | @Override
method setSchema (line 611) | @Override
method getSchema (line 623) | @Override
method abort (line 635) | @Override
method setNetworkTimeout (line 645) | @Override
method getNetworkTimeout (line 657) | @Override
method isWrapperFor (line 669) | @Override
method unwrap (line 679) | @Override
method throwExceptionIfClosed (line 689) | private void throwExceptionIfClosed() throws SQLException {
FILE: src/main/java/net/snowflake/client/internal/api/implementation/pooling/SnowflakeConnectionPoolDataSourceImpl.java
class SnowflakeConnectionPoolDataSourceImpl (line 9) | public class SnowflakeConnectionPoolDataSourceImpl extends SnowflakeBasi...
method getPooledConnection (line 11) | @Override
method getPooledConnection (line 17) | @Override
FILE: src/main/java/net/snowflake/client/internal/api/implementation/pooling/SnowflakePooledConnection.java
class SnowflakePooledConnection (line 16) | public class SnowflakePooledConnection implements PooledConnection {
method SnowflakePooledConnection (line 25) | public SnowflakePooledConnection(Connection physicalConnection) throws...
method getConnection (line 34) | @Override
method getPhysicalConnection (line 43) | Connection getPhysicalConnection() {
method fireConnectionCloseEvent (line 48) | void fireConnectionCloseEvent() {
method fireConnectionErrorEvent (line 54) | void fireConnectionErrorEvent(SQLException e) {
method addConnectionEventListener (line 60) | @Override
method close (line 65) | @Override
method removeConnectionEventListener (line 78) | @Override
method addStatementEventListener (line 83) | @Override
method removeStatementEventListener (line 88) | @Override
FILE: src/main/java/net/snowflake/client/internal/api/implementation/resultset/FieldMetadataImpl.java
class FieldMetadataImpl (line 9) | public class FieldMetadataImpl implements FieldMetadata {
method FieldMetadataImpl (line 24) | public FieldMetadataImpl(
method FieldMetadataImpl (line 47) | public FieldMetadataImpl() {
method getName (line 51) | @Override
method setName (line 56) | public void setName(String name) {
method getTypeName (line 60) | @Override
method setTypeName (line 65) | public void setTypeName(String typeName) {
method getType (line 69) | @Override
method setType (line 74) | public void setType(int type) {
method isNullable (line 78) | @Override
method setNullable (line 83) | public void setNullable(boolean nullable) {
method getByteLength (line 87) | @Override
method setByteLength (line 92) | public void setByteLength(int byteLength) {
method getPrecision (line 96) | @Override
method setPrecision (line 101) | public void setPrecision(int precision) {
method getScale (line 105) | @Override
method setScale (line 110) | public void setScale(int scale) {
method isFixed (line 114) | @Override
method setFixed (line 119) | public void setFixed(boolean fixed) {
method getBase (line 123) | @Override
method setBase (line 128) | public void setBase(SnowflakeType base) {
method getFields (line 132) | @Override
method setFields (line 137) | public void setFields(List<FieldMetadata> fields) {
FILE: src/main/java/net/snowflake/client/internal/api/implementation/resultset/SnowflakeBaseResultSet.java
class SnowflakeBaseResultSet (line 65) | public abstract class SnowflakeBaseResultSet implements ResultSet, Snowf...
method SnowflakeBaseResultSet (line 81) | public SnowflakeBaseResultSet(Statement statement) throws SQLException {
method maybeGetSession (line 90) | private static SFBaseSession maybeGetSession(Statement statement) {
method SnowflakeBaseResultSet (line 110) | public SnowflakeBaseResultSet(SnowflakeResultSetSerializableV1 resultS...
method SnowflakeBaseResultSet (line 126) | protected SnowflakeBaseResultSet() throws SQLException {
method next (line 135) | @Override
method isClosed (line 138) | @Override
method raiseSQLExceptionIfResultSetIsClosed (line 146) | protected void raiseSQLExceptionIfResultSetIsClosed() throws SQLExcept...
method getBytes (line 152) | @Override
method getDate (line 163) | public abstract Date getDate(int columnIndex, TimeZone tz) throws SQLE...
method getGetDateUseNullTimezone (line 165) | private boolean getGetDateUseNullTimezone() {
method getDate (line 177) | @Override
method getTime (line 183) | @Override
method getTimestamp (line 186) | @Override
method getTimestamp (line 200) | public abstract Timestamp getTimestamp(int columnIndex, TimeZone tz) t...
method getAsciiStream (line 202) | @Override
method getUnicodeStream (line 211) | @Deprecated
method getBinaryStream (line 218) | @Override
method getString (line 224) | @Override
method getBoolean (line 231) | @Override
method getByte (line 238) | @Override
method getShort (line 246) | @Override
method getInt (line 253) | @Override
method getLong (line 260) | @Override
method getFloat (line 267) | @Override
method getDouble (line 274) | @Override
method getBigDecimal (line 284) | @Deprecated
method getBytes (line 292) | @Override
method getDate (line 299) | @Override
method getTime (line 306) | @Override
method getTimestamp (line 313) | @Override
method getAsciiStream (line 320) | @Override
method getUnicodeStream (line 329) | @Deprecated
method getBinaryStream (line 337) | @Override
method getWarnings (line 344) | @Override
method clearWarnings (line 351) | @Override
method getCursorName (line 357) | @Override
method getMetaData (line 364) | @Override
method getObject (line 371) | @Override
method findColumn (line 378) | @Override
method getCharacterStream (line 392) | @Override
method getCharacterStream (line 400) | @Override
method getBigDecimal (line 406) | @Override
method beforeFirst (line 413) | @Override
method afterLast (line 420) | @Override
method first (line 427) | @Override
method last (line 434) | @Override
method absolute (line 441) | @Override
method relative (line 448) | @Override
method previous (line 455) | @Override
method getFetchDirection (line 462) | @Override
method setFetchDirection (line 469) | @Override
method getFetchSize (line 479) | @Override
method setFetchSize (line 486) | @Override
method getType (line 494) | @Override
method getConcurrency (line 501) | @Override
method rowUpdated (line 508) | @Override
method rowInserted (line 515) | @Override
method rowDeleted (line 522) | @Override
method updateNull (line 529) | @Override
method updateBoolean (line 536) | @Override
method updateByte (line 543) | @Override
method updateShort (line 550) | @Override
method updateInt (line 557) | @Override
method updateLong (line 564) | @Override
method updateFloat (line 571) | @Override
method updateDouble (line 578) | @Override
method updateBigDecimal (line 585) | @Override
method updateString (line 592) | @Override
method updateBytes (line 599) | @Override
method updateDate (line 606) | @Override
method updateTime (line 613) | @Override
method updateTimestamp (line 620) | @Override
method updateAsciiStream (line 627) | @Override
method updateBinaryStream (line 635) | @Override
method updateCharacterStream (line 643) | @Override
method updateObject (line 651) | @Override
method updateObject (line 659) | @Override
method updateNull (line 666) | @Override
method updateBoolean (line 673) | @Override
method updateByte (line 680) | @Override
method updateShort (line 687) | @Override
method updateInt (line 694) | @Override
method updateLong (line 701) | @Override
method updateFloat (line 708) | @Override
method updateDouble (line 715) | @Override
method updateBigDecimal (line 722) | @Override
method updateString (line 729) | @Override
method updateBytes (line 736) | @Override
method updateDate (line 743) | @Override
method updateTime (line 750) | @Override
method updateTimestamp (line 757) | @Override
method updateAsciiStream (line 764) | @Override
method updateBinaryStream (line 772) | @Override
method updateCharacterStream (line 782) | @Override
method updateObject (line 792) | @Override
method updateObject (line 800) | @Override
method insertRow (line 807) | @Override
method updateRow (line 814) | @Override
method deleteRow (line 821) | @Override
method refreshRow (line 828) | @Override
method cancelRowUpdates (line 835) | @Override
method moveToInsertRow (line 842) | @Override
method moveToCurrentRow (line 849) | @Override
method getStatement (line 856) | @Override
method getObject (line 863) | @Override
method getRef (line 870) | @Override
method getBlob (line 877) | @Override
method getClob (line 884) | @Override
method getArray (line 892) | @Override
method getObject (line 899) | @Override
method getRef (line 907) | @Override
method getBlob (line 914) | @Override
method getClob (line 921) | @Override
method getArray (line 929) | @Override
method getDate (line 936) | @Override
method getDate (line 942) | @Override
method getTime (line 949) | @Override
method getTime (line 956) | @Override
method getTimestamp (line 963) | @Override
method getTimestamp (line 970) | @Override
method getURL (line 977) | @Override
method getURL (line 984) | @Override
method updateRef (line 991) | @Override
method updateRef (line 998) | @Override
method updateBlob (line 1005) | @Override
method updateBlob (line 1012) | @Override
method updateClob (line 1019) | @Override
method updateClob (line 1026) | @Override
method updateArray (line 1033) | @Override
method updateArray (line 1040) | @Override
method getRowId (line 1047) | @Override
method getRowId (line 1054) | @Override
method updateRowId (line 1061) | @Override
method updateRowId (line 1068) | @Override
method getHoldability (line 1075) | @Override
method updateNString (line 1082) | @Override
method updateNString (line 1089) | @Override
method updateNClob (line 1096) | @Override
method updateNClob (line 1103) | @Override
method getNClob (line 1110) | @Override
method getNClob (line 1117) | @Override
method getSQLXML (line 1124) | @Override
method getSQLXML (line 1131) | @Override
method updateSQLXML (line 1138) | @Override
method updateSQLXML (line 1145) | @Override
method getNString (line 1152) | @Override
method getNString (line 1159) | @Override
method getNCharacterStream (line 1166) | @Override
method getNCharacterStream (line 1173) | @Override
method updateNCharacterStream (line 1180) | @Override
method updateNCharacterStream (line 1188) | @Override
method updateAsciiStream (line 1198) | @Override
method updateBinaryStream (line 1206) | @Override
method updateCharacterStream (line 1214) | @Override
method updateAsciiStream (line 1222) | @Override
method updateBinaryStream (line 1232) | @Override
method updateCharacterStream (line 1242) | @Override
method updateBlob (line 1252) | @Override
method updateBlob (line 1262) | @Override
method updateClob (line 1272) | @Override
method updateClob (line 1279) | @Override
method updateNClob (line 1287) | @Override
method updateNClob (line 1295) | @Override
method updateNCharacterStream (line 1303) | @Override
method updateNCharacterStream (line 1310) | @Override
method updateAsciiStream (line 1318) | @Override
method updateBinaryStream (line 1325) | @Override
method updateCharacterStream (line 1332) | @Override
method updateAsciiStream (line 1339) | @Override
method updateBinaryStream (line 1346) | @Override
method updateCharacterStream (line 1353) | @Override
method updateBlob (line 1361) | @Override
method updateBlob (line 1368) | @Override
method updateClob (line 1375) | @Override
method updateClob (line 1382) | @Override
method updateNClob (line 1389) | @Override
method updateNClob (line 1396) | @Override
method getObject (line 1403) | @Override
method getList (line 1492) | public <T> List<T> getList(int columnIndex, Class<T> type) throws SQLE...
method getArray (line 1501) | public <T> T[] getArray(int columnIndex, Class<T> type) throws SQLExce...
method getMap (line 1654) | public <T> Map<String, T> getMap(int columnIndex, Class<T> type) throw...
method getObject (line 1820) | @Override
method unwrap (line 1826) | @SuppressWarnings("unchecked")
method isWrapperFor (line 1838) | @Override
method prepareMapWithValues (line 1845) | private <T> Map<String, Object> prepareMapWithValues(Object object, Cl...
FILE: src/main/java/net/snowflake/client/internal/api/implementation/statement/SnowflakeCallableStatementImpl.java
class SnowflakeCallableStatementImpl (line 28) | public final class SnowflakeCallableStatementImpl extends SnowflakePrepa...
method SnowflakeCallableStatementImpl (line 45) | public SnowflakeCallableStatementImpl(
method parseSqlEscapeSyntax (line 69) | public static String parseSqlEscapeSyntax(String originalSql) {
method registerOutParameter (line 83) | @Override
method registerOutParameter (line 90) | @Override
method registerOutParameter (line 97) | @Override
method registerOutParameter (line 105) | @Override
method registerOutParameter (line 112) | @Override
method registerOutParameter (line 120) | @Override
method wasNull (line 128) | @Override
method getString (line 135) | @Override
method getString (line 142) | @Override
method getBoolean (line 149) | @Override
method getBoolean (line 156) | @Override
method getByte (line 163) | @Override
method getByte (line 170) | @Override
method getShort (line 177) | @Override
method getShort (line 184) | @Override
method getInt (line 191) | @Override
method getInt (line 198) | @Override
method getLong (line 205) | @Override
method getLong (line 212) | @Override
method getFloat (line 219) | @Override
method getFloat (line 226) | @Override
method getDouble (line 233) | @Override
method getDouble (line 240) | @Override
method getBigDecimal (line 247) | @Override
method getBigDecimal (line 255) | @Override
method getBigDecimal (line 263) | @Override
method getBytes (line 271) | @Override
method getBytes (line 278) | @Override
method getDate (line 285) | @Override
method getDate (line 292) | @Override
method getTime (line 299) | @Override
method getTime (line 306) | @Override
method getTime (line 313) | @Override
method getTimestamp (line 320) | @Override
method getTimestamp (line 327) | @Override
method getTimestamp (line 334) | @Override
method getObject (line 341) | @Override
method getObject (line 348) | @Override
method getObject (line 355) | @Override
method getObject (line 362) | @Override
method getRef (line 369) | @Override
method getRef (line 376) | @Override
method getBlob (line 383) | @Override
method getBlob (line 390) | @Override
method getClob (line 397) | @Override
method getClob (line 404) | @Override
method getArray (line 411) | @Override
method getArray (line 418) | @Override
method getDate (line 425) | @Override
method getDate (line 432) | @Override
method getTime (line 439) | @Override
method getTimestamp (line 446) | @Override
method getURL (line 453) | @Override
method getURL (line 460) | @Override
method getRowId (line 467) | @Override
method getRowId (line 474) | @Override
method getSQLXML (line 481) | @Override
method getSQLXML (line 488) | @Override
method getNString (line 495) | @Override
method getNString (line 502) | @Override
method getNCharacterStream (line 509) | @Override
method getNCharacterStream (line 516) | @Override
method getCharacterStream (line 523) | @Override
method getCharacterStream (line 530) | @Override
method setSQLXML (line 542) | @Override
method setRowId (line 549) | @Override
method setNString (line 556) | @Override
method setNCharacterStream (line 563) | @Override
method setNCharacterStream (line 570) | @Override
method setNClob (line 578) | @Override
method setClob (line 585) | @Override
method setClob (line 592) | @Override
method setClob (line 599) | @Override
method setBlob (line 606) | @Override
method setBlob (line 614) | @Override
method setNClob (line 621) | @Override
method getObject (line 628) | @Override
method getObject (line 635) | @Override
method setBlob (line 642) | @Override
method setNClob (line 649) | @Override
method getNClob (line 656) | @Override
method getNClob (line 663) | @Override
method setURL (line 670) | @Override
method setNull (line 677) | @Override
method setBoolean (line 684) | @Override
method setByte (line 691) | @Override
method setShort (line 698) | @Override
method setInt (line 705) | @Override
method setLong (line 712) | @Override
method setFloat (line 719) | @Override
method setDouble (line 726) | @Override
method setBigDecimal (line 733) | @Override
method setString (line 740) | @Override
method setBytes (line 747) | @Override
method setDate (line 754) | @Override
method setTime (line 761) | @Override
method setTimestamp (line 768) | @Override
method setAsciiStream (line 775) | @Override
method setAsciiStream (line 782) | @Override
method setAsciiStream (line 789) | @Override
method setBinaryStream (line 796) | @Override
method setBinaryStream (line 803) | @Override
method setBinaryStream (line 810) | @Override
method setObject (line 818) | @Override
method setObject (line 826) | @Override
method setObject (line 833) | @Override
method setCharacterStream (line 840) | @Override
method setCharacterStream (line 848) | @Override
method setCharacterStream (line 856) | @Override
method setDate (line 863) | @Override
method setTime (line 870) | @Override
method setTimestamp (line 877) | @Override
method setNull (line 884) | @Override
FILE: src/main/java/net/snowflake/client/internal/api/implementation/statement/SnowflakePreparedStatementImpl.java
class SnowflakePreparedStatementImpl (line 70) | public class SnowflakePreparedStatementImpl extends SnowflakeStatementImpl
method SnowflakePreparedStatementImpl (line 133) | public SnowflakePreparedStatementImpl(
method describeSqlIfNotTried (line 156) | private void describeSqlIfNotTried() throws SQLException {
method executeQuery (line 179) | @Override
method executeAsyncQuery (line 201) | public ResultSet executeAsyncQuery() throws SQLException {
method executeLargeUpdate (line 217) | @Override
method executeUpdate (line 229) | @Override
method setNull (line 235) | @Override
method setBoolean (line 247) | @Override
method setByte (line 258) | @Override
method setShort (line 269) | @Override
method setInt (line 281) | @Override
method setLong (line 293) | @Override
method setBigInteger (line 305) | @Override
method setFloat (line 317) | @Override
method setDouble (line 329) | @Override
method setBigDecimal (line 341) | @Override
method setString (line 357) | @Override
method setBytes (line 369) | @Override
method setObjectInternal (line 381) | private void setObjectInternal(int parameterIndex, SQLData sqlData) th...
method setDate (line 397) | @Override
method setTime (line 417) | @Override
method setTimestamp (line 441) | @Override
method setTimestampWithType (line 448) | private void setTimestampWithType(int parameterIndex, Timestamp x, int...
method setAsciiStream (line 476) | @Override
method setUnicodeStream (line 482) | @Override
method setBinaryStream (line 489) | @Override
method clearParameters (line 495) | @Override
method setObject (line 500) | @Override
method setYearMonthInterval (line 534) | private void setYearMonthInterval(int parameterIndex, String x) throws...
method setDayTimeInterval (line 546) | private void setDayTimeInterval(int parameterIndex, String x) throws S...
method setDecfloat (line 558) | private void setDecfloat(int parameterIndex, BigDecimal x) throws SQLE...
method setObject (line 570) | @Override
method execute (line 611) | @Override
method addBatch (line 624) | @Override
method setCharacterStream (line 702) | @Override
method setRef (line 709) | @Override
method setBlob (line 715) | @Override
method setClob (line 721) | @Override
method setArray (line 726) | @Override
method setMap (line 756) | @Override
method getMetaData (line 792) | @Override
method setDate (line 802) | @Override
method setTime (line 826) | @Override
method setTimestamp (line 833) | @Override
method setNull (line 875) | @Override
method setURL (line 882) | @Override
method getParameterMetaData (line 888) | @Override
method setRowId (line 895) | @Override
method setNString (line 901) | @Override
method setNCharacterStream (line 907) | @Override
method setNClob (line 914) | @Override
method setClob (line 920) | @Override
method setBlob (line 926) | @Override
method setNClob (line 933) | @Override
method setSQLXML (line 939) | @Override
method setObject (line 945) | @Override
method setAsciiStream (line 963) | @Override
method setBinaryStream (line 969) | @Override
method setCharacterStream (line 975) | @Override
method setAsciiStream (line 982) | @Override
method setBinaryStream (line 988) | @Override
method setCharacterStream (line 994) | @Override
method setNCharacterStream (line 1000) | @Override
method setClob (line 1006) | @Override
method setBlob (line 1012) | @Override
method setNClob (line 1018) | @Override
method executeUpdate (line 1024) | @Override
method execute (line 1032) | @Override
method addBatch (line 1040) | @Override
method clearBatch (line 1046) | @Override
method executeBatch (line 1055) | @Override
method executeLargeBatch (line 1061) | @Override
method executeBatchInternalWithArrayBind (line 1067) | VariableTypeArray executeBatchInternalWithArrayBind(boolean isLong) th...
method executeUpdate (line 1153) | @Override
method executeUpdate (line 1159) | @Override
method executeUpdate (line 1165) | @Override
method execute (line 1171) | @Override
method execute (line 1177) | @Override
method execute (line 1183) | @Override
method getBatchParameterBindings (line 1190) | public Map<String, ParameterBindingDTO> getBatchParameterBindings() {
method getParameterBindings (line 1195) | public Map<String, ParameterBindingDTO> getParameterBindings() {
method isAlreadyDescribed (line 1200) | public boolean isAlreadyDescribed() {
method isArrayBindSupported (line 1205) | public boolean isArrayBindSupported() {
method resultSetMetadataHandler (line 1209) | @Override
method toString (line 1225) | public String toString() {
FILE: src/main/java/net/snowflake/client/internal/api/implementation/statement/SnowflakeStatementImpl.java
class SnowflakeStatementImpl (line 44) | public class SnowflakeStatementImpl implements Statement, SnowflakeState...
method SnowflakeStatementImpl (line 102) | public SnowflakeStatementImpl(
method raiseSQLExceptionIfStatementIsClosed (line 141) | protected void raiseSQLExceptionIfStatementIsClosed() throws SQLExcept...
method executeQuery (line 154) | @Override
method executeAsyncQuery (line 174) | public ResultSet executeAsyncQuery(String sql) throws SQLException {
method resultSetMetadataHandler (line 196) | protected void resultSetMetadataHandler(SFBaseResultSet resultSet) thr...
method executeUpdate (line 207) | @Override
method executeLargeUpdate (line 219) | @Override
method executeUpdateInternal (line 230) | public long executeUpdateInternal(
method setQueryIdWhenValidOrNull (line 281) | private void setQueryIdWhenValidOrNull(String queryId) {
method executeQueryInternal (line 298) | ResultSet executeQueryInternal(
method executeInternal (line 355) | boolean executeInternal(
method getQueryID (line 423) | public String getQueryID() {
method getBatchQueryIDs (line 430) | public List<String> getBatchQueryIDs() {
method getChildQueryIds (line 437) | public String[] getChildQueryIds(String queryID) throws SQLException {
method getOpenResultSets (line 444) | public Set<ResultSet> getOpenResultSets() {
method execute (line 455) | @Override
method execute (line 466) | @Override
method execute (line 478) | @Override
method execute (line 486) | @Override
method executeBatch (line 501) | @Override
method executeLargeBatch (line 514) | @Override
method executeBatchInternal (line 530) | VariableTypeArray executeBatchInternal(boolean isLong) throws SQLExcep...
method executeUpdate (line 600) | @Override
method executeLargeUpdate (line 607) | @Override
method executeUpdate (line 619) | @Override
method executeLargeUpdate (line 627) | @Override
method executeUpdate (line 635) | @Override
method executeLargeUpdate (line 643) | @Override
method getConnection (line 651) | @Override
method getFetchDirection (line 658) | @Override
method getFetchSize (line 665) | @Override
method getGeneratedKeys (line 672) | @Override
method getMaxFieldSize (line 679) | @Override
method getMaxRows (line 686) | @Override
method getMoreResults (line 693) | @Override
method getMoreResults (line 700) | @Override
method getQueryTimeout (line 750) | @Override
method getResultSet (line 757) | @Override
method getResultSetConcurrency (line 764) | @Override
method getResultSetHoldability (line 771) | @Override
method getResultSetType (line 778) | @Override
method getUpdateCount (line 785) | @Override
method getLargeUpdateCount (line 791) | @Override
method getUpdateCountIfDML (line 797) | private long getUpdateCountIfDML() throws SQLException {
method getWarnings (line 802) | @Override
method isClosed (line 809) | @Override
method isPoolable (line 815) | @Override
method setCursorName (line 822) | @Override
method setEscapeProcessing (line 830) | @Override
method setFetchDirection (line 839) | @Override
method setFetchSize (line 849) | @Override
method setMaxFieldSize (line 856) | @Override
method setMaxRows (line 864) | @Override
method setPoolable (line 881) | @Override
method setParameter (line 900) | public void setParameter(String name, Object value) throws SQLException {
method setBatchID (line 912) | @Override
method setQueryTimeout (line 917) | @Override
method setAsyncQueryTimeout (line 933) | @Override
method isWrapperFor (line 950) | @Override
method unwrap (line 957) | @SuppressWarnings("unchecked")
method closeOnCompletion (line 969) | @Override
method isCloseOnCompletion (line 976) | @Override
method close (line 983) | @Override
method close (line 988) | public void close(boolean removeClosedStatementFromConnection) throws ...
method cancel (line 1016) | @Override
method clearWarnings (line 1028) | @Override
method addBatch (line 1035) | @Override
method clearBatch (line 1044) | @Override
method executeSetProperty (line 1053) | private void executeSetProperty(final String sql) {
method getSFBaseStatement (line 1077) | public SFBaseStatement getSFBaseStatement() throws SQLException {
method getSfStatement (line 1083) | public SFStatement getSfStatement() throws SnowflakeSQLException {
method removeClosedResultSet (line 1092) | public void removeClosedResultSet(ResultSet rs) {
class BatchEntry (line 1096) | final class BatchEntry {
method BatchEntry (line 1101) | BatchEntry(String sql, Map<String, ParameterBindingDTO> parameterBin...
method getSql (line 1106) | public String getSql() {
method getParameterBindings (line 1110) | public Map<String, ParameterBindingDTO> getParameterBindings() {
class NoOpSnowflakeStatementImpl (line 1118) | public static class NoOpSnowflakeStatementImpl extends SnowflakeStatem...
method NoOpSnowflakeStatementImpl (line 1119) | public NoOpSnowflakeStatementImpl() throws SQLException {
method executeQuery (line 1127) | @Override
method executeUpdate (line 1132) | @Override
method executeLargeUpdate (line 1137) | @Override
method getQueryID (line 1142) | @Override
method getBatchQueryIDs (line 1147) | @Override
method execute (line 1152) | @Override
method execute (line 1157) | @Override
method execute (line 1162) | @Override
method execute (line 1167) | @Override
method executeBatch (line 1172) | @Override
method executeLargeBatch (line 1177) | @Override
method executeUpdate (line 1182) | @Override
method executeLargeUpdate (line 1187) | @Override
method executeUpdate (line 1192) | @Override
method executeLargeUpdate (line 1197) | @Override
method executeUpdate (line 1202) | @Override
method executeLargeUpdate (line 1207) | @Override
method getConnection (line 1212) | @Override
method getFetchDirection (line 1217) | @Override
method getFetchSize (line 1222) | @Override
method getGeneratedKeys (line 1227) | @Override
method getMaxFieldSize (line 1232) | @Override
method getMaxRows (line 1237) | @Override
method getMoreResults (line 1242) | @Override
method getMoreResults (line 1247) | @Override
method getQueryTimeout (line 1252) | @Override
method getResultSet (line 1257) | @Override
method getResultSetConcurrency (line 1262) | @Override
method getResultSetHoldability (line 1267) | @Override
method getResultSetType (line 1272) | @Override
method getUpdateCount (line 1277) | @Override
method getLargeUpdateCount (line 1282) | @Override
method getWarnings (line 1287) | @Override
method isClosed (line 1292) | @Override
method isPoolable (line 1297) | @Override
method setCursorName (line 1302) | @Override
method setEscapeProcessing (line 1305) | @Override
method setFetchDirection (line 1308) | @Override
method setFetchSize (line 1311) | @Override
method setMaxFieldSize (line 1314) | @Override
method setMaxRows (line 1317) | @Override
method setPoolable (line 1320) | @Override
method setParameter (line 1323) | @Override
method setQueryTimeout (line 1326) | @Override
method setAsyncQueryTimeout (line 1329) | @Override
method isWrapperFor (line 1332) | @Override
method unwrap (line 1339) | @SuppressWarnings("unchecked")
method closeOnCompletion (line 1351) | @Override
method isCloseOnCompletion (line 1354) | @Override
method close (line 1359) | @Override
method close (line 1362) | @Override
method cancel (line 1365) | @Override
method clearWarnings (line 1368) | @Override
method addBatch (line 1371) | @Override
method clearBatch (line 1374) | @Override
method removeClosedResultSet (line 1377) | @Override
FILE: src/main/java/net/snowflake/client/internal/common/core/SFBinary.java
class SFBinary (line 17) | public class SFBinary {
method SFBinary (line 65) | public SFBinary(byte[] bytes) {
method validHex (line 78) | public static boolean validHex(String str) {
method fromHex (line 103) | public static SFBinary fromHex(String str) {
method fromBase64 (line 121) | public static SFBinary fromBase64(String str) {
method getBytes (line 130) | public byte[] getBytes() {
method length (line 140) | public int length() {
method toHex (line 151) | public String toHex() {
method toBase64 (line 164) | public String toBase64() {
method substring (line 179) | public SFBinary substring(int start, int end) {
method concat (line 196) | public SFBinary concat(SFBinary other) {
method compareTo (line 216) | public int compareTo(SFBinary other) {
method hashCode (line 246) | @Override
method equals (line 256) | @Override
method toString (line 266) | @Override
FILE: src/main/java/net/snowflake/client/internal/common/core/SFBinaryFormat.java
type SFBinaryFormat (line 27) | public enum SFBinaryFormat {
method format (line 29) | @Override
method parse (line 34) | @Override
method format (line 41) | @Override
method parse (line 46) | @Override
method format (line 53) | @Override
method parse (line 64) | @Override
method format (line 77) | public abstract String format(SFBinary binary);
method parse (line 86) | public abstract SFBinary parse(String string);
method getFormat (line 109) | public static SFBinaryFormat getFormat(String name) {
method getSafeOutputFormat (line 127) | public static SFBinaryFormat getSafeOutputFormat(String name) {
method lookup (line 146) | private static SFBinaryFormat lookup(String name) {
FILE: src/main/java/net/snowflake/client/internal/config/ConnectionParameters.java
class ConnectionParameters (line 5) | public class ConnectionParameters {
method ConnectionParameters (line 9) | public ConnectionParameters(String uri, Properties params) {
method getUrl (line 14) | public String getUrl() {
method getParams (line 18) | public Properties getParams() {
FILE: src/main/java/net/snowflake/client/internal/config/SFClientConfig.java
class SFClientConfig (line 14) | public class SFClientConfig {
method SFClientConfig (line 23) | public SFClientConfig() {}
method SFClientConfig (line 25) | public SFClientConfig(CommonProps commonProps) {
method getCommonProps (line 29) | public CommonProps getCommonProps() {
method setCommonProps (line 33) | public void setCommonProps(CommonProps commonProps) {
method getConfigFilePath (line 37) | public String getConfigFilePath() {
method setConfigFilePath (line 41) | public void setConfigFilePath(String configFilePath) {
method getUnknownParamKeys (line 45) | Set<String> getUnknownParamKeys() {
method equals (line 57) | @Override
method hashCode (line 69) | @Override
class CommonProps (line 74) | public static class CommonProps {
method CommonProps (line 84) | public CommonProps() {}
method CommonProps (line 86) | public void CommonProps(String logLevel, String logPath) {
method getLogLevel (line 91) | public String getLogLevel() {
method setLogLevel (line 95) | public void setLogLevel(String logLevel) {
method getLogPath (line 99) | public String getLogPath() {
method setLogPath (line 103) | public void setLogPath(String logPath) {
method equals (line 107) | @Override
method hashCode (line 119) | @Override
FILE: src/main/java/net/snowflake/client/internal/config/SFClientConfigParser.java
class SFClientConfigParser (line 20) | public class SFClientConfigParser {
method loadSFClientConfig (line 38) | public static SFClientConfig loadSFClientConfig(String configFilePath)...
method loadSFClientConfigInsecure (line 47) | private static SFClientConfig loadSFClientConfigInsecure(String config...
method getConfigFilePathFromJDBCJarLocation (line 109) | public static String getConfigFilePathFromJDBCJarLocation() {
method checkConfigFilePermissions (line 135) | public static void checkConfigFilePermissions(String derivedConfigFile...
method checkGroupOthersWritePermissions (line 153) | static Boolean checkGroupOthersWritePermissions(String configFilePath)...
method convertToWindowsPath (line 160) | static String convertToWindowsPath(String filePath) {
FILE: src/main/java/net/snowflake/client/internal/config/SFConnectionConfigParser.java
class SFConnectionConfigParser (line 32) | public class SFConnectionConfigParser {
method buildConnectionParameters (line 50) | public static ConnectionParameters buildConnectionParameters(String co...
method getConnectionNameFromUrl (line 103) | static String getConnectionNameFromUrl(String connectionUrl) {
method parseAutoConfigJdbcUrlParameters (line 116) | private static Map<String, String> parseAutoConfigJdbcUrlParameters(St...
method mergeUrlParametersIntoConfiguration (line 143) | private static void mergeUrlParametersIntoConfiguration(
method loadDefaultConnectionConfiguration (line 162) | private static Map<String, String> loadDefaultConnectionConfiguration(
method readParametersMap (line 196) | private static Map<String, Map> readParametersMap(Path configFilePath)
method verifyFilePermissionSecure (line 214) | static void verifyFilePermissionSecure(Path configFilePath)
method createUrl (line 280) | private static String createUrl(Map<String, String> fileConnectionConf...
method putPropertyIfNotNull (line 313) | private static void putPropertyIfNotNull(Properties props, Object key,...
FILE: src/main/java/net/snowflake/client/internal/core/ArrowSqlInput.java
class ArrowSqlInput (line 26) | public class ArrowSqlInput extends BaseSqlInput {
method ArrowSqlInput (line 33) | public ArrowSqlInput(
method getInput (line 42) | public Map<String, Object> getInput() {
method readString (line 46) | @Override
method readBoolean (line 51) | @Override
method readByte (line 56) | @Override
method readShort (line 63) | @Override
method readInt (line 68) | @Override
method readLong (line 73) | @Override
method readFloat (line 78) | @Override
method readDouble (line 83) | @Override
method readBigDecimal (line 88) | @Override
method readBytes (line 93) | @Override
method readDate (line 98) | @Override
method convertDate (line 109) | private Date convertDate(int value) throws SQLException {
method readTime (line 115) | @Override
method convertTime (line 126) | private Time convertTime(long value, FieldMetadata fieldMetadata) thro...
method readTimestamp (line 134) | @Override
method convertTimestamp (line 139) | private Timestamp convertTimestamp(TimeZone tz, Object value, FieldMet...
method readObject (line 154) | @Override
method readObject (line 166) | @Override
method readObject (line 171) | @Override
method convertObject (line 176) | private <T> T convertObject(Class<T> type, TimeZone tz, Object value, ...
method readList (line 225) | @Override
method readArray (line 242) | @Override
method readMap (line 260) | @Override
method wasNull (line 282) | @Override
method convertSqlInputToMap (line 287) | @Override
method withNextValue (line 292) | private <T> T withNextValue(ThrowingBiFunction<Object, FieldMetadata, ...
FILE: src/main/java/net/snowflake/client/internal/core/AssertUtil.java
class AssertUtil (line 5) | public class AssertUtil {
method assertTrue (line 14) | public static void assertTrue(boolean condition, String internalErrorM...
FILE: src/main/java/net/snowflake/client/internal/core/AttributeEnhancingHttpRequestRetryHandler.java
class AttributeEnhancingHttpRequestRetryHandler (line 13) | class AttributeEnhancingHttpRequestRetryHandler extends DefaultHttpReque...
method retryRequest (line 21) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/BaseSqlInput.java
class BaseSqlInput (line 25) | public abstract class BaseSqlInput implements SFSqlInput {
method BaseSqlInput (line 31) | protected BaseSqlInput(SFBaseSession session, Converters converters, L...
method readTimestamp (line 37) | @Override
method readCharacterStream (line 42) | @Override
method readAsciiStream (line 47) | @Override
method readBinaryStream (line 52) | @Override
method readRef (line 57) | @Override
method readBlob (line 62) | @Override
method readClob (line 67) | @Override
method readArray (line 72) | @Override
method wasNull (line 77) | @Override
method readURL (line 82) | @Override
method readNClob (line 87) | @Override
method readNString (line 92) | @Override
method readSQLXML (line 97) | @Override
method readRowId (line 102) | @Override
method convertSqlInputToMap (line 107) | abstract Map<String, Object> convertSqlInputToMap(SQLInput sqlInput);
method convertString (line 109) | protected String convertString(Object value, FieldMetadata fieldMetada...
method convertBoolean (line 117) | protected Boolean convertBoolean(Object value, FieldMetadata fieldMeta...
method convertShort (line 123) | protected Short convertShort(Object value, FieldMetadata fieldMetadata...
method convertInt (line 129) | protected Integer convertInt(Object value, FieldMetadata fieldMetadata...
method convertLong (line 135) | protected Long convertLong(Object value, FieldMetadata fieldMetadata) ...
method convertFloat (line 141) | protected Float convertFloat(Object value, FieldMetadata fieldMetadata...
method convertDouble (line 147) | protected Double convertDouble(Object value, FieldMetadata fieldMetada...
method convertBigDecimal (line 153) | protected BigDecimal convertBigDecimal(Object value, FieldMetadata fie...
method convertBytes (line 160) | protected byte[] convertBytes(Object value, FieldMetadata fieldMetadat...
FILE: src/main/java/net/snowflake/client/internal/core/BasicEvent.java
class BasicEvent (line 6) | public class BasicEvent extends Event {
type QueryState (line 16) | public enum QueryState {
method QueryState (line 27) | QueryState(int id, String description, String argString) {
method getId (line 33) | public int getId() {
method getDescription (line 37) | public String getDescription() {
method getArgString (line 41) | public String getArgString() {
method BasicEvent (line 50) | public BasicEvent(Event.EventType type, String message) {
method flush (line 54) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/CachedCredentialType.java
type CachedCredentialType (line 3) | enum CachedCredentialType {
method CachedCredentialType (line 14) | CachedCredentialType(String value) {
method getValue (line 18) | String getValue() {
FILE: src/main/java/net/snowflake/client/internal/core/CancellationReason.java
type CancellationReason (line 3) | public enum CancellationReason {
FILE: src/main/java/net/snowflake/client/internal/core/ChunkDownloader.java
type ChunkDownloader (line 7) | public interface ChunkDownloader {
method getNextChunkToConsume (line 16) | SnowflakeResultChunk getNextChunkToConsume() throws InterruptedExcepti...
method terminate (line 24) | DownloaderMetrics terminate() throws InterruptedException;
FILE: src/main/java/net/snowflake/client/internal/core/ColumnTypeHelper.java
class ColumnTypeHelper (line 6) | public class ColumnTypeHelper {
method getColumnType (line 7) | public static int getColumnType(int internalColumnType, SFBaseSession ...
FILE: src/main/java/net/snowflake/client/internal/core/Constants.java
class Constants (line 11) | public final class Constants {
type OS (line 31) | public enum OS {
method isPosix (line 42) | public boolean isPosix() {
type Architecture (line 47) | public enum Architecture {
method Architecture (line 56) | Architecture(String identifier) {
method getIdentifier (line 60) | public String getIdentifier() {
method getOS (line 69) | public static synchronized OS getOS() {
method getArchitecture (line 88) | public static synchronized Architecture getArchitecture() {
method isAix (line 108) | public static boolean isAix() {
method clearOSForTesting (line 116) | public static void clearOSForTesting() {
FILE: src/main/java/net/snowflake/client/internal/core/CredentialManager.java
class CredentialManager (line 12) | public class CredentialManager {
method CredentialManager (line 17) | private CredentialManager() {
method initSecureStorageManager (line 21) | private void initSecureStorageManager() {
method resetSecureStorageManager (line 38) | static void resetSecureStorageManager() {
method injectSecureStorageManager (line 48) | static void injectSecureStorageManager(SecureStorageManager manager) {
class CredentialManagerHolder (line 53) | private static class CredentialManagerHolder {
method getInstance (line 57) | public static CredentialManager getInstance() {
method fillCachedIdToken (line 66) | static void fillCachedIdToken(SFLoginInput loginInput) throws SFExcept...
method fillCachedMfaToken (line 84) | static void fillCachedMfaToken(SFLoginInput loginInput) throws SFExcep...
method fillCachedOAuthAccessToken (line 102) | static void fillCachedOAuthAccessToken(SFLoginInput loginInput) throws...
method fillCachedOAuthRefreshToken (line 118) | static void fillCachedOAuthRefreshToken(SFLoginInput loginInput) throw...
method fillCachedDPoPBundledAccessToken (line 134) | static void fillCachedDPoPBundledAccessToken(SFLoginInput loginInput) ...
method fillCachedCredential (line 149) | synchronized void fillCachedCredential(
method updateInputWithTokenAndPublicKey (line 211) | private void updateInputWithTokenAndPublicKey(String cred, SFLoginInpu...
method writeIdToken (line 225) | static void writeIdToken(SFLoginInput loginInput, String idToken) thro...
method writeMfaToken (line 238) | static void writeMfaToken(SFLoginInput loginInput, String mfaToken) th...
method writeOAuthAccessToken (line 256) | static void writeOAuthAccessToken(SFLoginInput loginInput) throws SFEx...
method writeOAuthRefreshToken (line 275) | static void writeOAuthRefreshToken(SFLoginInput loginInput) throws SFE...
method writeDPoPBundledAccessToken (line 294) | static void writeDPoPBundledAccessToken(SFLoginInput loginInput) throw...
method writeTemporaryCredential (line 314) | synchronized void writeTemporaryCredential(
method deleteIdTokenCacheEntry (line 345) | static void deleteIdTokenCacheEntry(String host, String user) {
method deleteMfaTokenCacheEntry (line 352) | static void deleteMfaTokenCacheEntry(String host, String user) {
method deleteOAuthAccessTokenCacheEntry (line 359) | static void deleteOAuthAccessTokenCacheEntry(String host, String user) {
method deleteOAuthRefreshTokenCacheEntry (line 368) | static void deleteOAuthRefreshTokenCacheEntry(String host, String user) {
method deleteDPoPBundledAccessTokenCacheEntry (line 377) | static void deleteDPoPBundledAccessTokenCacheEntry(String host, String...
method deleteOAuthAccessTokenCacheEntry (line 385) | static void deleteOAuthAccessTokenCacheEntry(SFLoginInput loginInput) ...
method deleteOAuthRefreshTokenCacheEntry (line 391) | static void deleteOAuthRefreshTokenCacheEntry(SFLoginInput loginInput)...
method deleteDPoPBundledAccessTokenCacheEntry (line 397) | static void deleteDPoPBundledAccessTokenCacheEntry(SFLoginInput loginI...
method getHostForOAuthCacheKey (line 406) | static String getHostForOAuthCacheKey(SFLoginInput loginInput) throws ...
method deleteTemporaryCredential (line 423) | synchronized void deleteTemporaryCredential(
method logMissingJnaJarForSecureLocalStorage (line 441) | private static void logMissingJnaJarForSecureLocalStorage() {
FILE: src/main/java/net/snowflake/client/internal/core/DataConversionContext.java
type DataConversionContext (line 11) | public interface DataConversionContext {
method getTimestampLTZFormatter (line 15) | SnowflakeDateTimeFormat getTimestampLTZFormatter();
method getTimestampNTZFormatter (line 20) | SnowflakeDateTimeFormat getTimestampNTZFormatter();
method getTimestampTZFormatter (line 25) | SnowflakeDateTimeFormat getTimestampTZFormatter();
method getDateFormatter (line 30) | SnowflakeDateTimeFormat getDateFormatter();
method getTimeFormatter (line 35) | SnowflakeDateTimeFormat getTimeFormatter();
method getBinaryFormatter (line 40) | SFBinaryFormat getBinaryFormatter();
method getScale (line 48) | int getScale(int columnIndex);
method getSession (line 53) | SFBaseSession getSession();
method getTimeZone (line 58) | TimeZone getTimeZone();
method getHonorClientTZForTimestampNTZ (line 63) | boolean getHonorClientTZForTimestampNTZ();
method getResultVersion (line 68) | long getResultVersion();
FILE: src/main/java/net/snowflake/client/internal/core/DefaultFileCacheManager.java
class DefaultFileCacheManager (line 24) | class DefaultFileCacheManager implements FileCacheManager {
method DefaultFileCacheManager (line 36) | DefaultFileCacheManager(
method getCacheFilePath (line 50) | @Override
method overrideCacheFile (line 55) | @Override
method withLock (line 72) | @Override
method readCacheFile (line 91) | @Override
method writeCacheFile (line 117) | @Override
method deleteCacheFile (line 142) | @Override
method tryToLockCacheFile (line 151) | private synchronized boolean tryToLockCacheFile() {
method deleteCacheLockIfExpired (line 171) | private synchronized void deleteCacheLockIfExpired() {
method fileCreationTime (line 190) | private static synchronized long fileCreationTime(File targetFile) {
method lockCacheFile (line 205) | private synchronized boolean lockCacheFile() {
method unlockCacheFile (line 209) | private synchronized boolean unlockCacheFile() {
FILE: src/main/java/net/snowflake/client/internal/core/DownloaderMetrics.java
class DownloaderMetrics (line 4) | public class DownloaderMetrics {
method DownloaderMetrics (line 14) | public DownloaderMetrics(long millisWaiting, long millisDownloading, l...
method getMillisWaiting (line 20) | long getMillisWaiting() {
method getMillisDownloading (line 24) | long getMillisDownloading() {
method getMillisParsing (line 28) | long getMillisParsing() {
FILE: src/main/java/net/snowflake/client/internal/core/Event.java
class Event (line 14) | public abstract class Event {
type EventType (line 23) | public static enum EventType {
method getId (line 28) | public int getId() {
method getDescription (line 32) | public String getDescription() {
method getEventClass (line 36) | public Class<? extends Event> getEventClass() {
method EventType (line 40) | EventType(int id, String description, Class<? extends Event> eventCl...
method Event (line 54) | public Event(EventType type, String message) {
method getType (line 61) | public EventType getType() {
method setType (line 65) | public void setType(EventType type) {
method getMessage (line 69) | public String getMessage() {
method setMessage (line 73) | public void setMessage(String message) {
method writeEventDumpLine (line 77) | protected void writeEventDumpLine(String message) {
method flush (line 111) | public abstract void flush();
FILE: src/main/java/net/snowflake/client/internal/core/EventHandler.java
class EventHandler (line 28) | public class EventHandler extends Handler {
class QueueFlusher (line 77) | private class QueueFlusher implements Runnable {
method run (line 78) | @Override
method EventHandler (line 102) | public EventHandler(int maxEntries, int flushPeriodMs) {
method getBufferSize (line 117) | public synchronized int getBufferSize() {
method getLogBufferSize (line 126) | public synchronized long getLogBufferSize() {
method startFlusher (line 131) | synchronized void startFlusher() {
method stopFlusher (line 151) | synchronized void stopFlusher() {
method pushEvent (line 161) | private synchronized void pushEvent(Event event, boolean flushBuffer) {
method triggerBasicEvent (line 175) | void triggerBasicEvent(Event.EventType type, String message) {
method triggerBasicEvent (line 187) | void triggerBasicEvent(Event.EventType type, String message, boolean f...
method triggerStateTransition (line 199) | void triggerStateTransition(BasicEvent.QueryState newState, String ide...
method getCurrentTimestamp (line 216) | static String getCurrentTimestamp() {
method dumpLogBuffer (line 227) | public void dumpLogBuffer(String identifier) {
method cleanupSfDumps (line 301) | protected void cleanupSfDumps(boolean deleteOldest) {
method flushEventBuffer (line 374) | private void flushEventBuffer() {
method flush (line 393) | @Override
method publish (line 406) | @Override
method close (line 422) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/EventUtil.java
class EventUtil (line 9) | public class EventUtil {
method setDumpPathPrefixForTesting (line 33) | public static void setDumpPathPrefixForTesting(String value) {
method initEventHandlerInstance (line 43) | public static synchronized void initEventHandlerInstance(int maxEntrie...
method getEventHandlerInstance (line 53) | public static EventHandler getEventHandlerInstance() {
method triggerBasicEvent (line 61) | public static void triggerBasicEvent(Event.EventType type, String mess...
method triggerStateTransition (line 68) | public static void triggerStateTransition(BasicEvent.QueryState newSta...
method getDumpPathPrefix (line 75) | public static String getDumpPathPrefix() {
method getDumpFileId (line 79) | public static String getDumpFileId() {
method getmaxDumpFileSizeBytes (line 83) | public static long getmaxDumpFileSizeBytes() {
FILE: src/main/java/net/snowflake/client/internal/core/FieldSchemaCreator.java
class FieldSchemaCreator (line 12) | public class FieldSchemaCreator {
method buildSchemaForText (line 17) | public static BindingParameterMetadata buildSchemaForText(
method buildSchemaForBytesType (line 26) | public static BindingParameterMetadata buildSchemaForBytesType(
method buildSchemaTypeAndNameOnly (line 36) | public static BindingParameterMetadata buildSchemaTypeAndNameOnly(
method buildSchemaWithScaleAndPrecision (line 44) | public static BindingParameterMetadata buildSchemaWithScaleAndPrecision(
method buildBindingSchemaForType (line 58) | public static BindingParameterMetadata buildBindingSchemaForType(int b...
method buildBindingSchemaForType (line 63) | public static BindingParameterMetadata buildBindingSchemaForType(int b...
FILE: src/main/java/net/snowflake/client/internal/core/FileCacheManager.java
type FileCacheManager (line 7) | interface FileCacheManager {
method getCacheFilePath (line 9) | String getCacheFilePath();
method overrideCacheFile (line 11) | void overrideCacheFile(File newCacheFile);
method withLock (line 13) | <T> T withLock(Supplier<T> supplier);
method readCacheFile (line 15) | JsonNode readCacheFile();
method writeCacheFile (line 17) | void writeCacheFile(JsonNode input);
method deleteCacheFile (line 19) | void deleteCacheFile();
FILE: src/main/java/net/snowflake/client/internal/core/FileCacheManagerBuilder.java
class FileCacheManagerBuilder (line 17) | class FileCacheManagerBuilder {
method FileCacheManagerBuilder (line 26) | FileCacheManagerBuilder() {}
method setCacheDirectorySystemProperty (line 28) | FileCacheManagerBuilder setCacheDirectorySystemProperty(String cacheDi...
method setCacheDirectoryEnvironmentVariable (line 33) | FileCacheManagerBuilder setCacheDirectoryEnvironmentVariable(
method setBaseCacheFileName (line 39) | FileCacheManagerBuilder setBaseCacheFileName(String baseCacheFileName) {
method setCacheFileLockExpirationInSeconds (line 44) | FileCacheManagerBuilder setCacheFileLockExpirationInSeconds(
method setOnlyOwnerPermissions (line 50) | FileCacheManagerBuilder setOnlyOwnerPermissions(boolean onlyOwnerPermi...
method build (line 55) | FileCacheManager build() {
FILE: src/main/java/net/snowflake/client/internal/core/FileCacheUtil.java
class FileCacheUtil (line 11) | public class FileCacheUtil {
method getDefaultCacheDir (line 14) | public static File getDefaultCacheDir() {
method getDir (line 38) | private static String getDir(String dir) {
FILE: src/main/java/net/snowflake/client/internal/core/FileTypeDetector.java
class FileTypeDetector (line 8) | public class FileTypeDetector extends java.nio.file.spi.FileTypeDetector {
method probeContentType (line 11) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/FileUtil.java
class FileUtil (line 19) | public class FileUtil {
method logFileUsage (line 40) | public static void logFileUsage(Path filePath, String context, boolean...
method logFileUsage (line 44) | public static void logFileUsage(File file, String context, boolean log...
method logFileUsage (line 48) | public static void logFileUsage(String stringPath, String context, boo...
method isWritable (line 53) | public static boolean isWritable(String path) {
method handleWhenParentDirectoryPermissionsWiderThanUserOnly (line 62) | public static void handleWhenParentDirectoryPermissionsWiderThanUserOnly(
method handleWhenFilePermissionsWiderThanUserOnly (line 67) | public static void handleWhenFilePermissionsWiderThanUserOnly(File fil...
method handleWhenDirectoryPermissionsWiderThanUserOnly (line 74) | public static void handleWhenDirectoryPermissionsWiderThanUserOnly(Fil...
method handleWhenPermissionsWiderThanUserOnly (line 78) | public static void handleWhenPermissionsWiderThanUserOnly(
method logWarnWhenAccessibleByOthers (line 130) | private static void logWarnWhenAccessibleByOthers(
method throwWhenOwnerDifferentThanCurrentUser (line 164) | public static void throwWhenOwnerDifferentThanCurrentUser(File file, S...
method isPermPresent (line 194) | private static boolean isPermPresent(
method getFileOwnerName (line 200) | static String getFileOwnerName(Path filePath) throws IOException {
method getContextStr (line 206) | private static String getContextStr(String context) {
method exists (line 210) | public static boolean exists(File file) {
FILE: src/main/java/net/snowflake/client/internal/core/HeaderCustomizerHttpRequestInterceptor.java
class HeaderCustomizerHttpRequestInterceptor (line 40) | public class HeaderCustomizerHttpRequestInterceptor
method HeaderCustomizerHttpRequestInterceptor (line 46) | public HeaderCustomizerHttpRequestInterceptor(List<HttpHeadersCustomiz...
method process (line 63) | @Override
method modifyHttpRequest (line 120) | @Override
method isTryingToOverrideDriverHeader (line 164) | private static boolean isTryingToOverrideDriverHeader(
method extractHeaders (line 169) | private static Map<String, List<String>> extractHeaders(HttpRequest re...
FILE: src/main/java/net/snowflake/client/internal/core/HeartbeatIntervalSelector.java
class HeartbeatIntervalSelector (line 13) | class HeartbeatIntervalSelector {
method selectBestInterval (line 31) | static long selectBestInterval(long requestedInterval, Set<Long> exist...
FILE: src/main/java/net/snowflake/client/internal/core/HeartbeatRegistry.java
class HeartbeatRegistry (line 31) | public class HeartbeatRegistry {
method HeartbeatRegistry (line 55) | private HeartbeatRegistry() {
method HeartbeatRegistry (line 83) | HeartbeatRegistry(ScheduledExecutorService executor, Clock clock) {
method getInstance (line 102) | public static HeartbeatRegistry getInstance() {
method addSession (line 124) | public void addSession(
method sendMaxThreadsExceededTelemetry (line 227) | private void sendMaxThreadsExceededTelemetry(SFSession session, long r...
method pruneEmptyThreads (line 263) | private void pruneEmptyThreads() {
method removeSession (line 302) | public void removeSession(SFSession session) {
method triggerHeartbeatForInterval (line 349) | @VisibleForTesting
method getActiveThreadCount (line 364) | @VisibleForTesting
method getSessionCountForInterval (line 375) | @VisibleForTesting
method shutdown (line 387) | public synchronized void shutdown() {
FILE: src/main/java/net/snowflake/client/internal/core/HeartbeatThread.java
class HeartbeatThread (line 25) | class HeartbeatThread implements Runnable {
method HeartbeatThread (line 49) | HeartbeatThread(long intervalSeconds, ScheduledExecutorService executo...
method addSession (line 78) | synchronized boolean addSession(SFSession session) {
method removeSession (line 115) | synchronized void removeSession(SFSession session) {
method isEmpty (line 132) | synchronized boolean isEmpty() {
method getSessionCount (line 141) | @VisibleForTesting
method getIntervalSeconds (line 151) | long getIntervalSeconds() {
method start (line 156) | private synchronized void start() {
method scheduleHeartbeat (line 172) | private void scheduleHeartbeat() {
method shutdown (line 208) | synchronized void shutdown() {
method run (line 231) | @Override
method triggerHeartbeatNow (line 285) | @VisibleForTesting
FILE: src/main/java/net/snowflake/client/internal/core/HttpClientSettingsKey.java
class HttpClientSettingsKey (line 16) | public class HttpClientSettingsKey implements Serializable {
method HttpClientSettingsKey (line 39) | public HttpClientSettingsKey(
method HttpClientSettingsKey (line 62) | public HttpClientSettingsKey(OCSPMode mode) {
method HttpClientSettingsKey (line 68) | HttpClientSettingsKey(OCSPMode mode, String userAgentSuffix, Boolean g...
method equals (line 74) | @Override
method hashCode (line 107) | @Override
method getOcspMode (line 120) | public OCSPMode getOcspMode() {
method usesProxy (line 124) | public boolean usesProxy() {
method getProxyHost (line 128) | public String getProxyHost() {
method getProxyPort (line 132) | public int getProxyPort() {
method getProxyUser (line 136) | public String getProxyUser() {
method getUserAgentSuffix (line 140) | public String getUserAgentSuffix() {
method getProxyPassword (line 149) | public String getProxyPassword() {
method getNonProxyHosts (line 153) | public String getNonProxyHosts() {
method getProxyHttpProtocol (line 157) | public HttpProtocol getProxyHttpProtocol() {
method getGzipDisabled (line 161) | public Boolean getGzipDisabled() {
method getRevocationCheckMode (line 165) | public CertRevocationCheckMode getRevocationCheckMode() {
method isAllowCertificatesWithoutCrlUrl (line 169) | public boolean isAllowCertificatesWithoutCrlUrl() {
method setRevocationCheckMode (line 173) | public void setRevocationCheckMode(CertRevocationCheckMode revocationC...
method setAllowCertificatesWithoutCrlUrl (line 177) | public void setAllowCertificatesWithoutCrlUrl(boolean allowCertificate...
method getOcspTimeout (line 181) | public int getOcspTimeout() {
method getDefaultOcspTimeout (line 185) | private static int getDefaultOcspTimeout() {
method toString (line 199) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/HttpExecutingContext.java
class HttpExecutingContext (line 6) | public class HttpExecutingContext {
method HttpExecutingContext (line 56) | public HttpExecutingContext(String requestIdStr, String requestInfoScr...
method getRequestId (line 65) | public String getRequestId() {
method getStartTime (line 69) | public long getStartTime() {
method getStartTimePerRequest (line 73) | public long getStartTimePerRequest() {
method setStartTimePerRequest (line 77) | public void setStartTimePerRequest(long startTimePerRequest) {
method isLoginRequest (line 81) | public boolean isLoginRequest() {
method setLoginRequest (line 85) | public void setLoginRequest(boolean loginRequest) {
method getElapsedMilliForTransientIssues (line 89) | public long getElapsedMilliForTransientIssues() {
method getRetryTimeoutInMilliseconds (line 93) | public long getRetryTimeoutInMilliseconds() {
method getRetryTimeout (line 97) | public long getRetryTimeout() {
method setRetryTimeout (line 101) | public void setRetryTimeout(long retryTimeout) {
method getMinBackoffInMillis (line 105) | public long getMinBackoffInMillis() {
method getBackoffInMillis (line 109) | public long getBackoffInMillis() {
method setBackoffInMillis (line 113) | public void setBackoffInMillis(long backoffInMillis) {
method getMaxBackoffInMilli (line 117) | public long getMaxBackoffInMilli() {
method getAuthTimeout (line 121) | public long getAuthTimeout() {
method getAuthTimeoutInMilliseconds (line 125) | public long getAuthTimeoutInMilliseconds() {
method setAuthTimeout (line 129) | public void setAuthTimeout(long authTimeout) {
method getBackoff (line 133) | public DecorrelatedJitterBackoff getBackoff() {
method setBackoff (line 137) | public void setBackoff(DecorrelatedJitterBackoff backoff) {
method getOrigSocketTimeout (line 141) | public int getOrigSocketTimeout() {
method setOrigSocketTimeout (line 145) | public void setOrigSocketTimeout(int origSocketTimeout) {
method getBreakRetryReason (line 149) | public String getBreakRetryReason() {
method setBreakRetryReason (line 153) | public void setBreakRetryReason(String breakRetryReason) {
method getBreakRetryEventName (line 157) | public String getBreakRetryEventName() {
method setBreakRetryEventName (line 161) | public void setBreakRetryEventName(String breakRetryEventName) {
method getLastStatusCodeForRetry (line 165) | public String getLastStatusCodeForRetry() {
method setLastStatusCodeForRetry (line 169) | public void setLastStatusCodeForRetry(String lastStatusCodeForRetry) {
method getRetryCount (line 173) | public int getRetryCount() {
method setRetryCount (line 177) | public void setRetryCount(int retryCount) {
method resetRetryCount (line 181) | public void resetRetryCount() {
method incrementRetryCount (line 185) | public void incrementRetryCount() {
method getMaxRetries (line 189) | public int getMaxRetries() {
method setMaxRetries (line 193) | public void setMaxRetries(int maxRetries) {
method getRequestInfoScrubbed (line 197) | public String getRequestInfoScrubbed() {
method isNoRetry (line 201) | public boolean isNoRetry() {
method setNoRetry (line 205) | public void setNoRetry(boolean noRetry) {
method isRetryHTTP403 (line 209) | public boolean isRetryHTTP403() {
method setRetryHTTP403 (line 213) | public void setRetryHTTP403(boolean retryHTTP403) {
method isShouldRetry (line 217) | public boolean isShouldRetry() {
method setShouldRetry (line 221) | public void setShouldRetry(boolean shouldRetry) {
method increaseElapsedMilliForTransientIssues (line 225) | public void increaseElapsedMilliForTransientIssues(long elapsedMilliFo...
method elapsedTimeExceeded (line 229) | public boolean elapsedTimeExceeded() {
method moreThanMinRetries (line 233) | public boolean moreThanMinRetries() {
method maxRetriesExceeded (line 237) | public boolean maxRetriesExceeded() {
method socketOrConnectTimeoutReached (line 241) | public boolean socketOrConnectTimeoutReached() {
method getCanceling (line 247) | public AtomicBoolean getCanceling() {
method setCanceling (line 251) | public void setCanceling(AtomicBoolean canceling) {
method isIncludeSnowflakeHeaders (line 255) | public boolean isIncludeSnowflakeHeaders() {
method setIncludeSnowflakeHeaders (line 259) | public void setIncludeSnowflakeHeaders(boolean includeSnowflakeHeaders) {
method isWithoutCookies (line 263) | public boolean isWithoutCookies() {
method setWithoutCookies (line 267) | public void setWithoutCookies(boolean withoutCookies) {
method isInjectSocketTimeout (line 271) | public int isInjectSocketTimeout() {
method setInjectSocketTimeout (line 275) | public void setInjectSocketTimeout(int injectSocketTimeout) {
method getInjectSocketTimeout (line 279) | public int getInjectSocketTimeout() {
method isIncludeRetryParameters (line 283) | public boolean isIncludeRetryParameters() {
method isUnpackResponse (line 287) | public boolean isUnpackResponse() {
method setUnpackResponse (line 291) | public void setUnpackResponse(boolean unpackResponse) {
method setIncludeRetryParameters (line 295) | public void setIncludeRetryParameters(boolean includeRetryParameters) {
method isSkipRetriesBecauseOf200 (line 299) | public boolean isSkipRetriesBecauseOf200() {
method setSkipRetriesBecauseOf200 (line 303) | public void setSkipRetriesBecauseOf200(boolean skipRetriesBecauseOf200) {
method getSfSession (line 307) | public SFBaseSession getSfSession() {
method setSfSession (line 311) | public void setSfSession(SFBaseSession sfSession) {
FILE: src/main/java/net/snowflake/client/internal/core/HttpExecutingContextBuilder.java
class HttpExecutingContextBuilder (line 9) | public class HttpExecutingContextBuilder {
method HttpExecutingContextBuilder (line 33) | public HttpExecutingContextBuilder(String requestId, String requestInf...
method HttpExecutingContextBuilder (line 43) | public HttpExecutingContextBuilder(HttpExecutingContext context) {
method forLogin (line 68) | public static HttpExecutingContextBuilder forLogin(String requestId, S...
method forQuery (line 82) | public static HttpExecutingContextBuilder forQuery(String requestId, S...
method forSimpleRequest (line 96) | public static HttpExecutingContextBuilder forSimpleRequest(
method withRequest (line 110) | public static HttpExecutingContextBuilder withRequest(
method retryTimeout (line 121) | public HttpExecutingContextBuilder retryTimeout(long retryTimeout) {
method authTimeout (line 132) | public HttpExecutingContextBuilder authTimeout(long authTimeout) {
method origSocketTimeout (line 143) | public HttpExecutingContextBuilder origSocketTimeout(int origSocketTim...
method maxRetries (line 154) | public HttpExecutingContextBuilder maxRetries(int maxRetries) {
method injectSocketTimeout (line 165) | public HttpExecutingContextBuilder injectSocketTimeout(int injectSocke...
method canceling (line 176) | public HttpExecutingContextBuilder canceling(AtomicBoolean canceling) {
method withoutCookies (line 187) | public HttpExecutingContextBuilder withoutCookies(boolean withoutCooki...
method includeRetryParameters (line 198) | public HttpExecutingContextBuilder includeRetryParameters(boolean incl...
method includeSnowflakeHeaders (line 209) | public HttpExecutingContextBuilder includeSnowflakeHeaders(boolean inc...
method retryHTTP403 (line 220) | public HttpExecutingContextBuilder retryHTTP403(boolean retryHTTP403) {
method noRetry (line 231) | public HttpExecutingContextBuilder noRetry(boolean noRetry) {
method unpackResponse (line 242) | public HttpExecutingContextBuilder unpackResponse(boolean unpackRespon...
method loginRequest (line 253) | public HttpExecutingContextBuilder loginRequest(boolean isLoginRequest) {
method withSfSession (line 264) | public HttpExecutingContextBuilder withSfSession(SFBaseSession sfSessi...
method build (line 274) | public HttpExecutingContext build() {
FILE: src/main/java/net/snowflake/client/internal/core/HttpProtocol.java
type HttpProtocol (line 3) | public enum HttpProtocol {
method HttpProtocol (line 10) | HttpProtocol(String scheme) {
method getScheme (line 14) | public String getScheme() {
FILE: src/main/java/net/snowflake/client/internal/core/HttpResponseContextDto.java
class HttpResponseContextDto (line 5) | public class HttpResponseContextDto {
method HttpResponseContextDto (line 12) | public HttpResponseContextDto() {}
method HttpResponseContextDto (line 14) | public HttpResponseContextDto(
method getHttpResponse (line 20) | public CloseableHttpResponse getHttpResponse() {
method setHttpResponse (line 24) | public void setHttpResponse(CloseableHttpResponse httpResponse) {
method getUnpackedCloseableHttpResponse (line 28) | public String getUnpackedCloseableHttpResponse() {
method setUnpackedCloseableHttpResponse (line 32) | public void setUnpackedCloseableHttpResponse(String unpackedCloseableH...
method getSavedEx (line 36) | public Exception getSavedEx() {
method setSavedEx (line 40) | public void setSavedEx(Exception savedEx) {
method toString (line 44) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/HttpResponseWithHeaders.java
class HttpResponseWithHeaders (line 11) | public class HttpResponseWithHeaders {
method HttpResponseWithHeaders (line 15) | public HttpResponseWithHeaders(String responseBody, Map<String, String...
method getResponseBody (line 25) | public String getResponseBody() {
method getHeaders (line 35) | public Map<String, String> getHeaders() {
FILE: src/main/java/net/snowflake/client/internal/core/HttpUtil.java
class HttpUtil (line 66) | public class HttpUtil {
method reset (line 114) | public static void reset() {
method getConnectionTimeout (line 145) | public static Duration getConnectionTimeout() {
method getSocketTimeout (line 151) | public static Duration getSocketTimeout() {
method setConnectionTimeout (line 157) | public static void setConnectionTimeout(int timeout) {
method setSocketTimeout (line 162) | public static void setSocketTimeout(int timeout) {
method getDownloadedConditionTimeoutInSeconds (line 167) | public static long getDownloadedConditionTimeoutInSeconds() {
method buildUserAgent (line 179) | @VisibleForTesting
method buildHttpClient (line 216) | public static CloseableHttpClient buildHttpClient(
method buildHttpClient (line 231) | public static CloseableHttpClient buildHttpClient(
method initHttpClientConnectionManager (line 312) | private static PoolingHttpClientConnectionManager initHttpClientConnec...
method configureTrustManagerIfNeeded (line 366) | static TrustManager[] configureTrustManagerIfNeeded(
method crlRevocationChecksDisabled (line 405) | private static boolean crlRevocationChecksDisabled(HttpClientSettingsK...
method initDefaultRequestConfig (line 410) | private static void initDefaultRequestConfig(long connectTimeout, long...
method updateRoutePlanner (line 424) | public static void updateRoutePlanner(HttpClientSettingsKey key) {
method getHttpClient (line 445) | public static CloseableHttpClient getHttpClient(HttpClientSettingsKey ...
method getHttpClient (line 456) | public static CloseableHttpClient getHttpClient(
method getHttpClientWithoutDecompression (line 468) | public static CloseableHttpClient getHttpClientWithoutDecompression(
method initHttpClientWithoutDecompression (line 481) | public static CloseableHttpClient initHttpClientWithoutDecompression(
method initHttpClient (line 498) | public static CloseableHttpClient initHttpClient(
method getDefaultRequestConfigWithSocketTimeout (line 516) | public static RequestConfig getDefaultRequestConfigWithSocketTimeout(
method getDefaultRequestConfigWithSocketAndConnectTimeout (line 533) | public static RequestConfig getDefaultRequestConfigWithSocketAndConnec...
method getRequestConfigWithoutCookies (line 549) | public static RequestConfig getRequestConfigWithoutCookies() {
method setRequestConfig (line 553) | public static void setRequestConfig(RequestConfig requestConfig) {
method getHttpClientStats (line 563) | private static String getHttpClientStats(ClientConnectionManager conne...
method setSocksProxyDisabled (line 576) | public static void setSocksProxyDisabled(boolean socksProxyDisabled) {
method isSocksProxyDisabled (line 586) | public static boolean isSocksProxyDisabled() {
method executeRequestWithoutCookies (line 606) | @Deprecated
method executeRequestWithoutCookies (line 646) | static String executeRequestWithoutCookies(
method executeGeneralRequest (line 694) | public static String executeGeneralRequest(
method executeGeneralRequestOmitSnowflakeHeaders (line 714) | public static String executeGeneralRequestOmitSnowflakeHeaders(
method executeGeneralRequest (line 760) | public static String executeGeneralRequest(
method executeGeneralRequestWithContext (line 804) | public static HttpResponseWithHeaders executeGeneralRequestWithContext(
method convertToHttpResponseWithHeaders (line 848) | private static HttpResponseWithHeaders convertToHttpResponseWithHeaders(
method extractHeadersAsMap (line 855) | public static Map<String, String> extractHeadersAsMap(HttpResponse htt...
method executeGeneralRequest (line 883) | public static String executeGeneralRequest(
method executeRequest (line 932) | @Deprecated
method executeRequest (line 980) | public static String executeRequest(
method executeRequest (line 1029) | @Deprecated
method executeRequest (line 1080) | public static String executeRequest(
method executeRequestInternal (line 1148) | private static String executeRequestInternal(
method executeRequestInternalWithContext (line 1219) | private static HttpResponseContextDto executeRequestInternalWithContext(
method executeRequestInternalWithContext (line 1290) | private static HttpResponseContextDto executeRequestInternalWithContext(
class HttpInputStream (line 1367) | public static final class HttpInputStream extends InputStream {
method HttpInputStream (line 1370) | public HttpInputStream(InputStream httpIn) {
method available (line 1376) | @Override
method read (line 1383) | @Override
method read (line 1388) | @Override
method read (line 1393) | @Override
method skip (line 1398) | @Override
method close (line 1403) | @Override
method mark (line 1408) | @Override
method reset (line 1413) | @Override
method markSupported (line 1418) | @Override
class SFConnectionSocketFactory (line 1424) | static final class SFConnectionSocketFactory extends PlainConnectionSo...
method createSocket (line 1425) | @Override
method applyAdditionalHeadersForSnowsight (line 1446) | static void applyAdditionalHeadersForSnowsight(
method getHttpClientForCrl (line 1453) | public static CloseableHttpClient getHttpClientForCrl(HttpClientSettin...
method getHttpClientForOcsp (line 1457) | public static CloseableHttpClient getHttpClientForOcsp(HttpClientSetti...
method getHttpClient (line 1461) | private static CloseableHttpClient getHttpClient(int timeout, HttpClie...
FILE: src/main/java/net/snowflake/client/internal/core/JsonSqlInput.java
class JsonSqlInput (line 34) | public class JsonSqlInput extends BaseSqlInput {
method JsonSqlInput (line 43) | public JsonSqlInput(
method getInput (line 57) | public JsonNode getInput() {
method getText (line 61) | public String getText() {
method readString (line 65) | @Override
method readBoolean (line 70) | @Override
method readByte (line 75) | @Override
method readShort (line 82) | @Override
method readInt (line 87) | @Override
method readLong (line 92) | @Override
method readFloat (line 97) | @Override
method readDouble (line 102) | @Override
method readBigDecimal (line 107) | @Override
method readBytes (line 112) | @Override
method readDate (line 117) | @Override
method convertDate (line 128) | private Date convertDate(String value) {
method readTime (line 135) | @Override
method convertTime (line 146) | private Time convertTime(String value) {
method readTimestamp (line 153) | @Override
method readTimestamp (line 158) | @Override
method readObject (line 169) | @Override
method convertObject (line 174) | private <T> T convertObject(Class<T> type, TimeZone tz, Object value, ...
method readList (line 232) | @Override
method readArray (line 258) | @Override
method readMap (line 286) | @Override
method convertTimestamp (line 313) | private Timestamp convertTimestamp(TimeZone tz, Object value, FieldMet...
method readObject (line 334) | @Override
method readObject (line 339) | @Override
method wasNull (line 344) | public boolean wasNull() {
method convertSqlInputToMap (line 348) | @Override
method withNextValue (line 354) | private <T> T withNextValue(ThrowingBiFunction<Object, FieldMetadata, ...
method getValue (line 362) | private Object getValue(JsonNode jsonNode) {
method getFormat (line 375) | private static SnowflakeDateTimeFormat getFormat(SFBaseSession session...
FILE: src/main/java/net/snowflake/client/internal/core/JsonSqlOutput.java
class JsonSqlOutput (line 48) | public class JsonSqlOutput implements SQLOutput {
method JsonSqlOutput (line 57) | public JsonSqlOutput(SQLData original, SFBaseSession sfBaseSession) {
method getSessionTimezone (line 67) | private TimeZone getSessionTimezone(SFBaseSession sfBaseSession) {
method getClassFields (line 73) | private static List<Field> getClassFields(SQLData original) {
method writeString (line 82) | @Override
method writeBoolean (line 91) | @Override
method writeByte (line 100) | @Override
method writeShort (line 111) | @Override
method writeInt (line 122) | @Override
method writeLong (line 133) | @Override
method writeFloat (line 144) | @Override
method writeDouble (line 153) | @Override
method writeBigDecimal (line 162) | @Override
method writeBytes (line 175) | @Override
method writeDate (line 186) | @Override
method writeTime (line 197) | @Override
method writeTimestamp (line 221) | @Override
method writeCharacterStream (line 258) | @Override
method writeAsciiStream (line 264) | @Override
method writeBinaryStream (line 270) | @Override
method writeObject (line 276) | @Override
method writeRef (line 289) | @Override
method writeBlob (line 295) | @Override
method writeClob (line 301) | @Override
method writeStruct (line 307) | @Override
method writeArray (line 313) | @Override
method writeURL (line 319) | @Override
method writeNString (line 325) | @Override
method writeNClob (line 331) | @Override
method writeRowId (line 337) | @Override
method writeSQLXML (line 343) | @Override
method getJsonString (line 349) | public String getJsonString() {
method getJsonObject (line 353) | public JSONObject getJsonObject() {
method withNextValue (line 357) | private void withNextValue(
method getDateTimeFormat (line 367) | private SnowflakeDateTimeFormat getDateTimeFormat(String format) {
method getSchema (line 376) | public BindingParameterMetadata getSchema() {
method timeZoneDependOnType (line 380) | private TimeZone timeZoneDependOnType(
method snowflakeTypeToJavaType (line 392) | private int snowflakeTypeToJavaType(SnowflakeType snowflakeType) {
FILE: src/main/java/net/snowflake/client/internal/core/MetaDataOfBinds.java
class MetaDataOfBinds (line 10) | public class MetaDataOfBinds implements Serializable {
method MetaDataOfBinds (line 27) | public MetaDataOfBinds(int prec, boolean n, int sc, int bL, int len, S...
method getPrecision (line 37) | public int getPrecision() {
method isNullable (line 41) | public boolean isNullable() {
method getScale (line 45) | public int getScale() {
method getByteLength (line 49) | public int getByteLength() {
method getLength (line 53) | public int getLength() {
method getName (line 57) | public String getName() {
method getTypeName (line 61) | public String getTypeName() {
FILE: src/main/java/net/snowflake/client/internal/core/NoOpFileCacheManager.java
class NoOpFileCacheManager (line 9) | class NoOpFileCacheManager implements FileCacheManager {
method NoOpFileCacheManager (line 12) | NoOpFileCacheManager() {
method getCacheFilePath (line 19) | @Override
method overrideCacheFile (line 24) | @Override
method withLock (line 29) | @Override
method readCacheFile (line 34) | @Override
method writeCacheFile (line 39) | @Override
method deleteCacheFile (line 42) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/OCSPMode.java
type OCSPMode (line 4) | public enum OCSPMode {
method OCSPMode (line 30) | OCSPMode(int value) {
method getValue (line 34) | public int getValue() {
FILE: src/main/java/net/snowflake/client/internal/core/OCSPTelemetryData.java
class OCSPTelemetryData (line 7) | public class OCSPTelemetryData {
method OCSPTelemetryData (line 16) | public OCSPTelemetryData() {
method setCertId (line 21) | public void setCertId(String certId) {
method setSfcPeerHost (line 25) | public void setSfcPeerHost(String sfcPeerHost) {
method setOcspUrl (line 29) | public void setOcspUrl(String ocspUrl) {
method setOcspReq (line 33) | public void setOcspReq(String ocspReq) {
method setCacheEnabled (line 37) | public void setCacheEnabled(Boolean cacheEnabled) {
method setCacheHit (line 44) | public void setCacheHit(Boolean cacheHit) {
method setOCSPMode (line 52) | public void setOCSPMode(OCSPMode ocspMode) {
method generateTelemetry (line 56) | public String generateTelemetry(String eventType, CertificateException...
FILE: src/main/java/net/snowflake/client/internal/core/ObjectMapperFactory.java
class ObjectMapperFactory (line 16) | public class ObjectMapperFactory {
method getObjectMapper (line 26) | public static ObjectMapper getObjectMapper() {
method getObjectMapperForSession (line 43) | public static ObjectMapper getObjectMapperForSession(SFBaseSession ses...
FILE: src/main/java/net/snowflake/client/internal/core/OpaqueContextDTO.java
class OpaqueContextDTO (line 11) | public class OpaqueContextDTO {
method OpaqueContextDTO (line 15) | @JsonCreator
method getBase64Data (line 20) | public String getBase64Data() {
method setBase64Data (line 24) | public void setBase64Data(String base64Data) {
FILE: src/main/java/net/snowflake/client/internal/core/ParameterBindingDTO.java
class ParameterBindingDTO (line 6) | public class ParameterBindingDTO {
method ParameterBindingDTO (line 16) | public ParameterBindingDTO(
method ParameterBindingDTO (line 24) | public ParameterBindingDTO(String fmt, String type, Object value) {
method ParameterBindingDTO (line 28) | public ParameterBindingDTO(String type, Object value) {
method getValue (line 32) | public Object getValue() {
method getType (line 36) | public String getType() {
method setType (line 40) | public void setType(String type) {
method setValue (line 44) | public void setValue(Object value) {
method getFmt (line 48) | public String getFmt() {
method setFmt (line 52) | public void setFmt(String fmt) {
method getSchema (line 56) | public BindingParameterMetadata getSchema() {
method setSchema (line 60) | public void setSchema(BindingParameterMetadata schema) {
FILE: src/main/java/net/snowflake/client/internal/core/PrivateLinkDetector.java
class PrivateLinkDetector (line 3) | public class PrivateLinkDetector {
method isPrivateLink (line 12) | public static boolean isPrivateLink(String host) {
FILE: src/main/java/net/snowflake/client/internal/core/QueryContextCache.java
class QueryContextCache (line 18) | public class QueryContextCache {
method QueryContextCache (line 42) | public QueryContextCache(int capacity) {
method merge (line 64) | void merge(long id, long readTimestamp, long priority, String context) {
method syncPriorityMap (line 106) | void syncPriorityMap() {
method checkCacheCapacity (line 122) | void checkCacheCapacity() {
method clearCache (line 142) | public void clearCache() {
method deserializeQueryContextJson (line 153) | public void deserializeQueryContextJson(String data) {
method deserializeQueryContextElement (line 225) | private static QueryContextElement deserializeQueryContextElement(Json...
method deserializeQueryContextDTO (line 276) | public void deserializeQueryContextDTO(QueryContextDTO queryContextDTO) {
method deserializeQueryContextElementDTO (line 322) | private static QueryContextElement deserializeQueryContextElementDTO(
method serializeQueryContextDTO (line 339) | public QueryContextDTO serializeQueryContextDTO() {
method serializeQueryContextEntryDTO (line 370) | private QueryContextEntryDTO serializeQueryContextEntryDTO(QueryContex...
method createElement (line 390) | private static QueryContextElement createElement(
method addQCE (line 400) | private void addQCE(QueryContextElement qce) {
method removeQCE (line 411) | private void removeQCE(QueryContextElement qce) {
method replaceQCE (line 424) | private void replaceQCE(QueryContextElement oldQCE, QueryContextElemen...
method getElements (line 436) | private TreeSet<QueryContextElement> getElements() {
method getSize (line 440) | int getSize() {
method getElements (line 444) | void getElements(long[] ids, long[] readTimestamps, long[] priorities,...
method logCacheEntries (line 458) | void logCacheEntries() {
class QueryContextElement (line 472) | private static class QueryContextElement implements Comparable<QueryCo...
method QueryContextElement (line 478) | public QueryContextElement() {
method QueryContextElement (line 490) | public QueryContextElement(long id, long readTimestamp, long priorit...
method equals (line 497) | @Override
method hashCode (line 514) | @Override
method compareTo (line 532) | public int compareTo(QueryContextElement obj) {
method setId (line 536) | public void setId(long id) {
method setPriority (line 540) | public void setPriority(long priority) {
method setContext (line 544) | public void setContext(String context) {
method setReadTimestamp (line 548) | public void setReadTimestamp(long readTimestamp) {
method getId (line 552) | public long getId() {
method getReadTimestamp (line 556) | public long getReadTimestamp() {
method getPriority (line 560) | public long getPriority() {
method getContext (line 564) | public String getContext() {
FILE: src/main/java/net/snowflake/client/internal/core/QueryContextDTO.java
class QueryContextDTO (line 7) | @JsonInclude(JsonInclude.Include.NON_NULL)
method QueryContextDTO (line 14) | public QueryContextDTO() {
method QueryContextDTO (line 18) | public QueryContextDTO(List<QueryContextEntryDTO> entries) {
method getEntries (line 22) | public List<QueryContextEntryDTO> getEntries() {
method setEntries (line 26) | public void setEntries(List<QueryContextEntryDTO> entries) {
FILE: src/main/java/net/snowflake/client/internal/core/QueryContextEntryDTO.java
class QueryContextEntryDTO (line 8) | public class QueryContextEntryDTO {
method QueryContextEntryDTO (line 14) | public QueryContextEntryDTO() {
method QueryContextEntryDTO (line 18) | public QueryContextEntryDTO(long id, long timestamp, long priority, Op...
method getId (line 25) | public long getId() {
method setId (line 29) | public void setId(long id) {
method getTimestamp (line 33) | public long getTimestamp() {
method setTimestamp (line 37) | public void setTimestamp(long timestamp) {
method getPriority (line 41) | public long getPriority() {
method setPriority (line 45) | public void setPriority(long priority) {
method getContext (line 49) | public OpaqueContextDTO getContext() {
method setContext (line 53) | public void setContext(OpaqueContextDTO context) {
FILE: src/main/java/net/snowflake/client/internal/core/QueryExecDTO.java
class QueryExecDTO (line 6) | public class QueryExecDTO {
method QueryExecDTO (line 31) | public QueryExecDTO(
method getSqlText (line 54) | public String getSqlText() {
method setSqlText (line 58) | public void setSqlText(String sqlText) {
method getSequenceId (line 62) | @Deprecated
method setSequenceId (line 67) | @Deprecated
method getBindings (line 72) | public Map<String, ParameterBindingDTO> getBindings() {
method setBindings (line 76) | public void setBindings(Map<String, ParameterBindingDTO> bindings) {
method getBindStage (line 80) | public String getBindStage() {
method setBindStage (line 84) | public void setBindStage(String bindStage) {
method isDescribeOnly (line 88) | public boolean isDescribeOnly() {
method setDescribeOnly (line 92) | public void setDescribeOnly(boolean describeOnly) {
method getParameters (line 96) | public Map<String, Object> getParameters() {
method setParameters (line 100) | public void setParameters(Map<String, Object> parameters) {
method getqueryContextDTO (line 104) | public QueryContextDTO getqueryContextDTO() {
method queryContextDTO (line 108) | public void queryContextDTO(QueryContextDTO queryContext) {
method getDescribedJobId (line 112) | public String getDescribedJobId() {
method setDescribedJobId (line 116) | public void setDescribedJobId(String describedJobId) {
method getQuerySubmissionTime (line 120) | public long getQuerySubmissionTime() {
method setQuerySubmissionTime (line 124) | public void setQuerySubmissionTime(long querySubmissionTime) {
method setIsInternal (line 128) | public void setIsInternal(boolean isInternal) {
method getIsInternal (line 132) | public boolean getIsInternal() {
method setAsyncExec (line 136) | public void setAsyncExec(boolean asyncExec) {
method getAsyncExec (line 140) | public boolean getAsyncExec() {
FILE: src/main/java/net/snowflake/client/internal/core/QueryResultFormat.java
type QueryResultFormat (line 5) | public enum QueryResultFormat {
method QueryResultFormat (line 11) | QueryResultFormat(String name) {
method lookupByName (line 15) | public static Optional<QueryResultFormat> lookupByName(String n) {
FILE: src/main/java/net/snowflake/client/internal/core/ResultUtil.java
class ResultUtil (line 27) | public class ResultUtil {
method effectiveParamValue (line 62) | public static Object effectiveParamValue(Map<String, Object> parameter...
method specializedFormatter (line 89) | public static SnowflakeDateTimeFormat specializedFormatter(
method adjustTimestamp (line 110) | public static Timestamp adjustTimestamp(Timestamp timestamp) {
method msDiffJulianToGregorian (line 133) | public static long msDiffJulianToGregorian(java.util.Date date) {
method getSFTimestamp (line 181) | public static SFTimestamp getSFTimestamp(
method getSFTime (line 228) | public static SFTime getSFTime(String obj, int scale, SFBaseSession se...
method getSFTimeAsString (line 244) | public static String getSFTimeAsString(
method getBooleanAsString (line 255) | public static String getBooleanAsString(boolean bool) {
method getSFTimestampAsString (line 272) | public static String getSFTimestampAsString(
method getDateAsString (line 319) | public static String getDateAsString(Date date, SnowflakeDateTimeForma...
method adjustDate (line 329) | public static Date adjustDate(Date date) {
method getDate (line 349) | @Deprecated
method getBoolean (line 386) | public static boolean getBoolean(String str) {
method calculateUpdateCount (line 399) | public static long calculateUpdateCount(SFBaseResultSet resultSet)
method listSearchCaseInsensitive (line 438) | public static int listSearchCaseInsensitive(List<String> source, Strin...
method getResultIds (line 454) | private static List<String> getResultIds(JsonNode result) {
method getResultTypes (line 469) | private static List<SFStatementType> getResultTypes(JsonNode result) {
method getChildResults (line 495) | public static List<SFChildResult> getChildResults(
FILE: src/main/java/net/snowflake/client/internal/core/SFArrowResultSet.java
class SFArrowResultSet (line 57) | public class SFArrowResultSet extends SFBaseResultSet implements DataCon...
method SFArrowResultSet (line 131) | public SFArrowResultSet(
method SFArrowResultSet (line 188) | public SFArrowResultSet(
method fetchNextRow (line 247) | private boolean fetchNextRow() throws SnowflakeSQLException {
method fetchNextRowUnsorted (line 261) | private boolean fetchNextRowUnsorted() throws SnowflakeSQLException {
method buildFirstChunk (line 328) | private ArrowResultChunk buildFirstChunk(byte[] firstChunk) throws SQL...
method getSortedFirstResultChunk (line 353) | private ArrowResultChunk getSortedFirstResultChunk(byte[] firstChunk) ...
method fetchNextRowSorted (line 365) | private boolean fetchNextRowSorted() throws SnowflakeSQLException {
method getConverters (line 378) | @Override
method createSqlInputForColumn (line 383) | @Override
method convertToDate (line 397) | @Override
method convertToTime (line 405) | @Override
method convertToTimestamp (line 413) | @Override
method next (line 430) | @Override
method getByte (line 463) | @Override
method getString (line 471) | @Override
method getBoolean (line 479) | @Override
method getPeriod (line 487) | @Override
method getDuration (line 495) | @Override
method getShort (line 503) | @Override
method getInt (line 511) | @Override
method getLong (line 519) | @Override
method getFloat (line 527) | @Override
method getDouble (line 535) | @Override
method getBytes (line 543) | @Override
method getDate (line 551) | @Override
method getTime (line 561) | @Override
method getTimestamp (line 571) | @Override
method getObject (line 581) | @Override
method getObjectWithoutString (line 586) | @Override
method getObjectRepresentation (line 591) | private StructObjectWrapper getObjectRepresentation(int columnIndex, b...
method createArrowSqlInput (line 637) | private SQLInput createArrowSqlInput(int columnIndex, Map<String, Obje...
method isVarcharConvertedStruct (line 646) | private boolean isVarcharConvertedStruct(int type, ArrowVectorConverte...
method createJsonSqlInput (line 650) | private JsonSqlInput createJsonSqlInput(int columnIndex, Object obj) t...
method getArray (line 669) | @Override
method getArrowArray (line 688) | private SfSqlArray getArrowArray(String text, List<Object> elements, i...
method getSfSqlArray (line 806) | private SfSqlArray getSfSqlArray(String text, int columnSubType, Objec...
method mapAndConvert (line 810) | private <T> Stream<T> mapAndConvert(List<Object> elements, Converter<T...
method getBigDecimal (line 822) | @Override
method getBigDecimal (line 832) | @Override
method isLast (line 838) | @Override
method isAfterLast (line 843) | @Override
method close (line 848) | @Override
method closeRootAllocator (line 869) | public static void closeRootAllocator(RootAllocator rootAllocator) {
method getStatementType (line 897) | @Override
method setStatementType (line 902) | @Override
method isArrayBindSupported (line 907) | @Override
method getQueryId (line 912) | @Override
method logMetric (line 917) | private void logMetric(TelemetryField field, long value) {
method logChunkDownloaderMetrics (line 922) | private void logChunkDownloaderMetrics(DownloaderMetrics metrics) {
method getTimestampLTZFormatter (line 930) | @Override
method getTimestampNTZFormatter (line 935) | @Override
method getTimestampTZFormatter (line 940) | @Override
method getDateFormatter (line 945) | @Override
method getTimeFormatter (line 950) | @Override
method getBinaryFormatter (line 955) | @Override
method getScale (line 960) | @Override
method getTimeZone (line 965) | @Override
method getHonorClientTZForTimestampNTZ (line 970) | @Override
method getResultVersion (line 975) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/SFBaseResultSet.java
class SFBaseResultSet (line 43) | public abstract class SFBaseResultSet {
method isLast (line 84) | public abstract boolean isLast();
method isAfterLast (line 86) | public abstract boolean isAfterLast();
method getString (line 88) | public abstract String getString(int columnIndex) throws SFException;
method getBoolean (line 90) | public abstract boolean getBoolean(int columnIndex) throws SFException;
method getByte (line 92) | public abstract byte getByte(int columnIndex) throws SFException;
method getPeriod (line 94) | public abstract Period getPeriod(int columnIndex) throws SFException;
method getDuration (line 96) | public abstract Duration getDuration(int columnIndex) throws SFException;
method getShort (line 98) | public abstract short getShort(int columnIndex) throws SFException;
method getInt (line 100) | public abstract int getInt(int columnIndex) throws SFException;
method getLong (line 102) | public abstract long getLong(int columnIndex) throws SFException;
method getFloat (line 104) | public abstract float getFloat(int columnIndex) throws SFException;
method getDouble (line 106) | public abstract double getDouble(int columnIndex) throws SFException;
method getBytes (line 108) | public abstract byte[] getBytes(int columnIndex) throws SFException;
method getTime (line 110) | public abstract Time getTime(int columnIndex) throws SFException;
method getTimestamp (line 112) | public abstract Timestamp getTimestamp(int columnIndex, TimeZone tz) t...
method getDate (line 114) | public abstract Date getDate(int columnIndex, TimeZone tz) throws SFEx...
method getObject (line 116) | public abstract Object getObject(int columnIndex) throws SFException;
method getObjectWithoutString (line 118) | public abstract Object getObjectWithoutString(int columnIndex) throws ...
method getArray (line 120) | public Array getArray(int columnIndex) throws SFException {
method getBigDecimal (line 124) | public abstract BigDecimal getBigDecimal(int columnIndex) throws SFExc...
method getBigDecimal (line 126) | public abstract BigDecimal getBigDecimal(int columnIndex, int scale) t...
method getStatementType (line 128) | public abstract SFStatementType getStatementType();
method setStatementType (line 132) | public abstract void setStatementType(SFStatementType statementType) t...
method getQueryId (line 134) | public abstract String getQueryId();
method setSession (line 136) | public void setSession(SFBaseSession session) {
method getSession (line 140) | public SFBaseSession getSession() {
method next (line 145) | public boolean next() throws SFException, SnowflakeSQLException {
method close (line 150) | public void close() throws SnowflakeSQLException {
method wasNull (line 158) | public boolean wasNull() {
method getMetaData (line 164) | public SFResultSetMetaData getMetaData() {
method getSessionTimezone (line 168) | public TimeZone getSessionTimezone() {
method getRow (line 172) | public int getRow() throws SQLException {
method absolute (line 176) | public boolean absolute(int row) throws SFException {
method relative (line 180) | public boolean relative(int rows) throws SFException {
method previous (line 184) | public boolean previous() throws SFException {
method getNumberOfBinds (line 188) | public int getNumberOfBinds() {
method getMetaDataOfBinds (line 192) | public List<MetaDataOfBinds> getMetaDataOfBinds() {
method isFirst (line 196) | public boolean isFirst() {
method isBeforeFirst (line 200) | public boolean isBeforeFirst() {
method isClosed (line 204) | public boolean isClosed() {
method isArrayBindSupported (line 208) | public boolean isArrayBindSupported() {
method getResultSetSerializables (line 224) | public List<SnowflakeResultSetSerializable> getResultSetSerializables(...
method getConverters (line 229) | public Converters getConverters() {
method getSessionTimeZone (line 234) | public TimeZone getSessionTimeZone() {
method createSqlInputForColumn (line 238) | public SQLInput createSqlInputForColumn(
method convertToDate (line 247) | public Date convertToDate(Object object, TimeZone tz) throws SFExcepti...
method convertToTime (line 251) | public Time convertToTime(Object object, int scale) throws SFException {
method convertToTimestamp (line 255) | public Timestamp convertToTimestamp(
method createJsonSqlInputForColumn (line 260) | protected SQLInput createJsonSqlInputForColumn(
method getJsonArray (line 272) | protected SfSqlArray getJsonArray(String arrayString, int columnIndex,...
method convertStringToDate (line 432) | protected Date convertStringToDate(String object, TimeZone tz) throws ...
method convertStringToTime (line 436) | protected Time convertStringToTime(String object, int scale) throws SF...
method convertStringToTimestamp (line 440) | protected Timestamp convertStringToTimestamp(
method getStream (line 448) | private Stream getStream(Iterator nodeElements, Converter converter) {
method convert (line 461) | private static Object convert(Converter converter, JsonNode node) thro...
method convertToFixedArray (line 466) | private Object[] convertToFixedArray(Stream inputStream) {
FILE: src/main/java/net/snowflake/client/internal/core/SFBaseSession.java
class SFBaseSession (line 51) | public abstract class SFBaseSession {
method SFBaseSession (line 180) | protected SFBaseSession(SFConnectionHandler sfConnectionHandler) {
method setMemoryLimitForTesting (line 184) | public void setMemoryLimitForTesting(long memLimit) {
method getMemoryLimitForTesting (line 188) | public long getMemoryLimitForTesting() {
method getClientInfo (line 199) | public Properties getClientInfo() {
method setCommonParameters (line 212) | public void setCommonParameters(Map<String, Object> parameters) {
method getCommonParameters (line 221) | public Map<String, Object> getCommonParameters() {
method getClientInfo (line 231) | public String getClientInfo(String name) {
method getSessionId (line 240) | public String getSessionId() {
method setSessionId (line 249) | public void setSessionId(String sessionId) {
method isSfSQLMode (line 256) | public boolean isSfSQLMode() {
method setSfSQLMode (line 265) | public void setSfSQLMode(boolean sfSQLMode) {
method getDatabaseVersion (line 274) | public String getDatabaseVersion() {
method setDatabaseVersion (line 283) | public void setDatabaseVersion(String databaseVersion) {
method getDatabaseMajorVersion (line 292) | public int getDatabaseMajorVersion() {
method setDatabaseMajorVersion (line 301) | public void setDatabaseMajorVersion(int databaseMajorVersion) {
method getDatabaseMinorVersion (line 310) | public int getDatabaseMinorVersion() {
method setDatabaseMinorVersion (line 319) | public void setDatabaseMinorVersion(int databaseMinorVersion) {
method getPreparedStatementLogging (line 331) | public boolean getPreparedStatementLogging() {
method setPreparedStatementLogging (line 341) | public void setPreparedStatementLogging(boolean value) {
method getInjectFileUploadFailure (line 350) | public String getInjectFileUploadFailure() {
method setInjectFileUploadFailure (line 359) | public void setInjectFileUploadFailure(String fileToFail) {
method getTimestampMappedType (line 370) | public SnowflakeType getTimestampMappedType() {
method setTimestampMappedType (line 380) | public void setTimestampMappedType(SnowflakeType timestampMappedType) {
method isResultColumnCaseInsensitive (line 390) | public boolean isResultColumnCaseInsensitive() {
method setResultColumnCaseInsensitive (line 401) | public void setResultColumnCaseInsensitive(boolean resultColumnCaseIns...
method isJdbcTreatDecimalAsInt (line 412) | public boolean isJdbcTreatDecimalAsInt() {
method setJdbcTreatDecimalAsInt (line 422) | public void setJdbcTreatDecimalAsInt(boolean jdbcTreatDecimalAsInt) {
method isJdbcArrowTreatDecimalAsInt (line 429) | public boolean isJdbcArrowTreatDecimalAsInt() {
method setJdbcArrowTreatDecimalAsInt (line 438) | public void setJdbcArrowTreatDecimalAsInt(boolean jdbcArrowTreatDecima...
method getServerUrl (line 447) | public String getServerUrl() {
method isStringQuoted (line 459) | public boolean isStringQuoted() {
method addProperty (line 475) | public void addProperty(SFSessionProperty sfSessionProperty, Object pr...
method addProperty (line 491) | public void addProperty(String propertyName, Object propertyValue) thr...
method getConnectionPropertiesMap (line 521) | public Map<SFSessionProperty, Object> getConnectionPropertiesMap() {
method getHttpClientKey (line 531) | public HttpClientSettingsKey getHttpClientKey() throws SnowflakeSQLExc...
method logHttpClientInitInfo (line 713) | private void logHttpClientInitInfo(HttpClientSettingsKey key) {
method unsetInvalidProxyHostAndPort (line 735) | public void unsetInvalidProxyHostAndPort() {
method getOCSPMode (line 752) | public OCSPMode getOCSPMode() throws SnowflakeSQLException {
method getCertRevocationCheckMode (line 787) | public CertRevocationCheckMode getCertRevocationCheckMode() throws Sno...
method getQueryTimeout (line 810) | public Integer getQueryTimeout() {
method getUser (line 819) | public String getUser() {
method getUrl (line 828) | public String getUrl() {
method getInjectWaitInPut (line 837) | public int getInjectWaitInPut() {
method getMetadataRequestUseSessionDatabase (line 854) | public boolean getMetadataRequestUseSessionDatabase() {
method setMetadataRequestUseSessionDatabase (line 863) | public void setMetadataRequestUseSessionDatabase(boolean enabled) {
method getMetadataRequestUseConnectionCtx (line 872) | public boolean getMetadataRequestUseConnectionCtx() {
method setMetadataRequestUseConnectionCtx (line 881) | public void setMetadataRequestUseConnectionCtx(boolean enabled) {
method getInjectedDelay (line 890) | AtomicInteger getInjectedDelay() {
method setInjectedDelay (line 899) | public void setInjectedDelay(int injectedDelay) {
method getTreatNTZAsUTC (line 908) | public boolean getTreatNTZAsUTC() {
method setTreatNTZAsUTC (line 917) | public void setTreatNTZAsUTC(boolean treatNTZAsUTC) {
method getEnableHeartbeat (line 926) | public boolean getEnableHeartbeat() {
method setEnableHeartbeat (line 935) | public void setEnableHeartbeat(boolean enableHeartbeat) {
method setHeartbeatFrequency (line 945) | public void setHeartbeatFrequency(int frequency) {
method getHeartbeatFrequency (line 960) | public int getHeartbeatFrequency() {
method getAutoCommit (line 973) | public boolean getAutoCommit() {
method setAutoCommit (line 983) | public void setAutoCommit(boolean autoCommit) {
method getFormatDateWithTimezone (line 992) | public boolean getFormatDateWithTimezone() {
method setFormatDateWithTimezone (line 1001) | public void setFormatDateWithTimezone(boolean formatDateWithTimezone) {
method getUseSessionTimezone (line 1010) | public boolean getUseSessionTimezone() {
method getDefaultFormatDateWithTimezone (line 1019) | public boolean getDefaultFormatDateWithTimezone() {
method setUseSessionTimezone (line 1028) | public void setUseSessionTimezone(boolean useSessionTimezone) {
method setDefaultFormatDateWithTimezone (line 1037) | public void setDefaultFormatDateWithTimezone(boolean defaultFormatDate...
method getGetDateUseNullTimezone (line 1041) | public boolean getGetDateUseNullTimezone() {
method setGetDateUseNullTimezone (line 1045) | public void setGetDateUseNullTimezone(boolean getDateUseNullTimezone) {
method getEnableCombineDescribe (line 1049) | public boolean getEnableCombineDescribe() {
method setEnableCombineDescribe (line 1053) | public void setEnableCombineDescribe(boolean enableCombineDescribe) {
method isClientTelemetryEnabled (line 1057) | public boolean isClientTelemetryEnabled() {
method setClientTelemetryEnabled (line 1061) | public void setClientTelemetryEnabled(boolean clientTelemetryEnabled) {
method getArrayBindStageThreshold (line 1065) | public int getArrayBindStageThreshold() {
method setArrayBindStageThreshold (line 1069) | public void setArrayBindStageThreshold(int arrayBindStageThreshold) {
method getStoreTemporaryCredential (line 1073) | public boolean getStoreTemporaryCredential() {
method setStoreTemporaryCredential (line 1077) | public void setStoreTemporaryCredential(boolean storeTemporaryCredenti...
method getServiceName (line 1081) | public String getServiceName() {
method setServiceName (line 1085) | public void setServiceName(String serviceName) {
method setEnableConservativeMemoryUsage (line 1089) | public void setEnableConservativeMemoryUsage(boolean enableConservativ...
method isConservativeMemoryUsageEnabled (line 1093) | public boolean isConservativeMemoryUsageEnabled() {
method getConservativeMemoryAdjustStep (line 1097) | public int getConservativeMemoryAdjustStep() {
method setConservativeMemoryAdjustStep (line 1101) | public void setConservativeMemoryAdjustStep(int conservativeMemoryAdju...
method getClientMemoryLimit (line 1105) | public int getClientMemoryLimit() {
method setClientMemoryLimit (line 1109) | public void setClientMemoryLimit(int clientMemoryLimit) {
method getQueryContextCacheSize (line 1113) | public int getQueryContextCacheSize() {
method setQueryContextCacheSize (line 1117) | public void setQueryContextCacheSize(int queryContextCacheSize) {
method getJdbcEnablePutGet (line 1121) | public boolean getJdbcEnablePutGet() {
method setJdbcEnablePutGet (line 1125) | public void setJdbcEnablePutGet(boolean jdbcEnablePutGet) {
method getEnablePutGet (line 1129) | public boolean getEnablePutGet() {
method setEnablePutGet (line 1133) | public boolean setEnablePutGet(boolean enablePutGet) {
method isEnableCopyResultSet (line 1137) | public boolean isEnableCopyResultSet() {
method setEnableCopyResultSet (line 1141) | public boolean setEnableCopyResultSet(boolean enableCopyResultSet) {
method getEnablePatternSearch (line 1145) | public boolean getEnablePatternSearch() {
method setEnablePatternSearch (line 1149) | public void setEnablePatternSearch(boolean enablePatternSearch) {
method getEnableExactSchemaSearch (line 1153) | public boolean getEnableExactSchemaSearch() {
method setEnableExactSchemaSearch (line 1157) | void setEnableExactSchemaSearch(boolean enableExactSchemaSearch) {
method getEnableWildcardsInShowMetadataCommands (line 1161) | public boolean getEnableWildcardsInShowMetadataCommands() {
method setEnableWildcardsInShowMetadataCommands (line 1165) | void setEnableWildcardsInShowMetadataCommands(boolean enableWildcardsI...
method getDisableGcsDefaultCredentials (line 1169) | public boolean getDisableGcsDefaultCredentials() {
method setDisableGcsDefaultCredentials (line 1173) | public void setDisableGcsDefaultCredentials(boolean disableGcsDefaultC...
method getClientResultChunkSize (line 1177) | public int getClientResultChunkSize() {
method setClientResultChunkSize (line 1181) | public void setClientResultChunkSize(int clientResultChunkSize) {
method getOtherParameter (line 1185) | public Object getOtherParameter(String key) {
method setOtherParameter (line 1189) | public void setOtherParameter(String key, Object value) {
method getClientPrefetchThreads (line 1193) | public int getClientPrefetchThreads() {
method setClientPrefetchThreads (line 1197) | public void setClientPrefetchThreads(int clientPrefetchThreads) {
method getValidateDefaultParameters (line 1201) | public boolean getValidateDefaultParameters() {
method setValidateDefaultParameters (line 1205) | public void setValidateDefaultParameters(boolean validateDefaultParame...
method getDatabase (line 1209) | public String getDatabase() {
method setDatabase (line 1213) | public void setDatabase(String database) {
method getSchema (line 1219) | public String getSchema() {
method setSchema (line 1223) | public void setSchema(String schema) {
method getRole (line 1229) | public String getRole() {
method setRole (line 1233) | public void setRole(String role) {
method getWarehouse (line 1237) | public String getWarehouse() {
method setWarehouse (line 1241) | public void setWarehouse(String warehouse) {
method setUseRegionalS3EndpointsForPresignedURL (line 1247) | public void setUseRegionalS3EndpointsForPresignedURL(boolean regionalS...
method getUseRegionalS3EndpointsForPresignedURL (line 1251) | public boolean getUseRegionalS3EndpointsForPresignedURL() {
method getArrayBindStage (line 1255) | public String getArrayBindStage() {
method setArrayBindStage (line 1259) | public void setArrayBindStage(String arrayBindStage) {
method setSessionPropertyByKey (line 1270) | public void setSessionPropertyByKey(String propertyName, Object proper...
method getSessionPropertyByKey (line 1280) | public Object getSessionPropertyByKey(String propertyName) {
method isSafeToClose (line 1290) | public abstract boolean isSafeToClose();
method getQueryStatus (line 1297) | public abstract QueryStatus getQueryStatus(String queryID) throws SQLE...
method checkProperties (line 1305) | public abstract List<DriverPropertyInfo> checkProperties();
method close (line 1313) | public void close() throws SFException, SnowflakeSQLException {
method close (line 1318) | public abstract void close(InternalCallMarker internalCallMarker)
method getTelemetryClient (line 1325) | public Telemetry getTelemetryClient() {
method getTelemetryClient (line 1333) | public abstract Telemetry getTelemetryClient(InternalCallMarker intern...
method callHeartBeat (line 1342) | public abstract void callHeartBeat(int timeout) throws Exception, SFEx...
method getSqlWarnings (line 1350) | public List<SFException> getSqlWarnings() {
method clearSqlWarnings (line 1358) | public void clearSqlWarnings() {
method getSfConnectionHandler (line 1367) | public SFConnectionHandler getSfConnectionHandler() {
method getNetworkTimeoutInMilli (line 1376) | public abstract int getNetworkTimeoutInMilli();
method getAuthTimeout (line 1381) | @Deprecated
method getMaxHttpRetries (line 1387) | public abstract int getMaxHttpRetries();
method getSnowflakeConnectionString (line 1392) | public abstract SnowflakeConnectString getSnowflakeConnectionString();
method isAsyncSession (line 1397) | public abstract boolean isAsyncSession();
method getQueryContextDTO (line 1402) | public abstract QueryContextDTO getQueryContextDTO();
method setQueryContext (line 1409) | public abstract void setQueryContext(String queryContext);
method getEnableReturnTimestampWithTimeZone (line 1417) | public boolean getEnableReturnTimestampWithTimeZone() {
method getImplicitServerSideQueryTimeout (line 1421) | boolean getImplicitServerSideQueryTimeout() {
method setImplicitServerSideQueryTimeout (line 1425) | void setImplicitServerSideQueryTimeout(boolean value) {
method setClearBatchOnlyAfterSuccessfulExecution (line 1429) | void setClearBatchOnlyAfterSuccessfulExecution(boolean value) {
method getClearBatchOnlyAfterSuccessfulExecution (line 1433) | public boolean getClearBatchOnlyAfterSuccessfulExecution() {
method getTreatTimeAsWallClockTime (line 1437) | public boolean getTreatTimeAsWallClockTime() {
method setTreatTimeAsWallClockTime (line 1441) | public void setTreatTimeAsWallClockTime(boolean treatTimeAsWallClockTi...
method isOwnerOnlyStageFilePermissionsEnabled (line 1450) | public boolean isOwnerOnlyStageFilePermissionsEnabled() {
method setOwnerOnlyStageFilePermissionsEnabled (line 1454) | public void setOwnerOnlyStageFilePermissionsEnabled(boolean booleanVal...
method isAllowCertificatesWithoutCrlUrl (line 1458) | public boolean isAllowCertificatesWithoutCrlUrl() {
method setAllowCertificatesWithoutCrlUrl (line 1462) | public void setAllowCertificatesWithoutCrlUrl(boolean allowCertificate...
method getStickyHttpHeaders (line 1466) | public Map<String, String> getStickyHttpHeaders() {
method extractAndUpdateStickyHttpHeaders (line 1470) | public void extractAndUpdateStickyHttpHeaders(Map<String, String> allH...
method filterStickyHeaders (line 1474) | private static Map<String, String> filterStickyHeaders(Map<String, Str...
FILE: src/main/java/net/snowflake/client/internal/core/SFBaseStatement.java
class SFBaseStatement (line 19) | public abstract class SFBaseStatement {
method addProperty (line 39) | public void addProperty(String propertyName, Object propertyValue) thr...
method getStatementParameters (line 52) | public Map<String, Object> getStatementParameters() {
method describe (line 65) | public abstract SFPreparedStatementMetaData describe(String sql) throw...
method execute (line 79) | public abstract SFBaseResultSet execute(
method asyncExecute (line 101) | public abstract SFBaseResultSet asyncExecute(
method close (line 112) | public abstract void close();
method cancel (line 121) | @Deprecated
method cancel (line 131) | public void cancel(CancellationReason cancellationReason) throws SFExc...
method executeSetProperty (line 140) | public void executeSetProperty(final String sql) {
method isFileTransfer (line 169) | public static boolean isFileTransfer(String sql) {
method hasChildren (line 179) | public abstract boolean hasChildren();
method getSFBaseSession (line 186) | public abstract SFBaseSession getSFBaseSession();
method getSFBaseSession (line 192) | public abstract SFBaseSession getSFBaseSession(InternalCallMarker inte...
method getResultSet (line 200) | public abstract SFBaseResultSet getResultSet();
method getMoreResults (line 211) | public abstract boolean getMoreResults(int current) throws SQLException;
type CallingMethod (line 214) | public enum CallingMethod {
method getConservativeMemoryLimit (line 220) | public abstract long getConservativeMemoryLimit();
method getConservativePrefetchThreads (line 222) | public abstract int getConservativePrefetchThreads();
method getChildQueryIds (line 229) | public abstract String[] getChildQueryIds(String queryID) throws SQLEx...
FILE: src/main/java/net/snowflake/client/internal/core/SFBasicCrlTrustManager.java
class SFBasicCrlTrustManager (line 8) | public class SFBasicCrlTrustManager implements X509TrustManager {
method SFBasicCrlTrustManager (line 12) | public SFBasicCrlTrustManager(
method checkClientTrusted (line 18) | @Override
method checkServerTrusted (line 24) | @Override
method getAcceptedIssuers (line 31) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/SFChildResult.java
class SFChildResult (line 4) | public class SFChildResult {
method SFChildResult (line 10) | public SFChildResult(String id, SFStatementType type) {
method getId (line 16) | public String getId() {
method getType (line 21) | public SFStatementType getType() {
FILE: src/main/java/net/snowflake/client/internal/core/SFCrlTrustManagerFactory.java
class SFCrlTrustManagerFactory (line 16) | class SFCrlTrustManagerFactory {
method createCrlTrustManager (line 19) | static X509TrustManager createCrlTrustManager(HttpClientSettingsKey key)
method getSystemTrustManager (line 34) | private static X509TrustManager getSystemTrustManager() {
FILE: src/main/java/net/snowflake/client/internal/core/SFException.java
class SFException (line 8) | public class SFException extends Throwable {
method SFException (line 28) | @Deprecated
method SFException (line 40) | @Deprecated
method SFException (line 52) | @Deprecated
method SFException (line 63) | public SFException(String queryId, Throwable cause, ErrorCode errorCod...
method getCause (line 81) | public Throwable getCause() {
method getQueryId (line 90) | public String getQueryId() {
method getSqlState (line 99) | public String getSqlState() {
method getVendorCode (line 108) | public int getVendorCode() {
method getParams (line 117) | public Object[] getParams() {
method oneLiner (line 121) | public static String oneLiner(String prefix, Throwable thrown) {
method toString (line 130) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/SFExtendedCrlTrustManager.java
class SFExtendedCrlTrustManager (line 10) | public class SFExtendedCrlTrustManager extends X509ExtendedTrustManager {
method SFExtendedCrlTrustManager (line 14) | public SFExtendedCrlTrustManager(
method checkClientTrusted (line 20) | @Override
method checkClientTrusted (line 26) | @Override
method checkClientTrusted (line 32) | @Override
method checkServerTrusted (line 38) | @Override
method checkServerTrusted (line 45) | @Override
method checkServerTrusted (line 52) | @Override
method getAcceptedIssuers (line 59) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/SFFixedViewResultSet.java
class SFFixedViewResultSet (line 23) | public class SFFixedViewResultSet extends SFJsonResultSet {
method SFFixedViewResultSet (line 31) | public SFFixedViewResultSet(SnowflakeFixedView fixedView, CommandType ...
method next (line 81) | @Override
method getObjectInternal (line 111) | @Override
method close (line 128) | @Override
method getStatementType (line 136) | @Override
method setStatementType (line 145) | @Override
method isLast (line 150) | @Override
method isAfterLast (line 155) | @Override
method getQueryId (line 160) | @Override
FILE: src/main/java/net/snowflake/client/internal/core/SFJsonResultSet.java
class SFJsonResultSet (line 26) | public abstract class SFJsonResultSet extends SFBaseResultSet {
method SFJsonResultSet (line 32) | protected SFJsonResultSet(TimeZone sessionTimeZone, Converters convert...
method getObjectInternal (line 45) | protected abstract Object getObjectInternal(int columnIndex) throws SF...
method getObject (line 47) | public Object getObject(int columnIndex) throws SFException {
method getObjectWithoutString (line 107) | @Override
method getBigInt (line 119) | private Object getBigInt(int columnIndex, Object obj) throws SFExcepti...
method getArray (line 123) | @Override
method getString (line 132) | @Override
method getBoolean (line 142) | @Override
method getByte (line 149) | @Override
method getPeriod (line 156) | @Override
method getDuration (line 164) | @Override
method getShort (line 172) | @Override
method getInt (line 180) | @Override
method getLong (line 188) | @Override
method getBigDecimal (line 196) | @Override
method getBigDecimal (line 204) | @Override
method getTime (line 212) | @Override
method getTimestamp (line 224) | @Override
method getFloat (line 236) | @Override
method getDouble (line 244) | @Override
method getBytes (line 252) | @Override
method getDate (line 262) | public Date getDate(int columnIndex) throws SFException {
method getDate (line 266) | @Override
method createSqlInputForColumn (line 276) | @Override
method convertToDate (line 286) | @Override
method convertToTime (line 291) | @Override
method convertToTimestamp (line 296) | @Override
method getTimestamp (line 302) | private Timestamp getTimestamp(int columnIndex) throws SFException {
method getConverters (line 306) | @Override
method getSqlInput (line 311) | private Object getSqlInput(String input, int columnIndex) throws SFExc...
FILE: src/main/java/net/snowflake/client/internal/core/SFLoginInput.java
class SFLoginInput (line 18) | public class SFLoginInput {
method SFLoginInput (line 89) | public SFLoginInput() {}
method getBrowserResponseTimeout (line 91) | public Duration getBrowserResponseTimeout() {
method setBrowserResponseTimeout (line 95) | public SFLoginInput setBrowserResponseTimeout(Duration browserResponse...
method getServerUrl (line 100) | public String getServerUrl() {
method setServerUrl (line 104) | public SFLoginInput setServerUrl(String serverUrl) {
method getDisableConsoleLogin (line 109) | public boolean getDisableConsoleLogin() {
method setDisableConsoleLogin (line 113) | SFLoginInput setDisableConsoleLogin(boolean disableConsoleLogin) {
method getDatabaseName (line 118) | String getDatabaseName() {
method setDatabaseName (line 122) | SFLoginInput setDatabaseName(String databaseName) {
method getSchemaName (line 127) | public String getSchemaName() {
method setSchemaName (line 131) | public SFLoginInput setSchemaName(String schemaName) {
method getWarehouse (line 136) | public String getWarehouse() {
method setWarehouse (line 140) | public SFLoginInput setWarehouse(String warehouse) {
method getRole (line 145) | public String getRole() {
method setRole (line 149) | public SFLoginInput setRole(String role) {
method isValidateDefaultParameters (line 154) | public boolean isValidateDefaultParameters() {
method setValidateDefaultParameters (line 158) | public SFLoginInput setValidateDefaultParameters(Object v) {
method getAuthenticator (line 163) | public String getAuthenticator() {
method setAuthenticator (line 167) | public SFLoginInput setAuthenticator(String authenticator) {
method getOKTAUserName (line 172) | public String getOKTAUserName() {
method setOKTAUserName (line 176) | public SFLoginInput setOKTAUserName(String oktaUserName) {
method getAccountName (line 181) | public String getAccountName() {
method setAccountName (line 185) | public SFLoginInput setAccountName(String accountName) {
method getLoginTimeout (line 190) | public int getLoginTimeout() {
method setLoginTimeout (line 196) | SFLoginInput setLoginTimeout(int loginTimeout) {
method getRetryTimeout (line 205) | int getRetryTimeout() {
method setRetryTimeout (line 209) | SFLoginInput setRetryTimeout(int retryTimeout) {
method getAuthTimeout (line 214) | public int getAuthTimeout() {
method setAuthTimeout (line 218) | SFLoginInput setAuthTimeout(int authTimeout) {
method getUserName (line 223) | public String getUserName() {
method setUserName (line 227) | SFLoginInput setUserName(String userName) {
method getPassword (line 232) | public String getPassword() {
method setPassword (line 236) | public SFLoginInput setPassword(String password) {
method getPasscode (line 241) | String getPasscode() {
method setPasscode (line 245) | SFLoginInput setPasscode(String passcode) {
method getToken (line 250) | public String getToken() {
method setToken (line 254) | public SFLoginInput setToken(String token) {
method getConnectionTimeoutInMillis (line 259) | int getConnectionTimeoutInMillis() {
method setConnectionTimeout (line 263) | SFLoginInput setConnectionTimeout(Duration connectionTimeout) {
method getSocketTimeoutInMillis (line 268) | public int getSocketTimeoutInMillis() {
method setSocketTimeout (line 272) | public SFLoginInput setSocketTimeout(Duration socketTimeout) {
method isPasscodeInPassword (line 277) | boolean isPasscodeInPassword() {
method setPasscodeInPassword (line 281) | SFLoginInput setPasscodeInPassword(boolean passcodeInPassword) {
method getAppId (line 286) | String getAppId() {
method setAppId (line 290) | SFLoginInput setAppId(String appId) {
method getAppVersion (line 295) | String getAppVersion() {
method setAppVersion (line 299) | SFLoginInput setAppVersion(String appVersion) {
method getSessionToken (line 304) | public String getSessionToken() {
method setSessionToken (line 308) | public SFLoginInput setSessionToken(String sessionToken) {
method getMasterToken (line 313) | String getMasterToken() {
method setMasterToken (line 317) | SFLoginInput setMasterToken(String masterToken) {
method getIdToken (line 322) | String getIdToken() {
method setIdToken (line 326) | SFLoginInput setIdToken(String idToken) {
method getMfaToken (line 331) | String getMfaToken() {
method setMfaToken (line 335) | SFLoginInput setMfaToken(String mfaToken) {
method getOauthAccessToken (line 340) | String getOauthAccessToken() {
method setOauthAccessToken (line 344) | SFLoginInput setOauthAccessToken(String oauthAccessToken) {
method getOauthRefreshToken (line 349) | public String getOauthRefreshToken() {
method setOauthRefreshToken (line 353) | SFLoginInput setOauthRefreshToken(String oauthRefreshToken) {
method getWorkloadIdentityProvider (line 358) | String getWorkloadIdentityProvider() {
method setWorkloadIdentityProvider (line 362) | SFLoginInput setWorkloadIdentityProvider(String workloadIdentityProvid...
method getDPoPPublicKey (line 367) | public String getDPoPPublicKey() {
method setDPoPPublicKey (line 371) | SFLoginInput setDPoPPublicKey(String dpopPublicKey) {
method isDPoPEnabled (line 376) | public boolean isDPoPEnabled() {
method setDPoPEnabled (line 381) | public void setDPoPEnabled(boolean dpopEnabled) {
method getSessionParameters (line 385) | Map<String, Object> getSessionParameters() {
method setSessionParameters (line 389) | SFLoginInput setSessionParameters(Map<String, Object> sessionParameter...
method getPrivateKey (line 394) | PrivateKey getPrivateKey() {
method setPrivateKey (line 398) | SFLoginInput setPrivateKey(PrivateKey privateKey) {
method getPrivateKeyBase64 (line 403) | String getPrivateKeyBase64() {
method setPrivateKeyBase64 (line 407) | SFLoginInput setPrivateKeyBase64(String privateKeyBase64) {
method setPrivateKeyFile (line 412) | SFLoginInput setPrivateKeyFile(String privateKeyFile) {
method setPrivateKeyPwd (line 417) | SFLoginInput setPrivateKeyPwd(String privateKeyPwd) {
method getPrivateKeyFile (line 422) | String getPrivateKeyFile() {
method getPrivateKeyPwd (line 426) | String getPrivateKeyPwd() {
method isPrivateKeyProvided (line 430) | boolean isPrivateKeyProvided() {
method getApplication (line 436) | public String getApplication() {
method setApplication (line 440) | public SFLoginInput setApplication(String application) {
method getServiceName (line 445) | String getServiceName() {
method setServiceName (line 449) | SFLoginInput setServiceName(String serviceName) {
method getOCSPMode (line 454) | OCSPMode getOCSPMode() {
method setOCSPMode (line 458) | SFLoginInput setOCSPMode(OCSPMode ocspMode) {
method getHttpClientSettingsKey (line 463) | public HttpClientSettingsKey getHttpClientSettingsKey() {
method setHttpClientSettingsKey (line 467) | public SFLoginInput setHttpClientSettingsKey(HttpClientSettingsKey key) {
method getInFlightCtx (line 473) | String getInFlightCtx() {
method setInFlightCtx (line 478) | SFLoginInput setInFlightCtx(String inFlightCtx) {
method getDisableSamlURLCheck (line 483) | boolean getDisableSamlURLCheck() {
method setDisableSamlURLCheck (line 487) | SFLoginInput setDisableSamlURLCheck(boolean disableSamlURLCheck) {
method getRedirectUriPort (line 492) | public int getRedirectUriPort() {
method setRedirectUriPort (line 496) | public SFLoginInput setRedirectUriPort(int redirectUriPort) {
method getClientId (line 501) | public String getClientId() {
method setClientId (line 505) | public SFLoginInput setClientId(String clientId) {
method getClientSecret (line 510) | public String getClientSecret() {
method setClientSecret (line 514) | public SFLoginInput setClientSecret(String clientSecret) {
method getAdditionalHttpHeadersForSnowsight (line 519) | Map<String, String> getAdditionalHttpHeadersForSnowsight() {
method setAdditionalHttpHeadersForSnowsight (line 532) | public SFLoginInput setAdditionalHttpHeadersForSnowsight(
method getBooleanValue (line 538) | static boolean getBooleanValue(Object v) {
method getHostFromServerUrl (line 550) | String getHostFromServerUrl() throws SFException {
method isEnableClientStoreTemporaryCredential (line 565) | boolean isEnableClientStoreTemporaryCredential() {
method setEnableClientStoreTemporaryCredential (line 569) | SFLoginInput setEnableClientStoreTemporaryCredential(
method isEnableClientRequestMfaToken (line 575) | boolean isEnableClientRequestMfaToken() {
method setEnableClientRequestMfaToken (line 579) | SFLoginInput setEnableCl
Condensed preview — 1042 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,248K chars).
[
{
"path": ".cursor/skills/graphite-pr-workflow/SKILL.md",
"chars": 5362,
"preview": "---\nname: graphite-pr-workflow\ndescription: Create branches, commits, and pull requests using Graphite CLI (gt) for the "
},
{
"path": ".github/CODEOWNERS",
"chars": 220,
"preview": "* @snowflakedb/Client\n/src/main/java/net/snowflake/client/core/crl/** @snowflakedb/pki-oversight @snowflakedb/Client\n/sr"
},
{
"path": ".github/ISSUE_TEMPLATE/BUG_REPORT.md",
"chars": 1108,
"preview": "---\nname: Bug Report 🐞\nabout: Something isn't working as expected? Here is the right place to report.\nlabels: bug\n---\n\n:"
},
{
"path": ".github/ISSUE_TEMPLATE/FEATURE_REQUEST.md",
"chars": 451,
"preview": "---\nname: Feature Request 💡\nabout: Suggest a new idea for the project.\nlabels: feature\n---\n\n<!--\nIf you need urgent assi"
},
{
"path": ".github/pull_request_template.md",
"chars": 1356,
"preview": "# Overview\n\nSNOW-XXXXX\n\n## Pre-review self checklist\n- [ ] PR branch is updated with all the changes from `master` branc"
},
{
"path": ".github/repo_meta.yaml",
"chars": 1090,
"preview": "\n# point_of_contact: the owner of this repository, can be a GitHub user or GitHub team\npoint_of_contact: @snowflakedb/cl"
},
{
"path": ".github/workflows/build-test.yml",
"chars": 18789,
"preview": "name: Build and Test\n\non:\n push:\n branches:\n - master\n tags:\n - v*\n pull_reque"
},
{
"path": ".github/workflows/changelog.yml",
"chars": 589,
"preview": "name: Changelog Check\npermissions:\n contents: read\n\non:\n pull_request:\n types: [opened, synchronize, labeled, unlab"
},
{
"path": ".github/workflows/check-style.yml",
"chars": 354,
"preview": "name: Check Style\n\non:\n pull_request:\n branches:\n - master\njobs:\n check-style:\n name: Che"
},
{
"path": ".github/workflows/cla_bot.yml",
"chars": 1080,
"preview": "name: \"CLA Assistant\"\non:\n issue_comment:\n types: [created]\n pull_request_target:\n types: [opened,closed,synchro"
},
{
"path": ".github/workflows/jira_close.yml",
"chars": 1568,
"preview": "name: Jira closure\n\non:\n issues:\n types: [closed, deleted]\n\njobs:\n close-issue:\n runs-on: ubuntu-latest\n step"
},
{
"path": ".github/workflows/jira_comment.yml",
"chars": 977,
"preview": "name: Jira comment\n\non:\n issue_comment:\n types: [created]\n\njobs:\n comment-issue:\n runs-on: ubuntu-latest\n ste"
},
{
"path": ".github/workflows/jira_issue.yml",
"chars": 3736,
"preview": "name: Jira creation\n\non:\n issues:\n types: [opened]\n issue_comment:\n types: [created]\n\njobs:\n create-issue:\n "
},
{
"path": ".github/workflows/semgrep.yml",
"chars": 283,
"preview": "---\nname: Run semgrep checks\n\non:\n pull_request:\n branches: [master]\n\npermissions:\n contents: read\n\njobs:\n run-sem"
},
{
"path": ".github/workflows/snyk-issue.yml",
"chars": 865,
"preview": "name: Snyk Issue\n\non:\n schedule:\n - cron: '* */12 * * *'\n workflow_dispatch:\n\npermissions:\n contents: read\n issue"
},
{
"path": ".github/workflows/snyk-pr.yml",
"chars": 947,
"preview": "name: snyk-pr\non:\n pull_request:\n branches:\n - master\n\npermissions:\n contents: read\n issues: write\n pull-req"
},
{
"path": ".github/workflows/snyk-scan.yml",
"chars": 5116,
"preview": "name: Snyk Scan\n\non:\n pull_request:\n branches:\n - master\n schedule:\n - cron: '0 6 * * 1'\n workflow_dispatc"
},
{
"path": ".gitignore",
"chars": 1372,
"preview": "# Compiled source #\n###################\n*.com\n*.class\n*.dll\n*.exe\n*.o\n*.so\n\n# Exception: Keep minicore native libraries\n"
},
{
"path": ".mvn/wrapper/maven-wrapper.properties",
"chars": 1084,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE f"
},
{
"path": ".pre-commit-config.yaml",
"chars": 109,
"preview": "repos:\n- repo: git@github.com:snowflakedb/casec_precommit.git\n rev: v1.35.5\n hooks:\n - id: secret-scanner\n"
},
{
"path": "CHANGELOG.md",
"chars": 14244,
"preview": "#### For all official JDBC Release Notes please refer to https://docs.snowflake.com/en/release-notes/clients-drivers/jdb"
},
{
"path": "FIPS/.gitignore",
"chars": 72,
"preview": ".idea/\nlib/\ntarget/\ndependency-reduced-pom.xml\ngenerated_public_pom.xml\n"
},
{
"path": "FIPS/pom.xml",
"chars": 42845,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "FIPS/public_pom.xml",
"chars": 2315,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "FIPS/scripts/check_content.sh",
"chars": 783,
"preview": "#!/bin/bash -e\n\n# scripts used to check if all dependencies are shaded into snowflake internal path\n\nset -o pipefail\n\nDI"
},
{
"path": "FIPS/src/test/java/net/snowflake/client/AbstractDriverIT.java",
"chars": 14262,
"preview": "package net.snowflake.client;\n\nimport com.google.common.base.Strings;\n\nimport java.net.URL;\nimport java.sql.Connection;\n"
},
{
"path": "FIPS/src/test/java/net/snowflake/client/DontRunOnGCP.java",
"chars": 443,
"preview": "package net.snowflake.client;\n\nimport java.lang.annotation.ElementType;\nimport java.lang.annotation.Retention;\nimport ja"
},
{
"path": "FIPS/src/test/java/net/snowflake/client/DontRunOnGithubActions.java",
"chars": 444,
"preview": "package net.snowflake.client;\n\nimport java.lang.annotation.ElementType;\nimport java.lang.annotation.Retention;\nimport ja"
},
{
"path": "FIPS/src/test/java/net/snowflake/client/TestUtil.java",
"chars": 1936,
"preview": "package net.snowflake.client;\n\nimport net.snowflake.client.internal.core.SFException;\nimport net.snowflake.client.intern"
},
{
"path": "FIPS/src/test/java/net/snowflake/client/category/FipsTestSuite.java",
"chars": 673,
"preview": "package net.snowflake.client.category;\n\nimport org.junit.platform.suite.api.IncludeTags;\nimport java.lang.annotation.Ele"
},
{
"path": "FIPS/src/test/java/net/snowflake/client/jdbc/ConnectionFipsIT.java",
"chars": 15966,
"preview": "package net.snowflake.client.jdbc;\n\nimport static org.junit.jupiter.api.Assertions.*;\n\nimport java.net.URL;\nimport java."
},
{
"path": "Jenkinsfile",
"chars": 4742,
"preview": "@Library('pipeline-utils')\nimport com.snowflake.DevEnvUtils\nimport groovy.json.JsonOutput\n\nclass JdbcJobDefinition {\n S"
},
{
"path": "LICENSE.txt",
"chars": 11365,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.rst",
"chars": 8288,
"preview": "Snowflake JDBC Driver\n*********************\n\n.. image:: https://github.com/snowflakedb/snowflake-jdbc/workflows/Build%20"
},
{
"path": "SECURITY.md",
"chars": 307,
"preview": "# Security Policy\n\n\nPlease refer to the Snowflake [HackerOne program](https://hackerone.com/snowflake?type=team) for our"
},
{
"path": "TestOnly/.gitignore",
"chars": 15,
"preview": "target/\n.idea/\n"
},
{
"path": "TestOnly/README.rst",
"chars": 921,
"preview": "Test Only Maven Project\n***********************\n\nThis directory includes a maven project to run the Snowflake JDBC tests"
},
{
"path": "TestOnly/pom.xml",
"chars": 19520,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "ci/_init.sh",
"chars": 2935,
"preview": "#!/usr/local/bin/env bash\nset -e\n\nexport PLATFORM=$(echo $(uname) | tr '[:upper:]' '[:lower:]')\nexport INTERNAL_REPO=art"
},
{
"path": "ci/build.sh",
"chars": 204,
"preview": "#!/usr/bin/env bash\nset -e\n\n#\n# Build JDBC driver\n#\nset -o pipefail\nTHIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" &"
},
{
"path": "ci/container/build_component.sh",
"chars": 467,
"preview": "#!/bin/bash -e\n#\n# Build JDBC driver\n#\nset -o pipefail\nTHIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\nJDBC"
},
{
"path": "ci/container/change_snowflake_test_pwd.py",
"chars": 862,
"preview": "#!/usr/bin/env python\n#\n# Set a complex password for test user snowman\n#\n\nimport os\nimport sys\nimport snowflake.connecto"
},
{
"path": "ci/container/create_schema.py",
"chars": 380,
"preview": "#!/usr/bin/env python\n#\n# Create test schema\n#\nimport os\nimport sys\nimport snowflake.connector\n\nimport sf_test_utils\n\nte"
},
{
"path": "ci/container/download_artifact.sh",
"chars": 1065,
"preview": "#!/bin/bash -e\n#\n# Download Artifact\n#\nset -o pipefail\nTHIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\nJDBC"
},
{
"path": "ci/container/drop_schema.py",
"chars": 377,
"preview": "#!/usr/bin/env python\n#\n# Create test schema\n#\nimport os\nimport sys\nimport snowflake.connector\n\nimport sf_test_utils\n\nte"
},
{
"path": "ci/container/hang_webserver.py",
"chars": 1849,
"preview": "#!/usr/bin/env python3\nimport sys\nfrom http.server import BaseHTTPRequestHandler,HTTPServer\nfrom socketserver import Thr"
},
{
"path": "ci/container/sf_test_utils.py",
"chars": 2530,
"preview": "#!/usr/bin/env python\n#\n# Snowflake test utils\n#\nimport os\nimport sys\n\ndef get_test_schema():\n return os.getenv(\"TARG"
},
{
"path": "ci/container/test_authentication.sh",
"chars": 860,
"preview": "#!/bin/bash -e\n\nset -o pipefail\n\nexport WORKSPACE=${WORKSPACE:-/mnt/workspace}\nexport SOURCE_ROOT=${SOURCE_ROOT:-/mnt/ho"
},
{
"path": "ci/container/test_component.sh",
"chars": 4892,
"preview": "#!/bin/bash -e\n#\n# Test JDBC for Linux/MAC\n#\nset -o pipefail\nTHIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )"
},
{
"path": "ci/container/upload_artifact.sh",
"chars": 1510,
"preview": "#!/bin/bash -e\n#\n# Upload jar files to S3\n#\nset -o pipefail\nTHIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\""
},
{
"path": "ci/image/.gitignore",
"chars": 27,
"preview": "pom.xml\ndependencies/\n*.jar"
},
{
"path": "ci/image/Dockerfile.jdbc-rockylinux-openjdk-test",
"chars": 3634,
"preview": "FROM rockylinux:9 AS jdbc-rockylinux-openjdk-base\n\n# update OS\nRUN dnf -y update && \\\n dnf -y install epel-release\n\n#"
},
{
"path": "ci/image/Dockerfile.jdbc-rockylinux8-openjdk-test",
"chars": 3648,
"preview": "FROM rockylinux:8 AS jdbc-rockylinux8-openjdk-base\n\n# update OS\nRUN dnf -y update && \\\n dnf -y install epel-release\n\n"
},
{
"path": "ci/image/build.sh",
"chars": 687,
"preview": "#!/usr/bin/env bash\nset -e\n#\n# Build Docker images\n#\nset -o pipefail\nTHIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" "
},
{
"path": "ci/image/scripts/aws.sh",
"chars": 55,
"preview": "#!/bin/bash\nsource /opt/rh/rh-python36/enable\naws \"$@\"\n"
},
{
"path": "ci/image/scripts/entrypoint.sh",
"chars": 284,
"preview": "#!/bin/bash -x\n# Add local user\n# Either use the LOCAL_USER_ID if passed in at runtime or\n# fallback\n\nUSER_ID=${LOCAL_US"
},
{
"path": "ci/image/scripts/git.sh",
"chars": 52,
"preview": "#!/bin/bash\nsource /opt/rh/rh-git29/enable\ngit \"$@\"\n"
},
{
"path": "ci/image/scripts/npmrc",
"chars": 75,
"preview": "registry=https://nexus.int.snowflakecomputing.com/repository/sf_npm_proxy/\n"
},
{
"path": "ci/image/scripts/pip.sh",
"chars": 56,
"preview": "#!/bin/bash\n\nsource /opt/rh/rh-python36/enable\npip \"$@\"\n"
},
{
"path": "ci/image/scripts/python3.6.sh",
"chars": 62,
"preview": "#!/bin/bash\n\nsource /opt/rh/rh-python36/enable\npython3.6 \"$@\"\n"
},
{
"path": "ci/image/update.sh",
"chars": 944,
"preview": "#!/usr/bin/env bash\nset -e\n\n#\n# Build Docker images\n#\nset -o pipefail\nTHIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\""
},
{
"path": "ci/log_analyze_setup.sh",
"chars": 2939,
"preview": "#!/bin/bash -e\n#\n# preparation for log analyze\n#\n\n# Note, this need to be consistent with docker bind parameter. Might n"
},
{
"path": "ci/scripts/check_content.sh",
"chars": 1110,
"preview": "#!/bin/bash -e\n\n# scripts used to check if all dependency is shaded into snowflake internal path\n\npackage_modifier=$1\n\ns"
},
{
"path": "ci/scripts/check_no_raw_system_calls.sh",
"chars": 962,
"preview": "#!/usr/bin/env bash\n#\n# Architectural guard: ensures no raw System.getProperty(), System.getenv(),\n# or System.setProper"
},
{
"path": "ci/scripts/login_docker.sh",
"chars": 331,
"preview": "#!/bin/bash -e\n#\n# Login the Docker Hub\n#\necho \"[INFO] Login the Docker Hub\"\nif [[ -z \"$DOCKER_HUB_USER\" ]] || [[ -z \"$D"
},
{
"path": "ci/scripts/set_git_info.sh",
"chars": 1632,
"preview": "#!/bin/bash -e\n#\n# Set GIT info\n#\nif [[ -z \"$GITHUB_ACTIONS\" ]]; then\n #\n # set Jenkins GIT parameters propagated "
},
{
"path": "ci/scripts/setup_gpg.sh",
"chars": 401,
"preview": "#!/bin/bash\n# GPG setup script for creating unique GPG home directory\nsetup_gpg_home() {\n # Create unique GPG home dire"
},
{
"path": "ci/test.sh",
"chars": 1985,
"preview": "#!/bin/bash -e\n#\n# Test JDBC\n#\nset -o pipefail\nTHIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\nJDBC_ROOT=\"$"
},
{
"path": "ci/test_authentication.sh",
"chars": 1005,
"preview": "#!/bin/bash -e\n\nset -o pipefail\nexport THIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\nsource \"$THIS_DIR/sc"
},
{
"path": "ci/test_mac.sh",
"chars": 442,
"preview": "#!/bin/bash -e\n#\n# Test JDBC for Mac\n#\n\necho \"DOWNLOADED\"\nset -o pipefail\nTHIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}"
},
{
"path": "ci/test_revocation.sh",
"chars": 3023,
"preview": "#!/bin/bash -e\n#\n# Test certificate revocation validation using the revocation-validation framework.\n#\n\nset -o pipefail\n"
},
{
"path": "ci/test_wif.sh",
"chars": 5815,
"preview": "#!/bin/bash -e\n\nset -o pipefail\n\nexport THIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\nexport RSA_KEY_PATH"
},
{
"path": "ci/test_windows.bat",
"chars": 6354,
"preview": "REM \nREM Tests JDBC Driver on Windows\nREM\nsetlocal\nsetlocal EnableDelayedExpansion\npython -m venv venv\ncall venv\\scripts"
},
{
"path": "ci/wif/aws-lambda/README.md",
"chars": 322,
"preview": "# AWS Lambda Function for WIF E2E Testing\n\n## Deployment Steps\n1. Install AWS CLI\n2. Configure AWS credentials: `aws con"
},
{
"path": "ci/wif/aws-lambda/pom.xml",
"chars": 4977,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/"
},
{
"path": "ci/wif/aws-lambda/src/main/java/com/snowflake/wif/aws/WifLambdaFunctionE2e.java",
"chars": 4576,
"preview": "package com.snowflake.wif.aws;\n\nimport com.amazonaws.services.lambda.runtime.Context;\nimport com.amazonaws.services.lamb"
},
{
"path": "ci/wif/aws-lambda/test.sh",
"chars": 3089,
"preview": "#!/bin/bash -e\n\nset -o pipefail\n\nTHIS_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\n\nrun_aws_function() {\n if"
},
{
"path": "ci/wif/azure-function/Dockerfile",
"chars": 922,
"preview": "# Build stage\nFROM --platform=linux/amd64 mcr.microsoft.com/azure-functions/java:4-java17-build AS build\n\nCOPY azure-fun"
},
{
"path": "ci/wif/azure-function/README.md",
"chars": 166,
"preview": "# Azure Function for WIF E2E Testing\n\n## Deployment Steps\n1. Install Azure CLI\n2. Authenticate: `az login`, login in bro"
},
{
"path": "ci/wif/azure-function/host.json",
"chars": 348,
"preview": "{\n \"version\": \"2.0\",\n \"extensionBundle\": {\n \"id\": \"Microsoft.Azure.Functions.ExtensionBundle\",\n \"version\": \"[4.0"
},
{
"path": "ci/wif/azure-function/pom.xml",
"chars": 4477,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/"
},
{
"path": "ci/wif/azure-function/src/main/java/com/snowflake/wif/azure/WifAzureFunctionE2e.java",
"chars": 2751,
"preview": "package com.snowflake.wif.azure;\n\nimport com.microsoft.azure.functions.*;\nimport com.microsoft.azure.functions.annotatio"
},
{
"path": "ci/wif/azure-function/test.sh",
"chars": 753,
"preview": "#!/bin/bash -e\n\nset -o pipefail\n\nrun_azure_function() {\n echo \"Running Azure Function E2E test...\"\n \n local url=\"${AZ"
},
{
"path": "ci/wif/gcp-function/README.md",
"chars": 264,
"preview": "# GCP Cloud Function for WIF E2E Testing\n\n## Deployment Steps\n1. Install Google Cloud SDK.\n2. Authenticate: `gcloud auth"
},
{
"path": "ci/wif/gcp-function/pom.xml",
"chars": 5320,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/"
},
{
"path": "ci/wif/gcp-function/src/main/java/com/snowflake/wif/gcp/WifGcpFunctionE2e.java",
"chars": 6433,
"preview": "package com.snowflake.wif.gcp;\n\nimport com.google.cloud.functions.HttpFunction;\nimport com.google.cloud.functions.HttpRe"
},
{
"path": "ci/wif/gcp-function/test.sh",
"chars": 2361,
"preview": "#!/bin/bash -e\n\nset -o pipefail\n\ngenerate_gcp_jwt() {\n # For ID token request, aud should be Google's token endpoint, t"
},
{
"path": "ci/wif/parameters/rsa_wif_aws_azure.gpg",
"chars": 209,
"preview": "\r\u0004\t\u0003\b髃6K\u00015%܇ټ飐\u000f|eRk]n\u000fc-TloB,\u0011ܐ͒R7B]<ER-|\u00044u'K2<\u0013:BC&fԳeX%i9\u00060@LG\u0011$a\u0004hOnTejB@\u001a)~Nto&\u0003Ȍ\u0012\u0013ru/i\u001cuq%0\u0012!]ݮ2-lw\u0018`!ʚgF߬\u0019i\u0010DDĘX"
},
{
"path": "ci/wif/parameters/rsa_wif_gcp.gpg",
"chars": 209,
"preview": "\r\u0004\t\u0003\b髃6K\u00015%܇ټ飐\u000f|eRk]n\u000fc-TloB,\u0011ܐ͒R7B]<ER-|\u00044u'K2<\u0013:BC&fԳeX%i9\u00060@LG\u0011$a\u0004hOnTejB@\u001a)~Nto&\u0003Ȍ\u0012\u0013ru/i\u001cuq%0\u0012!]ݮ2-lw\u0018`!ʚgF߬\u0019i\u0010DDĘX"
},
{
"path": "ci/wif/shared/com/snowflake/wif/common/WifTestHelper.java",
"chars": 20637,
"preview": "package com.snowflake.wif.common;\n\nimport java.io.BufferedReader;\nimport java.io.File;\nimport java.io.FileOutputStream;\n"
},
{
"path": "ci/wif/test_wif.sh",
"chars": 630,
"preview": "#!/bin/bash -e\n\nset -o pipefail\n\nexport SF_ENABLE_EXPERIMENTAL_AUTHENTICATION=true\n\n./mvnw -Dmaven.repo.local=/tmp/maven"
},
{
"path": "codecov/codecov.SHA256SUM",
"chars": 73,
"preview": "0c9b79119b0d8dbe7aaf460dc3bd7c3094ceda06e5ae32b0d11a8ff56e2cc5c5 codecov"
},
{
"path": "codecov/codecov.SHA256SUM.sig",
"chars": 833,
"preview": "-----BEGIN PGP SIGNATURE-----\n\niQIzBAABCgAdFiEEJwNOf9uFDgu8LGL/gGuyiu13mGkFAmSRyEgACgkQgGuyiu13\nmGnHdQ//WMx0TS7fJlgo04LC"
},
{
"path": "codecov.yml",
"chars": 45,
"preview": "parsers:\n jacoco:\n partials_as_hits: true"
},
{
"path": "dependencies/Readme.md",
"chars": 157,
"preview": "Arrow dependencies are built from internal branch `upgradeTo17.0.0-v3`. This build was applied the AIX fix and the custo"
},
{
"path": "dependencies/arrow-memory-17.0.0.pom",
"chars": 1426,
"preview": "<?xml version=\"1.0\"?>\n<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor\n license agre"
},
{
"path": "fat-jar-test-app/pom.xml",
"chars": 5560,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n xmlns:xsi=\"http://www"
},
{
"path": "fat-jar-test-app/run.sh",
"chars": 2795,
"preview": "#!/bin/bash -ex\n#\n# Test fat jar by running a sample app that connects to Snowflake\n#\nset -o pipefail\nTHIS_DIR=\"$( cd \"$"
},
{
"path": "fat-jar-test-app/src/main/fips-java/net/snowflake/FipsInitializer.java",
"chars": 4429,
"preview": "package net.snowflake;\n\nimport java.security.Provider;\nimport java.security.Security;\nimport java.util.Arrays;\nimport ja"
},
{
"path": "fat-jar-test-app/src/main/java/net/snowflake/FatJarTestApp.java",
"chars": 6364,
"preview": "package net.snowflake;\n\nimport java.io.File;\nimport java.io.InputStream;\nimport java.net.URISyntaxException;\nimport java"
},
{
"path": "fat-jar-test-app/src/main/resources/logback.xml",
"chars": 644,
"preview": "<configuration>\n <appender name=\"STDOUT\" class=\"ch.qos.logback.core.ConsoleAppender\">\n <encoder>\n <"
},
{
"path": "fat-jar-test-app/src/main/resources/logging.properties",
"chars": 234,
"preview": "handlers = java.util.logging.FileHandler\n.level = FINE\n\njava.util.logging.FileHandler.pattern = %t/fat-jar-test.log\njava"
},
{
"path": "fat-jar-test-app/src/main/resources/test.csv",
"chars": 11,
"preview": "abc,1\ndef,2"
},
{
"path": "linkage-checker-exclusion-rules.xml",
"chars": 7979,
"preview": "<LinkageCheckerFilter>\n <LinkageError>\n <Target><Package name=\"org.graalvm.nativeimage\"/></Target>\n <So"
},
{
"path": "mvnw",
"chars": 11289,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "mvnw.cmd",
"chars": 7796,
"preview": "@REM ----------------------------------------------------------------------------\r\n@REM Licensed to the Apache Software "
},
{
"path": "output.json",
"chars": 0,
"preview": ""
},
{
"path": "parent-pom.xml",
"chars": 35788,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "pom.xml",
"chars": 68006,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "prepareNewVersion.sh",
"chars": 600,
"preview": "#!/bin/bash -e\n\nif [[ -z \"$1\" ]]; then\n echo First argument must be new version to set\n exit 1\nfi\n\nversion=$1\nvers"
},
{
"path": "prober/Dockerfile",
"chars": 3537,
"preview": "FROM ubuntu:25.10\n\n# boilerplate labels required by validation when pushing to ACR, ECR & GCR\nLABEL org.opencontainers.i"
},
{
"path": "prober/Jenkinsfile.groovy",
"chars": 1909,
"preview": "pipeline {\n agent { label 'regular-memory-node' }\n\n options {\n ansiColor('xterm')\n timestamps()\n "
},
{
"path": "prober/entrypoint.sh",
"chars": 1337,
"preview": "#!/bin/bash\n\n# Exit immediately if a command exits with a non-zero status\nset -e\n\nJAVA_VERSION_ID=\"\"\nJDBC_VERSION=\"\"\n\nif"
},
{
"path": "prober/src/main/java/com/snowflake/client/jdbc/prober/Prober.java",
"chars": 17407,
"preview": "package com.snowflake.client.jdbc.prober;\n\nimport net.snowflake.client.api.connection.SnowflakeConnection;\n\nimport java."
},
{
"path": "public_pom.xml",
"chars": 1724,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "settings.json",
"chars": 0,
"preview": ""
},
{
"path": "src/main/java/net/snowflake/client/api/auth/AuthenticatorType.java",
"chars": 1676,
"preview": "package net.snowflake.client.api.auth;\n\n/**\n * Enumeration of authentication methods supported by the Snowflake JDBC dri"
},
{
"path": "src/main/java/net/snowflake/client/api/connection/DownloadStreamConfig.java",
"chars": 3089,
"preview": "package net.snowflake.client.api.connection;\n\n/**\n * Optional configuration for downloading files from a Snowflake stage"
},
{
"path": "src/main/java/net/snowflake/client/api/connection/SnowflakeConnection.java",
"chars": 6245,
"preview": "package net.snowflake.client.api.connection;\n\nimport java.io.InputStream;\nimport java.sql.ResultSet;\nimport java.sql.SQL"
},
{
"path": "src/main/java/net/snowflake/client/api/connection/SnowflakeDatabaseMetaData.java",
"chars": 2790,
"preview": "package net.snowflake.client.api.connection;\n\nimport java.sql.DatabaseMetaData;\nimport java.sql.ResultSet;\nimport java.s"
},
{
"path": "src/main/java/net/snowflake/client/api/connection/UploadStreamConfig.java",
"chars": 4526,
"preview": "package net.snowflake.client.api.connection;\n\n/**\n * Optional configuration for uploading data to a Snowflake stage from"
},
{
"path": "src/main/java/net/snowflake/client/api/datasource/SnowflakeDataSource.java",
"chars": 6085,
"preview": "package net.snowflake.client.api.datasource;\n\nimport java.security.PrivateKey;\nimport java.util.List;\nimport java.util.P"
},
{
"path": "src/main/java/net/snowflake/client/api/datasource/SnowflakeDataSourceFactory.java",
"chars": 1509,
"preview": "package net.snowflake.client.api.datasource;\n\nimport net.snowflake.client.internal.api.implementation.datasource.Snowfla"
},
{
"path": "src/main/java/net/snowflake/client/api/driver/SnowflakeDriver.java",
"chars": 4962,
"preview": "package net.snowflake.client.api.driver;\n\nimport java.sql.Connection;\nimport java.sql.Driver;\nimport java.sql.DriverMana"
},
{
"path": "src/main/java/net/snowflake/client/api/exception/ErrorCode.java",
"chars": 6385,
"preview": "package net.snowflake.client.api.exception;\n\nimport net.snowflake.common.core.SqlState;\n\n/** Internal JDBC driver error "
},
{
"path": "src/main/java/net/snowflake/client/api/exception/SnowflakeSQLException.java",
"chars": 5058,
"preview": "package net.snowflake.client.api.exception;\n\nimport java.sql.SQLException;\nimport net.snowflake.client.internal.core.SFE"
},
{
"path": "src/main/java/net/snowflake/client/api/http/HttpHeadersCustomizer.java",
"chars": 1645,
"preview": "package net.snowflake.client.api.http;\n\nimport java.util.List;\nimport java.util.Map;\n\n/**\n * Allows programmatic customi"
},
{
"path": "src/main/java/net/snowflake/client/api/loader/LoadResultListener.java",
"chars": 2176,
"preview": "package net.snowflake.client.api.loader;\n\n/** Callback API for processing errors and statistics of upload operation */\np"
},
{
"path": "src/main/java/net/snowflake/client/api/loader/Loader.java",
"chars": 2615,
"preview": "package net.snowflake.client.api.loader;\n\n/**\n * Bulk loader for Snowflake.\n *\n * <p>This interface extends {@link AutoC"
},
{
"path": "src/main/java/net/snowflake/client/api/loader/LoaderFactory.java",
"chars": 427,
"preview": "package net.snowflake.client.api.loader;\n\nimport java.sql.Connection;\nimport java.util.Map;\nimport net.snowflake.client."
},
{
"path": "src/main/java/net/snowflake/client/api/loader/LoaderProperty.java",
"chars": 2611,
"preview": "package net.snowflake.client.api.loader;\n\n/** Configuration parameters for Loader */\npublic enum LoaderProperty {\n tabl"
},
{
"path": "src/main/java/net/snowflake/client/api/loader/LoadingError.java",
"chars": 5132,
"preview": "package net.snowflake.client.api.loader;\n\nimport java.sql.ResultSet;\nimport java.sql.SQLException;\nimport java.util.Hash"
},
{
"path": "src/main/java/net/snowflake/client/api/loader/Operation.java",
"chars": 627,
"preview": "package net.snowflake.client.api.loader;\n\n/**\n * Operations supported by the Snowflake Loader API.\n *\n * <p>These operat"
},
{
"path": "src/main/java/net/snowflake/client/api/pooling/SnowflakeConnectionPoolDataSource.java",
"chars": 451,
"preview": "package net.snowflake.client.api.pooling;\n\nimport javax.sql.ConnectionPoolDataSource;\nimport net.snowflake.client.api.da"
},
{
"path": "src/main/java/net/snowflake/client/api/pooling/SnowflakeConnectionPoolDataSourceFactory.java",
"chars": 1434,
"preview": "package net.snowflake.client.api.pooling;\n\nimport net.snowflake.client.internal.api.implementation.pooling.SnowflakeConn"
},
{
"path": "src/main/java/net/snowflake/client/api/resultset/FieldMetadata.java",
"chars": 1615,
"preview": "package net.snowflake.client.api.resultset;\n\nimport java.util.List;\n\n/**\n * Metadata describing a field in a structured "
},
{
"path": "src/main/java/net/snowflake/client/api/resultset/QueryStatus.java",
"chars": 8847,
"preview": "package net.snowflake.client.api.resultset;\n\nimport java.util.Arrays;\n\n/**\n * Represents detailed status information for"
},
{
"path": "src/main/java/net/snowflake/client/api/resultset/SnowflakeAsyncResultSet.java",
"chars": 750,
"preview": "package net.snowflake.client.api.resultset;\n\nimport java.sql.SQLException;\n\n/** This interface defines Snowflake specifi"
},
{
"path": "src/main/java/net/snowflake/client/api/resultset/SnowflakeResultSet.java",
"chars": 2993,
"preview": "package net.snowflake.client.api.resultset;\n\nimport java.sql.SQLException;\nimport java.util.List;\nimport java.util.Map;\n"
},
{
"path": "src/main/java/net/snowflake/client/api/resultset/SnowflakeResultSetMetaData.java",
"chars": 1022,
"preview": "package net.snowflake.client.api.resultset;\n\nimport java.sql.SQLException;\nimport java.util.List;\n\npublic interface Snow"
},
{
"path": "src/main/java/net/snowflake/client/api/resultset/SnowflakeResultSetSerializable.java",
"chars": 2955,
"preview": "package net.snowflake.client.api.resultset;\n\nimport java.sql.ResultSet;\nimport java.sql.SQLException;\nimport java.util.P"
},
{
"path": "src/main/java/net/snowflake/client/api/resultset/SnowflakeType.java",
"chars": 3296,
"preview": "package net.snowflake.client.api.resultset;\n\n/**\n * Enumeration of Snowflake data types.\n *\n * <p>This enum represents t"
},
{
"path": "src/main/java/net/snowflake/client/api/statement/SnowflakePreparedStatement.java",
"chars": 1197,
"preview": "package net.snowflake.client.api.statement;\n\nimport java.math.BigInteger;\nimport java.sql.ResultSet;\nimport java.sql.SQL"
},
{
"path": "src/main/java/net/snowflake/client/api/statement/SnowflakeStatement.java",
"chars": 1608,
"preview": "package net.snowflake.client.api.statement;\n\nimport java.sql.ResultSet;\nimport java.sql.SQLException;\nimport java.util.L"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/connection/SnowflakeConnectionImpl.java",
"chars": 39297,
"preview": "package net.snowflake.client.internal.api.implementation.connection;\n\nimport static net.snowflake.client.api.exception.E"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/datasource/SnowflakeBasicDataSource.java",
"chars": 15782,
"preview": "package net.snowflake.client.internal.api.implementation.datasource;\n\nimport static net.snowflake.client.internal.jdbc.S"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/metadata/SnowflakeDatabaseMetaDataImpl.java",
"chars": 137544,
"preview": "package net.snowflake.client.internal.api.implementation.metadata;\n\nimport static net.snowflake.client.internal.jdbc.DBM"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/pooling/LogicalConnection.java",
"chars": 17657,
"preview": "package net.snowflake.client.internal.api.implementation.pooling;\n\nimport java.sql.Array;\nimport java.sql.Blob;\nimport j"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/pooling/SnowflakeConnectionPoolDataSourceImpl.java",
"chars": 891,
"preview": "package net.snowflake.client.internal.api.implementation.pooling;\n\nimport java.sql.Connection;\nimport java.sql.SQLExcept"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/pooling/SnowflakePooledConnection.java",
"chars": 3289,
"preview": "package net.snowflake.client.internal.api.implementation.pooling;\n\nimport java.sql.Connection;\nimport java.sql.SQLExcept"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/resultset/FieldMetadataImpl.java",
"chars": 2660,
"preview": "package net.snowflake.client.internal.api.implementation.resultset;\n\nimport java.util.ArrayList;\nimport java.util.List;\n"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/resultset/SnowflakeBaseResultSet.java",
"chars": 65916,
"preview": "package net.snowflake.client.internal.api.implementation.resultset;\n\nimport static net.snowflake.client.internal.jdbc.Sn"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/statement/SnowflakeCallableStatementImpl.java",
"chars": 27677,
"preview": "package net.snowflake.client.internal.api.implementation.statement;\n\nimport static net.snowflake.client.internal.jdbc.te"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/statement/SnowflakePreparedStatementImpl.java",
"chars": 46678,
"preview": "package net.snowflake.client.internal.api.implementation.statement;\n\nimport static net.snowflake.client.internal.jdbc.te"
},
{
"path": "src/main/java/net/snowflake/client/internal/api/implementation/statement/SnowflakeStatementImpl.java",
"chars": 44058,
"preview": "package net.snowflake.client.internal.api.implementation.statement;\n\nimport static net.snowflake.client.api.exception.Er"
},
{
"path": "src/main/java/net/snowflake/client/internal/common/core/SFBinary.java",
"chars": 7162,
"preview": "package net.snowflake.client.internal.common.core;\n\nimport java.util.Arrays;\nimport java.util.Objects;\nimport org.apache"
},
{
"path": "src/main/java/net/snowflake/client/internal/common/core/SFBinaryFormat.java",
"chars": 4395,
"preview": "package net.snowflake.client.internal.common.core;\n\nimport java.nio.ByteBuffer;\nimport java.nio.CharBuffer;\nimport java."
},
{
"path": "src/main/java/net/snowflake/client/internal/config/ConnectionParameters.java",
"chars": 398,
"preview": "package net.snowflake.client.internal.config;\n\nimport java.util.Properties;\n\npublic class ConnectionParameters {\n priva"
},
{
"path": "src/main/java/net/snowflake/client/internal/config/SFClientConfig.java",
"chars": 3142,
"preview": "package net.snowflake.client.internal.config;\n\nimport com.fasterxml.jackson.annotation.JsonAnySetter;\nimport com.fasterx"
},
{
"path": "src/main/java/net/snowflake/client/internal/config/SFClientConfigParser.java",
"chars": 7949,
"preview": "package net.snowflake.client.internal.config;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.systemGetE"
},
{
"path": "src/main/java/net/snowflake/client/internal/config/SFConnectionConfigParser.java",
"chars": 14354,
"preview": "package net.snowflake.client.internal.config;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.convertSys"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/ArrowSqlInput.java",
"chars": 9890,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.mapSFExcepti"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/AssertUtil.java",
"chars": 662,
"preview": "package net.snowflake.client.internal.core;\n\nimport net.snowflake.client.api.exception.ErrorCode;\n\npublic class AssertUt"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/AttributeEnhancingHttpRequestRetryHandler.java",
"chars": 1137,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.io.IOException;\nimport org.apache.http.impl.client.DefaultHttpR"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/BaseSqlInput.java",
"chars": 6246,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.mapSFExcepti"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/BasicEvent.java",
"chars": 1976,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.systemGetPro"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/CachedCredentialType.java",
"chars": 503,
"preview": "package net.snowflake.client.internal.core;\n\nenum CachedCredentialType {\n ID_TOKEN(\"ID_TOKEN\"),\n MFA_TOKEN(\"MFATOKEN\")"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/CancellationReason.java",
"chars": 121,
"preview": "package net.snowflake.client.internal.core;\n\npublic enum CancellationReason {\n UNKNOWN,\n CLIENT_REQUESTED,\n TIMEOUT\n}"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/ChunkDownloader.java",
"chars": 1049,
"preview": "package net.snowflake.client.internal.core;\n\nimport net.snowflake.client.api.exception.SnowflakeSQLException;\nimport net"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/ColumnTypeHelper.java",
"chars": 779,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.sql.Types;\nimport net.snowflake.client.api.resultset.SnowflakeT"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/Constants.java",
"chars": 3665,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.systemGetPro"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/CredentialManager.java",
"chars": 15689,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.isNullOrEmpt"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/DataConversionContext.java",
"chars": 1488,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.util.TimeZone;\nimport net.snowflake.client.internal.common.core"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/DefaultFileCacheManager.java",
"chars": 7255,
"preview": "package net.snowflake.client.internal.core;\n\nimport com.fasterxml.jackson.databind.JsonNode;\nimport com.fasterxml.jackso"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/DownloaderMetrics.java",
"chars": 875,
"preview": "package net.snowflake.client.internal.core;\n\n/** Metrics related to chunk downloader performance */\npublic class Downloa"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/Event.java",
"chars": 3320,
"preview": "package net.snowflake.client.internal.core;\n\nimport com.google.common.base.Preconditions;\nimport java.io.File;\nimport ja"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/EventHandler.java",
"chars": 13736,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.systemGetPro"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/EventUtil.java",
"chars": 2840,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.systemGetPro"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/FieldSchemaCreator.java",
"chars": 4689,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.sql.SQLException;\nimport java.sql.Types;\nimport java.util.Optio"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/FileCacheManager.java",
"chars": 395,
"preview": "package net.snowflake.client.internal.core;\n\nimport com.fasterxml.jackson.databind.JsonNode;\nimport java.io.File;\nimport"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/FileCacheManagerBuilder.java",
"chars": 5264,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.isWindows;\ni"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/FileCacheUtil.java",
"chars": 1599,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.core.FileUtil.isWritable;\nimpor"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/FileTypeDetector.java",
"chars": 417,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.io.IOException;\nimport java.nio.file.Path;\nimport org.apache.ti"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/FileUtil.java",
"chars": 8104,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.isNullOrEmpt"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HeaderCustomizerHttpRequestInterceptor.java",
"chars": 7624,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.io.IOException;\nimport java.util.ArrayList;\nimport java.util.Ha"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HeartbeatIntervalSelector.java",
"chars": 2529,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.util.Set;\n\n/**\n * Selects the best existing heartbeat interval "
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HeartbeatRegistry.java",
"chars": 14489,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.telemetry.InternalApiTelem"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HeartbeatThread.java",
"chars": 9054,
"preview": "package net.snowflake.client.internal.core;\n\nimport com.google.common.annotations.VisibleForTesting;\nimport java.time.Cl"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HttpClientSettingsKey.java",
"chars": 7707,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.isNullOrEmpt"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HttpExecutingContext.java",
"chars": 8263,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.util.concurrent.atomic.AtomicBoolean;\nimport net.snowflake.clie"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HttpExecutingContextBuilder.java",
"chars": 9525,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.util.concurrent.atomic.AtomicBoolean;\n\n/**\n * Builder class for"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HttpProtocol.java",
"chars": 258,
"preview": "package net.snowflake.client.internal.core;\n\npublic enum HttpProtocol {\n HTTP(\"http\"),\n\n HTTPS(\"https\");\n\n private fi"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HttpResponseContextDto.java",
"chars": 1392,
"preview": "package net.snowflake.client.internal.core;\n\nimport org.apache.http.client.methods.CloseableHttpResponse;\n\npublic class "
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HttpResponseWithHeaders.java",
"chars": 1125,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.util.Collections;\nimport java.util.Map;\n\n/**\n * Simple containe"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/HttpUtil.java",
"chars": 60349,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.jdbc.SnowflakeUtil.isNullOrEmpt"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/JsonSqlInput.java",
"chars": 12817,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.core.SFBaseResultSet.OBJECT_MAP"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/JsonSqlOutput.java",
"chars": 14120,
"preview": "package net.snowflake.client.internal.core;\n\nimport static net.snowflake.client.internal.core.FieldSchemaCreator.buildSc"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/MetaDataOfBinds.java",
"chars": 1340,
"preview": "package net.snowflake.client.internal.core;\n\nimport java.io.Serializable;\n\n/**\n * Class that creates constructor used fo"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/NoOpFileCacheManager.java",
"chars": 1148,
"preview": "package net.snowflake.client.internal.core;\n\nimport com.fasterxml.jackson.databind.JsonNode;\nimport java.io.File;\nimport"
},
{
"path": "src/main/java/net/snowflake/client/internal/core/OCSPMode.java",
"chars": 952,
"preview": "package net.snowflake.client.internal.core;\n\n/** OCSP mode */\npublic enum OCSPMode {\n /**\n * Fail closed, aka. hard f"
}
]
// ... and 842 more files (download for full content)
About this extraction
This page contains the full source code of the snowflakedb/snowflake-jdbc GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1042 files (87.1 MB), approximately 1.8M tokens, and a symbol index with 9696 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.