snowflake-connector-python 5.0.0b3__tar.gz → 5.0.0b4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/Cargo.lock +5 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/PKG-INFO +1 -1
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/protobuf/database_driver_v1.proto +43 -1
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/pyproject.toml +5 -1
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/Cargo.toml +14 -1
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/exports.def +2 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/connection.rs +198 -9
- snowflake_connector_python-5.0.0b4/sf_core/src/apis/database_driver_v1/get_objects.rs +1226 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/apis/database_driver_v1/like_pattern.rs +246 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/mod.rs +9 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/query.rs +2 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/result_set.rs +76 -20
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/statement.rs +30 -2
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/auth.rs +6 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/bin/spcs_probe.rs +144 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/error.rs +6 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/json_parser.rs +94 -11
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/mod.rs +5 -1
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/prefetch.rs +5 -1
- snowflake_connector_python-5.0.0b4/sf_core/src/compression.rs +177 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/config_manager.rs +193 -124
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/connection_config.rs +161 -8
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/param_registry.rs +128 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/resolver.rs +4 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/rest_parameters.rs +248 -9
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/cache.rs +95 -59
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/error.rs +6 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/validator.rs +2 -2
- snowflake_connector_python-5.0.0b4/sf_core/src/diagnostic/mod.rs +798 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/azure_transfer.rs +1829 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/file_manager/cloud_http.rs +103 -19
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/encryption.rs +558 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/file_manager/gcs_transfer.rs +173 -78
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/file_manager/mod.rs +600 -64
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/multipart.rs +366 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/file_manager/s3_transfer.rs +224 -37
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/file_manager/types.rs +164 -6
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/lib.rs +1 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/apis/database_driver_v1/converter.rs +23 -51
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/apis/database_driver_v1/mod.rs +78 -20
- snowflake_connector_python-5.0.0b4/sf_core/src/protobuf/c_api.rs +254 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/mod.rs +71 -1
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/client_credentials.rs +60 -6
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/query_response.rs +22 -12
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/mod.rs +17 -8
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/mod.rs +1 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/put_get.rs +46 -0
- snowflake_connector_python-5.0.0b4/sf_core/tests/common/mocks/query.rs +98 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/snowflake_test_client.rs +10 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/bridge.py +107 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/__init__.py +39 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_async.py +47 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_common.py +62 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_init.py +65 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_performance.py +50 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_sync.py +44 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/api_client/client_api.py +12 -4
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/binding_converters.py +198 -62
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/connection_config_mixin.py +4 -6
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/cursor/base.py +84 -28
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/decorators.py +51 -9
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp +217 -90
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +344 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.pyi +92 -7
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_services.py +33 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/telemetry.py +14 -4
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/write_pandas_operation.py +5 -1
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/cursor/_base.py +87 -32
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/connection_config.py +27 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/constants.py +7 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_base.py +98 -36
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/version.py +1 -1
- snowflake_connector_python-5.0.0b3/sf_core/src/compression.rs +0 -79
- snowflake_connector_python-5.0.0b3/sf_core/src/file_manager/azure_transfer.rs +0 -1048
- snowflake_connector_python-5.0.0b3/sf_core/src/file_manager/encryption.rs +0 -438
- snowflake_connector_python-5.0.0b3/sf_core/src/protobuf/c_api.rs +0 -115
- snowflake_connector_python-5.0.0b3/src/snowflake/connector/_internal/api_client/bridge.py +0 -48
- snowflake_connector_python-5.0.0b3/src/snowflake/connector/_internal/api_client/c_api.py +0 -187
- snowflake_connector_python-5.0.0b3/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +0 -340
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/.gitignore +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/README.md +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/build_common.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/error_trace/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/error_trace/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/error_trace_derive/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/error_trace_derive/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/hatch_build.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/Cargo.lock +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/README.md +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generator.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/helpers.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/java_generator.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/json_generator.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/python_generator.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/rust_generator.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/main.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/protobuf.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_generator/src/protoc_installer.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_utils/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/proto_utils/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/CHANGELOG.md +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/README.md +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/benches/prefetch_bench.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/build.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/alter_session_parser.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/async_query_registry.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/database.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/error.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/global_state.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/heartbeat.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/logout.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/multistatement.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/spcs_token.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/validation.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/arrow_utils.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/README.md +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/collect_chunk_data.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/param_defs_export.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/tls_client.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/arrow_parser.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/http_downloader.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/memory_budget.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/mock.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/compression_types.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/configured_redirect_uri.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/ini_loader.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/logging_config_loader.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/logout.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/param_store.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/path_resolver.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/retry.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/settings.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/toml_loader.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/certificate_parser.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/config.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/disk_tests.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/integration_test.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/worker.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/file_manager/path_expansion.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/fs_adapter.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/handle_manager.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/http/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/http/retry.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/callback_layer.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/error.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/log_manager.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/opentelemetry.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/perf_timing/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/perf_timing/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/apis/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/config_setting_ext.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/generated.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/query_types.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/refresh.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/async_exec.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/auth.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/error.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/external_browser.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/heartbeat.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/logout.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/native_okta.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/authorization_code.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/dpop.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/error.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/http_client.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/loopback_server.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/pkce.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/token.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/prompt_lock.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/query_request.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/sql_state.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/telemetry.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/sensitive.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/stage_binding.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/environment.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/os_details.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/aws.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/azure.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/gcp.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/tests.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/serialization.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/snowflake_exporter.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/snowflake_processor.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/types.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/client.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/config.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/crl_verifier.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/error.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/revocation.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/test_helpers.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/x509_utils.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/token_cache/file_cache.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/token_cache/keyring_cache.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/src/token_cache/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_deserialize.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_deserialize_macro/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_deserialize_macro/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_extract_value.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_result_helper.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/cloud_gating.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/config.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/file_utils.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/auth.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/external_browser.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/mfa.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/oauth.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/okta.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/password.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/session.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/private_key_helper.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/put_get_common.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/test_server.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/test_utils.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/tls_proxy.rs +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_common/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/_private_key_helper.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/api_client/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/arrow_context.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/arrow_stream_async.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/arrow_stream_iterator.pyi +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/arrow_stream_utils.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/backward_compatibility.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/config_utils.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/connection/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/connection/connection.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/connection/connection_types.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/connection/constants.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/connection/decorators.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/connection/freezable_proxy.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/connection/queries.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/cursor/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/cursor/cursor_types.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/cursor/decorators.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/cursor/query_result.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/cursor/query_result_waiter.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/cursor/result_metadata.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/cursor/result_set_wrapper.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/errorcode.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/errorhandler.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/extras.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/logging.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/logout_config_mapping.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.pyx +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.cpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.hpp +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/protobuf_gen/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/protobuf_gen/proto_exception.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/result_batch.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/snow_logging.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/snowflake_restful.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/sqlstate.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/statement_utils.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/status_codes.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/text_utils.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/type_codes.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/README.md +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/connection/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/connection/_connection.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/connection/_freezable_proxy.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/cursor/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/cursor/_dict_cursor.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/cursor/_result_set_wrapper.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/cursor/_snowflake_cursor.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/aio/result_batch.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/auth/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/auth/workload_identity.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/compat.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/config_manager.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/connection/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/connection/_connection.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/connection/_freezable_proxy.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_dict_cursor.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_result_set_wrapper.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_snowflake_cursor.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/description.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/errors.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/pandas_tools.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/py.typed +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/result_batch.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/telemetry.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/time_util.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/types.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/util_text.py +0 -0
- {snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/tests/README.md +0 -0
|
@@ -4834,6 +4834,7 @@ dependencies = [
|
|
|
4834
4834
|
"aws-lc-rs",
|
|
4835
4835
|
"aws-sdk-s3",
|
|
4836
4836
|
"aws-sdk-sts",
|
|
4837
|
+
"aws-smithy-types",
|
|
4837
4838
|
"axum",
|
|
4838
4839
|
"base64 0.22.1",
|
|
4839
4840
|
"brotli",
|
|
@@ -4854,6 +4855,8 @@ dependencies = [
|
|
|
4854
4855
|
"hex",
|
|
4855
4856
|
"html-escape",
|
|
4856
4857
|
"http 1.3.1",
|
|
4858
|
+
"http-body 1.0.1",
|
|
4859
|
+
"http-body-util",
|
|
4857
4860
|
"infer",
|
|
4858
4861
|
"jwt",
|
|
4859
4862
|
"keyring",
|
|
@@ -4869,6 +4872,7 @@ dependencies = [
|
|
|
4869
4872
|
"opentelemetry-semantic-conventions",
|
|
4870
4873
|
"opentelemetry_sdk",
|
|
4871
4874
|
"os_info",
|
|
4875
|
+
"pin-project-lite",
|
|
4872
4876
|
"pprof",
|
|
4873
4877
|
"prost 0.14.1",
|
|
4874
4878
|
"proto_generator",
|
|
@@ -4881,6 +4885,7 @@ dependencies = [
|
|
|
4881
4885
|
"rustls-native-certs 0.8.1",
|
|
4882
4886
|
"rustls-pemfile 2.2.0",
|
|
4883
4887
|
"rustls-webpki 0.102.8",
|
|
4888
|
+
"scopeguard",
|
|
4884
4889
|
"serde",
|
|
4885
4890
|
"serde_json",
|
|
4886
4891
|
"sf_core",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-connector-python
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.0b4
|
|
4
4
|
Summary: Snowflake DB driver for Python (Private Preview)
|
|
5
5
|
Project-URL: Homepage, https://github.com/snowflakedb/universal-driver
|
|
6
6
|
Project-URL: Bug Reports, https://github.com/snowflakedb/universal-driver/issues
|
|
@@ -345,8 +345,36 @@ message ConnectionGetObjectsRequest {
|
|
|
345
345
|
optional string column_name = 7;
|
|
346
346
|
}
|
|
347
347
|
|
|
348
|
+
// ConnectionGetObjects returns a result set (streaming, via result_set_get_stream)
|
|
349
|
+
// containing a nested ADBC-shaped Arrow batch:
|
|
350
|
+
// catalog_name: utf8
|
|
351
|
+
// catalog_db_schemas: list<struct<
|
|
352
|
+
// db_schema_name: utf8,
|
|
353
|
+
// db_schema_tables: list<struct<
|
|
354
|
+
// table_name: utf8,
|
|
355
|
+
// table_type: utf8,
|
|
356
|
+
// table_columns: list (always empty in this impl),
|
|
357
|
+
// table_constraints: list (always empty in this impl)
|
|
358
|
+
// >>
|
|
359
|
+
// >>
|
|
360
|
+
//
|
|
361
|
+
// depth constants:
|
|
362
|
+
// 0 = ALL (not used)
|
|
363
|
+
// 1 = CATALOGS -> populates only catalog_name
|
|
364
|
+
// 2 = DB_SCHEMAS -> populates catalog_name + db_schema_name
|
|
365
|
+
// 3 = TABLES -> populates down to table_name/table_type
|
|
366
|
+
// 4 = COLUMNS -> deferred (not implemented yet)
|
|
367
|
+
//
|
|
368
|
+
// Filter semantics (search patterns, ADBC + backslash-escape extension):
|
|
369
|
+
// - NULL filter = no filter (account-wide or connection-context if
|
|
370
|
+
// CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX is set)
|
|
371
|
+
// - empty string "" = matches nothing (returns empty result)
|
|
372
|
+
// - % = any sequence, _ = any single char
|
|
373
|
+
// - \%, \_, \\ = literal %, _, \ (escape extension, not in ADBC spec)
|
|
374
|
+
// - Matching is case-insensitive (Snowflake unquoted-identifier semantics)
|
|
348
375
|
message ConnectionGetObjectsResponse {
|
|
349
|
-
|
|
376
|
+
ResultSetHandle result_set_handle = 1;
|
|
377
|
+
ResultSetDescriptor result_descriptor = 2;
|
|
350
378
|
}
|
|
351
379
|
|
|
352
380
|
message ConnectionGetTableSchemaRequest {
|
|
@@ -398,6 +426,14 @@ message ConnectionUseDatabaseRequest {
|
|
|
398
426
|
message ConnectionUseDatabaseResponse {
|
|
399
427
|
}
|
|
400
428
|
|
|
429
|
+
message ConnectionUseSchemaRequest {
|
|
430
|
+
ConnectionHandle conn_handle = 1;
|
|
431
|
+
string schema = 2;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
message ConnectionUseSchemaResponse {
|
|
435
|
+
}
|
|
436
|
+
|
|
401
437
|
message ConnectionSetSessionParametersRequest {
|
|
402
438
|
ConnectionHandle conn_handle = 1;
|
|
403
439
|
map<string, string> parameters = 2;
|
|
@@ -550,6 +586,7 @@ message PrepareResult {
|
|
|
550
586
|
string query = 6;
|
|
551
587
|
optional string sql_state = 7;
|
|
552
588
|
bool array_bind_supported = 8;
|
|
589
|
+
repeated ColumnMetadata binds = 9;
|
|
553
590
|
}
|
|
554
591
|
|
|
555
592
|
message StatementPrepareRequest {
|
|
@@ -804,6 +841,10 @@ message ConfigGetPathsResponse {
|
|
|
804
841
|
message TelemetrySendApiUsageRequest {
|
|
805
842
|
ConnectionHandle conn_handle = 1;
|
|
806
843
|
string api_method = 2;
|
|
844
|
+
// Names of the arguments the caller explicitly passed to the API method.
|
|
845
|
+
// Names only — never argument values, and parameters left at their default
|
|
846
|
+
// are omitted. Used to learn which optional fields callers actually exercise.
|
|
847
|
+
repeated string passed_arguments = 3;
|
|
807
848
|
}
|
|
808
849
|
|
|
809
850
|
message TelemetrySendWrapperErrorRequest {
|
|
@@ -840,6 +881,7 @@ service DatabaseDriver {
|
|
|
840
881
|
rpc ConnectionRollback(ConnectionRollbackRequest) returns (ConnectionRollbackResponse);
|
|
841
882
|
rpc ConnectionSetAutocommit(ConnectionSetAutocommitRequest) returns (ConnectionSetAutocommitResponse);
|
|
842
883
|
rpc ConnectionUseDatabase(ConnectionUseDatabaseRequest) returns (ConnectionUseDatabaseResponse);
|
|
884
|
+
rpc ConnectionUseSchema(ConnectionUseSchemaRequest) returns (ConnectionUseSchemaResponse);
|
|
843
885
|
// sets initial session parameters connection should be initialized with
|
|
844
886
|
// call before opening the connection
|
|
845
887
|
rpc ConnectionSetSessionParameters(ConnectionSetSessionParametersRequest) returns (ConnectionSetSessionParametersResponse);
|
|
@@ -238,7 +238,11 @@ dependencies = [
|
|
|
238
238
|
"protobuf>=6.32.1",
|
|
239
239
|
"pytz",
|
|
240
240
|
"tomlkit>=0.13",
|
|
241
|
-
"numpy
|
|
241
|
+
# Cap < 2.3 to match the mypy `python_version = "3.10"` target: numpy 2.3
|
|
242
|
+
# dropped 3.10 and its stubs use PEP-695 `type` statements mypy rejects
|
|
243
|
+
# under a 3.10 target. A real 3.10 install resolves numpy <= 2.2, so this is
|
|
244
|
+
# the numpy we should type-check against.
|
|
245
|
+
"numpy>=2.1.0,<2.3",
|
|
242
246
|
]
|
|
243
247
|
|
|
244
248
|
[tool.hatch.envs.precommit.env-vars]
|
{snowflake_connector_python-5.0.0b3 → snowflake_connector_python-5.0.0b4}/sf_core/Cargo.toml
RENAMED
|
@@ -15,6 +15,7 @@ protobuf = ["prost", "proto_utils"]
|
|
|
15
15
|
vendored-openssl = ["openssl/vendored"]
|
|
16
16
|
auth_mfa_e2e = []
|
|
17
17
|
auth_oauth_e2e = []
|
|
18
|
+
auth_spcs_e2e = []
|
|
18
19
|
gcs_e2e = []
|
|
19
20
|
perf_timing = []
|
|
20
21
|
test-utils = []
|
|
@@ -51,6 +52,10 @@ oauth2 = { version = "5", features = ["timing-resistant-secret-traits"] }
|
|
|
51
52
|
axum = { version = "0.8", default-features = false, features = ["http1", "tokio", "query"] }
|
|
52
53
|
webbrowser = "1"
|
|
53
54
|
http = "1"
|
|
55
|
+
http-body = "1"
|
|
56
|
+
http-body-util = "0.1"
|
|
57
|
+
pin-project-lite = "0.2"
|
|
58
|
+
tempfile = "3.21.0"
|
|
54
59
|
infer = "0.19.0"
|
|
55
60
|
|
|
56
61
|
# Proto
|
|
@@ -62,6 +67,9 @@ aws-sdk-s3 = "1.103.0"
|
|
|
62
67
|
aws-sdk-sts = "1.86.0"
|
|
63
68
|
aws-config = "1.8.5"
|
|
64
69
|
aws-credential-types = "1.2.5"
|
|
70
|
+
# Enables `ByteStream::from_body_1_x` so the S3 PUT path can stream a custom
|
|
71
|
+
# (lazily-encrypting) http-body without buffering ciphertext.
|
|
72
|
+
aws-smithy-types = { version = "1.3", features = ["http-body-1-x"] }
|
|
65
73
|
snafu = "0.8.7"
|
|
66
74
|
error_trace = { path = "../error_trace" }
|
|
67
75
|
fs2 = "0.4"
|
|
@@ -110,7 +118,6 @@ libc = "0.2"
|
|
|
110
118
|
sf_core = { path = ".", default-features = false, features = ["test-utils"] }
|
|
111
119
|
tokio = { version = "1.47.1", features = ["fs", "test-util"] }
|
|
112
120
|
opentelemetry_sdk = { version = "0.30.0", default-features = false, features = ["experimental_metrics_custom_reader"] }
|
|
113
|
-
tempfile = "3.21.0"
|
|
114
121
|
arrow_deserialize_macro = { path = "tests/common/arrow_deserialize_macro" }
|
|
115
122
|
bzip2 = "0.6.0"
|
|
116
123
|
brotli = "8.0.2"
|
|
@@ -123,6 +130,7 @@ tokio-rustls = "0.26"
|
|
|
123
130
|
tracing-test = { version = "0.2", features = ["no-env-filter"] }
|
|
124
131
|
criterion = { version = "0.5", features = ["async_tokio"] }
|
|
125
132
|
temp-env = { version = "0.3.6", features = ["async_closure"] }
|
|
133
|
+
scopeguard = "1.2"
|
|
126
134
|
|
|
127
135
|
[target.'cfg(not(target_os = "windows"))'.dev-dependencies]
|
|
128
136
|
pprof = { version = "0.14", features = ["flamegraph", "criterion"] }
|
|
@@ -185,6 +193,11 @@ required-features = ["cli"]
|
|
|
185
193
|
name = "param_defs_export"
|
|
186
194
|
path = "src/bin/param_defs_export.rs"
|
|
187
195
|
|
|
196
|
+
[[bin]]
|
|
197
|
+
name = "spcs_probe"
|
|
198
|
+
path = "src/bin/spcs_probe.rs"
|
|
199
|
+
required-features = ["protobuf"]
|
|
200
|
+
|
|
188
201
|
[[bench]]
|
|
189
202
|
name = "prefetch_bench"
|
|
190
203
|
harness = false
|
|
@@ -23,7 +23,7 @@ use super::validation::{
|
|
|
23
23
|
validate_session_override_write,
|
|
24
24
|
};
|
|
25
25
|
use crate::config::ParamStore;
|
|
26
|
-
use crate::config::connection_config::ConnectionConfig;
|
|
26
|
+
use crate::config::connection_config::{ConnectionConfig, DiagnosticConfig};
|
|
27
27
|
use crate::config::logout::LogoutConfig;
|
|
28
28
|
use crate::config::param_registry::{
|
|
29
29
|
DEFAULT_PUT_GET_MAX_ATTEMPTS, ParamKey, ParamScope, param_names,
|
|
@@ -34,6 +34,7 @@ use crate::config::rest_parameters::{
|
|
|
34
34
|
resolve_log_query_parameters, resolve_log_query_text,
|
|
35
35
|
};
|
|
36
36
|
use crate::config::retry::RetryPolicy;
|
|
37
|
+
use crate::diagnostic::DiagnosticRunner;
|
|
37
38
|
use crate::handle_manager::Handle;
|
|
38
39
|
use crate::rest::snowflake::{
|
|
39
40
|
self, QueryExecutionMode, QueryInput, RestError, SessionTokens, SnowflakeResponseError,
|
|
@@ -42,6 +43,18 @@ use crate::rest::snowflake::{
|
|
|
42
43
|
use crate::sensitive::SensitiveString;
|
|
43
44
|
use crate::token_cache::TokenCache;
|
|
44
45
|
|
|
46
|
+
/// Whether `execute_session_sql` should refresh the connection's local
|
|
47
|
+
/// session-state cache (`session_parameters`, `final_session_names`) from
|
|
48
|
+
/// the response after a successful query.
|
|
49
|
+
#[derive(Copy, Clone, Debug)]
|
|
50
|
+
enum SessionStateRefresh {
|
|
51
|
+
/// SQL may change session state (e.g. `ALTER SESSION SET`, `USE DATABASE`).
|
|
52
|
+
Apply,
|
|
53
|
+
/// SQL is non-stateful from the session's perspective (e.g. `COMMIT`,
|
|
54
|
+
/// `ROLLBACK`).
|
|
55
|
+
Skip,
|
|
56
|
+
}
|
|
57
|
+
|
|
45
58
|
impl DatabaseDriverV1 {
|
|
46
59
|
/// Set autocommit on the given connection.
|
|
47
60
|
///
|
|
@@ -62,7 +75,8 @@ impl DatabaseDriverV1 {
|
|
|
62
75
|
} else {
|
|
63
76
|
"ALTER SESSION SET AUTOCOMMIT = FALSE"
|
|
64
77
|
};
|
|
65
|
-
self.execute_session_sql(&conn, sql)
|
|
78
|
+
self.execute_session_sql(&conn, sql, SessionStateRefresh::Apply)
|
|
79
|
+
.await
|
|
66
80
|
} else {
|
|
67
81
|
conn.init_session_parameters
|
|
68
82
|
.get_or_insert_with(HashMap::new)
|
|
@@ -92,8 +106,7 @@ impl DatabaseDriverV1 {
|
|
|
92
106
|
}
|
|
93
107
|
.fail();
|
|
94
108
|
}
|
|
95
|
-
|
|
96
|
-
let escaped = db.replace('"', "\"\"");
|
|
109
|
+
let escaped = escape_sql_identifier(db);
|
|
97
110
|
let sql = format!("USE DATABASE \"{escaped}\"");
|
|
98
111
|
|
|
99
112
|
match self.connections.get_obj(conn_handle) {
|
|
@@ -106,7 +119,89 @@ impl DatabaseDriverV1 {
|
|
|
106
119
|
}
|
|
107
120
|
.fail();
|
|
108
121
|
}
|
|
109
|
-
self.execute_session_sql(&conn, &sql)
|
|
122
|
+
self.execute_session_sql(&conn, &sql, SessionStateRefresh::Apply)
|
|
123
|
+
.await
|
|
124
|
+
}
|
|
125
|
+
None => InvalidArgumentSnafu {
|
|
126
|
+
argument: "Connection handle not found".to_string(),
|
|
127
|
+
}
|
|
128
|
+
.fail(),
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/// Commit the open transaction on the given connection by executing `COMMIT`.
|
|
133
|
+
/// Must only be called after the connection is initialised (`is_post_connect()`).
|
|
134
|
+
pub async fn connection_commit(&self, conn_handle: Handle) -> Result<(), ApiError> {
|
|
135
|
+
self.execute_transaction_control(conn_handle, "COMMIT")
|
|
136
|
+
.await
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/// Roll back the open transaction on the given connection by executing `ROLLBACK`.
|
|
140
|
+
/// Must only be called after the connection is initialised (`is_post_connect()`).
|
|
141
|
+
pub async fn connection_rollback(&self, conn_handle: Handle) -> Result<(), ApiError> {
|
|
142
|
+
self.execute_transaction_control(conn_handle, "ROLLBACK")
|
|
143
|
+
.await
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/// Shared implementation for `connection_commit` / `connection_rollback`:
|
|
147
|
+
/// run the transaction-control statement on the connection's session.
|
|
148
|
+
async fn execute_transaction_control(
|
|
149
|
+
&self,
|
|
150
|
+
conn_handle: Handle,
|
|
151
|
+
sql: &str,
|
|
152
|
+
) -> Result<(), ApiError> {
|
|
153
|
+
match self.connections.get_obj(conn_handle) {
|
|
154
|
+
Some(conn_ptr) => {
|
|
155
|
+
let conn = conn_ptr.lock().await;
|
|
156
|
+
if !conn.is_post_connect() {
|
|
157
|
+
return InvalidArgumentSnafu {
|
|
158
|
+
argument: format!("{sql} called before connection is open"),
|
|
159
|
+
}
|
|
160
|
+
.fail();
|
|
161
|
+
}
|
|
162
|
+
// COMMIT/ROLLBACK do not change session parameters or
|
|
163
|
+
// current database/schema/warehouse/role, so skip the
|
|
164
|
+
// session-state cache refresh.
|
|
165
|
+
self.execute_session_sql(&conn, sql, SessionStateRefresh::Skip)
|
|
166
|
+
.await
|
|
167
|
+
}
|
|
168
|
+
None => InvalidArgumentSnafu {
|
|
169
|
+
argument: "Connection handle not found".to_string(),
|
|
170
|
+
}
|
|
171
|
+
.fail(),
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/// Execute `USE SCHEMA "<name>"` or `USE SCHEMA "<db>"."<name>"` when a session database is set.
|
|
176
|
+
/// Schema and database names are escaped (internal `"` doubled).
|
|
177
|
+
/// Must only be called after the connection is initialised (`is_post_connect()`).
|
|
178
|
+
pub async fn connection_use_schema(
|
|
179
|
+
&self,
|
|
180
|
+
conn_handle: Handle,
|
|
181
|
+
schema: &str,
|
|
182
|
+
) -> Result<(), ApiError> {
|
|
183
|
+
let schema = schema.trim();
|
|
184
|
+
if schema.is_empty() {
|
|
185
|
+
return InvalidArgumentSnafu {
|
|
186
|
+
argument: "schema name must not be empty".to_string(),
|
|
187
|
+
}
|
|
188
|
+
.fail();
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
match self.connections.get_obj(conn_handle) {
|
|
192
|
+
Some(conn_ptr) => {
|
|
193
|
+
let conn = conn_ptr.lock().await;
|
|
194
|
+
if !conn.is_post_connect() {
|
|
195
|
+
return InvalidArgumentSnafu {
|
|
196
|
+
argument: "connection_use_schema called before connection is open"
|
|
197
|
+
.to_string(),
|
|
198
|
+
}
|
|
199
|
+
.fail();
|
|
200
|
+
}
|
|
201
|
+
let database = resolve_session_database(&conn)?;
|
|
202
|
+
let sql = build_use_schema_sql(database.as_deref(), schema);
|
|
203
|
+
self.execute_session_sql(&conn, &sql, SessionStateRefresh::Apply)
|
|
204
|
+
.await
|
|
110
205
|
}
|
|
111
206
|
None => InvalidArgumentSnafu {
|
|
112
207
|
argument: "Connection handle not found".to_string(),
|
|
@@ -116,7 +211,20 @@ impl DatabaseDriverV1 {
|
|
|
116
211
|
}
|
|
117
212
|
|
|
118
213
|
/// Execute a session-scoped SQL command without creating a statement.
|
|
119
|
-
|
|
214
|
+
///
|
|
215
|
+
/// `refresh` controls whether the local session-state cache
|
|
216
|
+
/// (`session_parameters`, `final_session_names`) is refreshed from the
|
|
217
|
+
/// response after a successful query. Pass `Apply` for SQL that may
|
|
218
|
+
/// change session state (e.g. `ALTER SESSION SET`, `USE DATABASE`); pass
|
|
219
|
+
/// `Skip` for SQL that is non-stateful from the session's perspective
|
|
220
|
+
/// (e.g. `COMMIT`, `ROLLBACK`) to avoid taking the cache write locks
|
|
221
|
+
/// for a no-op merge.
|
|
222
|
+
async fn execute_session_sql(
|
|
223
|
+
&self,
|
|
224
|
+
conn: &Connection,
|
|
225
|
+
sql: &str,
|
|
226
|
+
refresh: SessionStateRefresh,
|
|
227
|
+
) -> Result<(), ApiError> {
|
|
120
228
|
let query_input = QueryInput {
|
|
121
229
|
sql: sql.to_string(),
|
|
122
230
|
bindings: None,
|
|
@@ -150,7 +258,7 @@ impl DatabaseDriverV1 {
|
|
|
150
258
|
}
|
|
151
259
|
}?;
|
|
152
260
|
|
|
153
|
-
if response.success {
|
|
261
|
+
if response.success && matches!(refresh, SessionStateRefresh::Apply) {
|
|
154
262
|
conn.update_session_params_cache(
|
|
155
263
|
sql,
|
|
156
264
|
response.data.parameters.as_ref(),
|
|
@@ -265,6 +373,24 @@ impl DatabaseDriverV1 {
|
|
|
265
373
|
read_spcs_token(self.fs_adapter().as_ref()),
|
|
266
374
|
);
|
|
267
375
|
|
|
376
|
+
// ---- Diagnostics: pre-connect -----------------------------------
|
|
377
|
+
let mut diag_runner = if let DiagnosticConfig::Enabled { .. } = config.diagnostic {
|
|
378
|
+
let account = config.server.account.clone();
|
|
379
|
+
// resolve_options() already ran derive_host_from_account, so host
|
|
380
|
+
// is Some whenever account is set; the empty-string fallback is unreachable.
|
|
381
|
+
let host_str = host.clone().unwrap_or_default();
|
|
382
|
+
let diag_cfg = config.diagnostic.clone();
|
|
383
|
+
tokio::task::spawn_blocking(move || {
|
|
384
|
+
let mut runner = DiagnosticRunner::new(&account, &host_str, diag_cfg);
|
|
385
|
+
runner.run_pre_connect();
|
|
386
|
+
runner
|
|
387
|
+
})
|
|
388
|
+
.await
|
|
389
|
+
.ok()
|
|
390
|
+
} else {
|
|
391
|
+
None
|
|
392
|
+
};
|
|
393
|
+
|
|
268
394
|
let token_caching_requested = matches!(
|
|
269
395
|
&login_parameters.login_method,
|
|
270
396
|
LoginMethod::UserPasswordMfa {
|
|
@@ -304,8 +430,19 @@ impl DatabaseDriverV1 {
|
|
|
304
430
|
token_cache.map(|c| c as &dyn TokenCache),
|
|
305
431
|
Some(&self.prompt_locks),
|
|
306
432
|
)
|
|
307
|
-
.await
|
|
308
|
-
|
|
433
|
+
.await;
|
|
434
|
+
|
|
435
|
+
// ---- Diagnostics: post-connect ----------------------------------
|
|
436
|
+
if let Some(mut runner) = diag_runner.take() {
|
|
437
|
+
tokio::task::spawn_blocking(move || {
|
|
438
|
+
runner.run_post_connect(None);
|
|
439
|
+
runner.write_report();
|
|
440
|
+
})
|
|
441
|
+
.await
|
|
442
|
+
.ok();
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
let login_result = login_result.context(LoginSnafu)?;
|
|
309
446
|
|
|
310
447
|
// Initialize connection with session parameters from login response.
|
|
311
448
|
// The server returns system-level parameters but may not echo back
|
|
@@ -1465,6 +1602,34 @@ fn get_session_or_setting(
|
|
|
1465
1602
|
resolved_or_seed_string(conn, setting_key)
|
|
1466
1603
|
}
|
|
1467
1604
|
|
|
1605
|
+
// TODO: ensure that this is correct escaping
|
|
1606
|
+
fn escape_sql_identifier(name: &str) -> String {
|
|
1607
|
+
name.replace('"', "\"\"")
|
|
1608
|
+
}
|
|
1609
|
+
|
|
1610
|
+
fn build_use_schema_sql(database: Option<&str>, schema: &str) -> String {
|
|
1611
|
+
let escaped_schema = escape_sql_identifier(schema);
|
|
1612
|
+
match database.filter(|db| !db.is_empty()) {
|
|
1613
|
+
Some(db) => {
|
|
1614
|
+
let escaped_db = escape_sql_identifier(db);
|
|
1615
|
+
format!("USE SCHEMA \"{escaped_db}\".\"{escaped_schema}\"")
|
|
1616
|
+
}
|
|
1617
|
+
None => format!("USE SCHEMA \"{escaped_schema}\""),
|
|
1618
|
+
}
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1621
|
+
fn resolve_session_database(conn: &Connection) -> Result<Option<String>, ApiError> {
|
|
1622
|
+
let final_names = conn
|
|
1623
|
+
.final_session_names
|
|
1624
|
+
.read()
|
|
1625
|
+
.map_err(|_| ConnectionLockingSnafu {}.build())?;
|
|
1626
|
+
Ok(final_names
|
|
1627
|
+
.database
|
|
1628
|
+
.clone()
|
|
1629
|
+
.or_else(|| get_session_or_setting(conn, "DATABASE", param_names::DATABASE))
|
|
1630
|
+
.filter(|db| !db.is_empty()))
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1468
1633
|
impl DatabaseDriverV1 {
|
|
1469
1634
|
/// Get connection information for the given connection handle
|
|
1470
1635
|
pub async fn connection_get_info(
|
|
@@ -2187,6 +2352,30 @@ mod tests {
|
|
|
2187
2352
|
assert_eq!(get_connection_seed_string(&conn, param_names::PORT), None);
|
|
2188
2353
|
}
|
|
2189
2354
|
|
|
2355
|
+
#[test]
|
|
2356
|
+
fn build_use_schema_sql_without_database() {
|
|
2357
|
+
assert_eq!(
|
|
2358
|
+
build_use_schema_sql(None, "PUBLIC"),
|
|
2359
|
+
"USE SCHEMA \"PUBLIC\""
|
|
2360
|
+
);
|
|
2361
|
+
}
|
|
2362
|
+
|
|
2363
|
+
#[test]
|
|
2364
|
+
fn build_use_schema_sql_with_database() {
|
|
2365
|
+
assert_eq!(
|
|
2366
|
+
build_use_schema_sql(Some("TEST_DB"), "MY_SCHEMA"),
|
|
2367
|
+
"USE SCHEMA \"TEST_DB\".\"MY_SCHEMA\""
|
|
2368
|
+
);
|
|
2369
|
+
}
|
|
2370
|
+
|
|
2371
|
+
#[test]
|
|
2372
|
+
fn build_use_schema_sql_escapes_quotes() {
|
|
2373
|
+
assert_eq!(
|
|
2374
|
+
build_use_schema_sql(Some("DB\"1"), "SC\"2"),
|
|
2375
|
+
"USE SCHEMA \"DB\"\"1\".\"SC\"\"2\""
|
|
2376
|
+
);
|
|
2377
|
+
}
|
|
2378
|
+
|
|
2190
2379
|
#[test]
|
|
2191
2380
|
fn get_session_or_setting_prefers_session_parameter() {
|
|
2192
2381
|
let conn =
|