arrowsql 0.2.0__tar.gz → 0.3.0__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.
- {arrowsql-0.2.0 → arrowsql-0.3.0}/CHANGELOG.md +65 -1
- {arrowsql-0.2.0 → arrowsql-0.3.0}/CONTRIBUTING.md +3 -2
- {arrowsql-0.2.0 → arrowsql-0.3.0}/Cargo.lock +27 -1
- {arrowsql-0.2.0 → arrowsql-0.3.0}/Cargo.toml +25 -12
- {arrowsql-0.2.0 → arrowsql-0.3.0}/PKG-INFO +3 -1
- {arrowsql-0.2.0 → arrowsql-0.3.0}/README.md +2 -0
- arrowsql-0.3.0/crates/arrowsql-core/Cargo.toml +31 -0
- arrowsql-0.3.0/crates/arrowsql-core/src/api.rs +558 -0
- arrowsql-0.3.0/crates/arrowsql-core/src/arrow/mod.rs +79 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/arrow/sink.rs +1 -1
- arrowsql-0.3.0/crates/arrowsql-core/src/arrow/stream.rs +465 -0
- arrowsql-0.3.0/crates/arrowsql-core/src/connection.rs +246 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/connstr.rs +19 -0
- arrowsql-0.3.0/crates/arrowsql-core/src/decode/ascii.rs +90 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/decode/buffer.rs +52 -10
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/decode/describe.rs +0 -60
- arrowsql-0.3.0/crates/arrowsql-core/src/decode/mod.rs +12 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/diag.rs +0 -9
- arrowsql-0.3.0/crates/arrowsql-core/src/error.rs +126 -0
- arrowsql-0.3.0/crates/arrowsql-core/src/lib.rs +85 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/params/batch.rs +39 -0
- arrowsql-0.3.0/crates/arrowsql-core/src/params/mod.rs +125 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/params/udt.rs +3 -22
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/pooling.rs +8 -9
- arrowsql-0.3.0/crates/arrowsql-core/src/read.rs +1028 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/runtime.rs +92 -77
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/statement/cursor.rs +28 -26
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/statement/exec.rs +14 -27
- arrowsql-0.3.0/crates/arrowsql-core/src/statement/mod.rs +122 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/statement/wire.rs +18 -12
- arrowsql-0.3.0/crates/arrowsql-core/src/txn_abort.rs +145 -0
- arrowsql-0.3.0/crates/arrowsql-core/src/utf8.rs +156 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/utf8_wrap.rs +0 -36
- arrowsql-0.3.0/crates/arrowsql-core/tests/live.rs +368 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/ARCHITECTURE.md +67 -20
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/CONTRACT.md +9 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/PACKAGING.md +3 -3
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/PLATFORMS_AND_CONNECTION.md +39 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/PYTHON_LAYER_CHANGES.md +8 -1
- {arrowsql-0.2.0 → arrowsql-0.3.0}/pyproject.toml +3 -3
- arrowsql-0.3.0/python/arrowsql/_utf8_strings.py +28 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/aio.py +1 -1
- arrowsql-0.3.0/python/arrowsql/arrow_parallel.py +191 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/constants.py +2 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/ddbc_bindings.pyi +56 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/agent/mod.rs +1 -1
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/aio/connection.rs +5 -2
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/aio/convert.rs +27 -22
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/aio/pool.rs +15 -1
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/aio/session.rs +83 -15
- arrowsql-0.3.0/src/arrow/export.rs +419 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/arrow/mod.rs +11 -46
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/bulk/arrow_source.rs +74 -10
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/bulk/mod.rs +1 -1
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/bulk/parallel.rs +1 -1
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/connection.rs +40 -194
- arrowsql-0.3.0/src/decode/describe.rs +67 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/decode/mod.rs +2 -4
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/decode/python.rs +6 -72
- arrowsql-0.3.0/src/dns_ttl_cache_tests.rs +501 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/errors.rs +8 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/lib.rs +84 -10
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/logging.rs +48 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/params/mod.rs +2 -74
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/params/py_types.rs +2 -33
- arrowsql-0.3.0/src/params/udt.rs +26 -0
- arrowsql-0.3.0/src/pooling.rs +23 -0
- arrowsql-0.3.0/src/read.rs +433 -0
- arrowsql-0.3.0/src/runtime.rs +117 -0
- arrowsql-0.3.0/src/statement/mod.rs +113 -0
- arrowsql-0.3.0/src/utf8_wrap.rs +41 -0
- arrowsql-0.2.0/python/arrowsql/arrow_parallel.py → arrowsql-0.3.0/tests/common_issues/arrow_parallel_reference.py +67 -2
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_dead_connection.py +7 -2
- arrowsql-0.3.0/tests/common_issues/test_lob_arena_reservation.py +28 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_review_security_scripts.py +24 -10
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_aio_review.py +107 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_bulk_parallel_native.py +81 -0
- arrowsql-0.3.0/tests/common_issues/test_rs_r5_aio_session.py +188 -0
- arrowsql-0.3.0/tests/common_issues/test_rs_read_arrow_parity.py +202 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_read_arrow_partitions.py +9 -23
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_utf8_strings.py +5 -5
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_timeouts_cancel.py +24 -0
- arrowsql-0.3.0/tests/port/test_dns_cache.py +250 -0
- arrowsql-0.3.0/tests/port/test_mirroring_partner.py +117 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/port/test_runtime_fork.py +38 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/VENDOR.md +33 -3
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/client_context.rs +6 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/connect_stage.rs +3 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/dns_cache.rs +173 -5
- arrowsql-0.3.0/vendor/mssql-tds/src/connection/dns_ttl_cache.rs +484 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/execution_context.rs +7 -4
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/network_transport.rs +58 -3
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/parallel_connect.rs +56 -5
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection.rs +37 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection_provider/tds_connection_provider.rs +21 -7
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/ssrp.rs +6 -1
- arrowsql-0.2.0/python/arrowsql/_utf8_strings.py +0 -78
- arrowsql-0.2.0/src/arrow/export.rs +0 -685
- arrowsql-0.2.0/src/statement/mod.rs +0 -219
- {arrowsql-0.2.0 → arrowsql-0.3.0}/.cargo/config.toml +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/.gitattributes +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/.gitignore +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/AGENTS.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/LICENSE +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/LICENSE.upstream-mssql-python +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/build.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/arrow/plan.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/consts.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/decode/hidden.rs +0 -0
- {arrowsql-0.2.0/src/agent → arrowsql-0.3.0/crates/arrowsql-core/src}/fmt.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/numeric.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/params/null_types.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/params/placeholders.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0/crates/arrowsql-core}/src/statement/cancel.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/AGENT_MODE.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/ARROW_ODBC_RESEARCH.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/ARROW_PLAN.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/ASYNC.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/BENCHMARK_SUMMARY.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/EXPORT_RESEARCH.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/FEATURES.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/FREE_THREADED.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/PERFORMANCE_RESEARCH.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/ROADMAP.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/TEST_SCOPE.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/UPSTREAM_BUGS_FOUND.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/UPSTREAM_ISSUES.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/assets/icon.svg +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/assets/logo-dark-static.svg +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/assets/logo-dark.svg +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/assets/logo-static.svg +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/docs/assets/logo.svg +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/examples/README.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/examples/_demo.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/examples/agent_mode.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/examples/arrow_duckdb.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/examples/odbc2deltalake_sync.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/examples/write_arrow.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/__init__.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/_rust_auth.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/_server_sqlstate.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/agent.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/async_query/__init__.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/async_query/_connection_context.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/async_query/_native.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/async_query/async_connection.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/async_query/async_cursor.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/async_query/async_execute.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/async_query/async_fetch.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/async_query/exception_translator.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/auth.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/bulk_parallel.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/connection.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/connection_string_builder.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/connection_string_parser.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/cursor.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/db_connection.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/decimal_config.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/exceptions.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/helpers.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/logging.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/mssql_python.pyi +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/odbc_provider.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/parameter_helper.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/perf_timer.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/pooling.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/py.typed +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/row.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/arrowsql/type.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/python/mssql_python/__init__.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/requirements-dev.txt +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/bench_reproduce.sh +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/build.sh +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/check_upstream_baseline.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/ci/install-sqlserver-windows.ps1 +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/codex_review.sh +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/env.sh +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/load_taxi.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/overlay_upstream_binding.sh +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/release_rustflags.sh +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/run_tests.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/setup_tls_cert.sh +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/test_overlay.sh +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/scripts/wheel_size.sh +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/agent/render.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/agent/sqltype.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/aio/hub.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/aio/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/bulk/arrow_encode.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/bulk/arrow_wire.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/bulk/rows.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/bulk/settings.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/bulk/wire.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/catalog.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/decode/binary.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/decode/numeric.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/decode/temporal.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/decode/text.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/getinfo.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/params/pyformat.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/rowfactory.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/statement/batch_rpc.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/statement/odbc.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/src/types.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/conftest.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/LICENSE_ctds.txt +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/LICENSE_dotnet_sqlclient.txt +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/LICENSE_go_mssqldb.txt +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/LICENSE_sqlalchemy.txt +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/README.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_ctds_cursor_fetch.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_ctds_executemany.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_ctds_transactions.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_fastmssql_async_threads.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_fastmssql_errors_values.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_fastmssql_lifecycle_pool.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_go_mssqldb_bulkcopy.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_go_mssqldb_xact_guid.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_mssql_jdbc_bigint_guid.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_mssql_jdbc_temporal_params.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_mssql_rs_arrow_bulkcopy.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_mssql_rs_bulkcopy.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_pymssql_bulkcopy_paths.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_pymssql_qmark_substitution.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_pymssql_types_procs.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_pyodbc_connection.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_pyodbc_cursor_results.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_pyodbc_types.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_rust_mssql_driver_bulkcopy.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_rust_mssql_driver_param_echo.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_sqlalchemy_catalog.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_sqlalchemy_identity_sequence.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_sqlalchemy_query.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_sqlalchemy_types.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_sqlclient_bulkcopy.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_sqlclient_scalar_commands.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_tedious_protocol.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_tedious_statements.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_tiberius_bulk.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_tiberius_login_password.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_tiberius_query_types.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported/test_port_tiberius_results_transactions.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported_mssql_rs/MAPPING.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported_mssql_rs/test_bulk_timeout_udt.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported_mssql_rs/test_bulk_types_and_errors.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/ported_mssql_rs/test_session_and_rpc.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/rs_dtypes.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_binary_guid.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_connection_strings.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_decimal_numeric.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_executemany.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_g1_pyformat_scanner.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_integers_bool_float.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_issue_581_sqlstate.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_large_values.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_messages_errors.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_multiple_results.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_nulls_typing.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_review_python_security.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_review_security_parser.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_row_access.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_agent_mode.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_aio.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_aio_pool_semantics.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_all_data_types_aio.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_all_data_types_exotic.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_all_data_types_paths.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_all_data_types_special.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_arith_errors.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_arrow_native.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_arrow_stream_close.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_arrow_type_mapping.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_auth_keywords.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_batch_parsing.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_bigint_overflow_agg.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_bulk_decimal_width.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_bulk_native.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_bulk_native_rows.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_bulk_parallel.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_bulk_parallel_rows.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_bulk_rows_pipeline.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_bulk_serializer_chunks.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_cancel.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_char_padding.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_client_cpu_paths.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_collation_case.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_core_regressions.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_cte_recursion.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_database_context.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_date_strings_dateformat.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_datetimeoffset_deep.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_decimal_param_inference.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_decode_fastpaths.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_defaults_computed.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_description_types.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_duckdb_integration.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_error_mid_resultset.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_executemany_types.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_fetch_sizes_arraysize.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_float_real_edges.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_for_json.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_g3_decode_encode.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_hidden_columns.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_hierarchyid.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_identifiers_quoting.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_identity_triggers.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_isolation_levels.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_leaks_lifecycle.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_legacy_datetime_rounding.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_legacy_lob_types.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_locking_blocking.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_merge_output.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_message_flood.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_metadata_reuse.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_money_arithmetic.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_null_semantics.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_output_clause.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_pandas_polars_io.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_param_binding_fastpaths.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_param_fast_cells.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_param_type_plancache.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_param_wire_paths.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_pyformat_named.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_read_arrow_stream.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_review_rust.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_rowversion_concurrency.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_savepoints_nested.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_session_set_options.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_setinputsizes.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_sparse_columnsets.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_spatial_deep.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_sql_variant_deep.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_string_truncation.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_temporal_tables.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_time7_precision.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_time_scales.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_triggers_rowcount.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_tvp_support.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_uniqueidentifier_order.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_utf8_collations.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_varchar_codepages.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_rs_xml_deep.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_scope_identity_temp.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_special_types.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_stored_procs.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_temporal.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_threading_gil.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_transactions.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_unicode.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/common_issues/test_wide_and_many.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/mock/conftest.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/mock/mockutil.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/mock/test_aio_null_discovery.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/mock/test_faults.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/mock/test_login_tls.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/mock/test_results.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/port/test_free_threaded.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/port/test_tls.py +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/upstream_excluded.txt +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/tests/upstream_passing_baseline.txt +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/.env +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/Cargo.toml +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/LICENSE +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/README.md +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/cli.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/blocking.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/bulk_copy.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/bulk_copy_state.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/connection_actions.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/cursor_ops.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/datasource_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/instance_cache.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/metadata_retriever.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/multi_subnet_failover.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/session_recovery.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/tds_client.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/any_transport.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/buffers.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/busy_poll.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/certificate_validator.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/extractable_stream.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/localdb.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/named_pipes.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/ssl_handler.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/tds_transport.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/tls/native_tls_engine.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/tls/rustls_engine.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/tls.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/alpn.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/bindings.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/cred.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/engine.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/errors.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/handshake.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/record_layer.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/sspi.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/stream.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport/win_tls/validate.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection/transport.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/connection_provider.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/core.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/cursor/cursor_response.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/cursor/cursor_types.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/cursor/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/bulk_copy_metadata.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/bulk_copy_metadata_tests.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/column_values.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/decoder.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/encoder.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/lcid_encoding.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/row_writer.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/sql_json.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/sql_string/encoding.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/sql_string.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/sql_tvp.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/sql_udt.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/sql_vector.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/sqldatatypes.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/sqltypes.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/sync_decoder.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes/tds_value_serializer.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/datatypes.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/error/bulk_copy_errors.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/error/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/fuzz_support.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/handler/handler_factory.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/handler/sspi_handler.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/handler.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/io/packet_reader.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/io/packet_writer.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/io/reader_writer.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/io/token_stream.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/io.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/lib.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/attention.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/batch.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/bulk_load.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/bulk_load_tests.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features/always_encrypted.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features/data_classification.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features/dns_caching.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features/enhanced_routing.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features/fedauth.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features/jsonfeature.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features/session_recovery.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features/useragent.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features/utf8.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features/vectorfeature.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/features.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/headers.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/login.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/login_options.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/messages.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/parameters/rpc_parameters.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/parameters.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/prelogin.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/rpc.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message/transaction_management.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/message.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/query/metadata.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/query/result.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/query.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/cell_decryptor.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/crypto/apple.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/crypto/cng.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/crypto/der.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/crypto/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/crypto/openssl.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/crypto/unsupported.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/describe_parameter_encryption.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/encryption/aead_aes_256_cbc_hmac_sha256.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/encryption/cell.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/encryption/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/error.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/keystore/certificate.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/keystore/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/mock.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/query_metadata_cache.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/security_context.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/spn.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/unix/gssapi_context.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/unix/gssapi_ffi.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/unix/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/windows/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/windows/sspi_context.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/security/windows/sspi_ffi.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/sql_identifier.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/test_client_support.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/test_packet_support.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/data_classification.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/fed_auth_info.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/login_ack.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/col_info_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/colmetadata_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/common.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/data_classification_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/done_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/envchange_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/error_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/featureext_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/fedauth_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/info_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/loginack_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/mod.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/nbcrow_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/order_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/returnstatus_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/returnvalue_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/row_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/session_state_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/sspi_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/parsers/tab_name_parser.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/tokenitems.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token/tokens.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/token.rs +0 -0
- {arrowsql-0.2.0 → arrowsql-0.3.0}/vendor/mssql-tds/src/trace_context.rs +0 -0
|
@@ -8,12 +8,76 @@ Version numbers in this project are deliberately three different things:
|
|
|
8
8
|
|
|
9
9
|
| what | value | meaning |
|
|
10
10
|
|---|---|---|
|
|
11
|
-
| distribution `arrowsql` | 0.
|
|
11
|
+
| distribution `arrowsql` | 0.3.0 | this project's release number (`pyproject.toml`) |
|
|
12
12
|
| `arrowsql.__version__` | 1.16.0 | the upstream `mssql-python` release the Python layer is vendored from; kept so code that checks the upstream version keeps working |
|
|
13
13
|
| `arrowsql.ddbc_bindings.__version__` | 1.0.0 | version of the Rust binding contract (`docs/CONTRACT.md`) |
|
|
14
14
|
|
|
15
15
|
## [Unreleased]
|
|
16
16
|
|
|
17
|
+
## [0.3.0] - 2026-11-07
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- `crates/arrowsql-core`: the driver core as a Rust crate without pyo3
|
|
22
|
+
(connect, execute, fetch, Arrow decoding, pooling), with a public API for
|
|
23
|
+
other Rust crates: `Connection::connect` / `execute`, `Statement::next_batch`
|
|
24
|
+
/ `into_reader`, and `read_arrow_stream(options, query, Partitioning,
|
|
25
|
+
ReadOptions)`, a cancellable, `Send` Arrow `RecordBatchReader` over a
|
|
26
|
+
partitioned parallel read. The Python extension is a pyo3 layer over it; no
|
|
27
|
+
behaviour change for Python.
|
|
28
|
+
- `arrowsql-core`: the partitions of a read as separate readers or Arrow C
|
|
29
|
+
streams. `plan_partitions` returns the planned `Slice`s, each opens on its
|
|
30
|
+
own connection (`Slice::open`, `Slice::open_ffi_stream`), so Spark tasks or
|
|
31
|
+
pyarrow in another shared library read them zero-copy;
|
|
32
|
+
`ParallelReader::into_ffi_stream` / `StatementReader::into_ffi_stream`
|
|
33
|
+
export the merged and single-statement readers the same way.
|
|
34
|
+
- `crates/arrowsql-rowcount`: a pure-Rust example and integration test of the
|
|
35
|
+
core API (single, merged parallel and per-partition Arrow C stream reads).
|
|
36
|
+
- Process-wide DNS cache for connects (`DnsCacheTTL=<seconds>` keyword, env
|
|
37
|
+
`ARROWSQL_DNS_CACHE_TTL`, default 300 s, 0 disables). A host that resolved
|
|
38
|
+
once is not resolved again for every connection (Spark tasks, parallel read
|
|
39
|
+
slices, pool members, reconnects), like the JDBC driver's long-lived cache.
|
|
40
|
+
An expired entry is served at once while one background thread refreshes it
|
|
41
|
+
(up to an hour past its TTL), so a slow or failing resolver ("Temporary
|
|
42
|
+
failure in name resolution") no longer costs each connection seconds or a
|
|
43
|
+
failed connect. Concurrent lookups of one host share a single resolver call;
|
|
44
|
+
each resolver call is bounded (`ARROWSQL_DNS_RESOLVE_TIMEOUT`, default 10 s)
|
|
45
|
+
and a temporary failure is retried once. Failures are never cached; if no
|
|
46
|
+
cached address accepts, the entry is dropped and the host is resolved once
|
|
47
|
+
more. IP literals and connection diagnostics bypass the cache.
|
|
48
|
+
`ddbc_bindings.dns_cache_stats()` reports its counters. Vendored mssql-tds
|
|
49
|
+
patch 15.
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
|
|
53
|
+
- `read_arrow` / `read_arrow_stream`: slice planning, the MIN/MAX and catalog
|
|
54
|
+
probes, the worker threads and the merge run in Rust (`arrowsql-core`);
|
|
55
|
+
`arrow_parallel.py` only checks arguments. Same plans, rows and exception
|
|
56
|
+
classes as before (parity tests against the previous implementation in
|
|
57
|
+
`tests/common_issues/test_rs_read_arrow_parity.py`); invalid
|
|
58
|
+
`partition_bounds` now fail before the first connection is opened. The
|
|
59
|
+
UTF-8 transfer rewrite (`utf8_strings`) moved to Rust as well.
|
|
60
|
+
- Rust dependents of `arrowsql-core`: the core declares no global allocator
|
|
61
|
+
(mimalloc is the `ddbc_bindings` default feature `mimalloc`), and both
|
|
62
|
+
crates depend on `vendor/mssql-tds` by path instead of a `[patch]`, so a git
|
|
63
|
+
dependency on the core builds the patched TDS crate without a patch section
|
|
64
|
+
of its own. Workspace-wide `cargo test` / `clippy` take `--exclude mssql-tds`.
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
|
|
68
|
+
- `write_arrow(..., workers > 1)` accepts an iterable of record batches (list, generator, objects
|
|
69
|
+
with `__arrow_c_array__`) like `workers=1`, without pyarrow (r5 F9).
|
|
70
|
+
- `write_arrow(..., workers > 1)` reads a native `cursor.arrow_stream()` on demand instead of
|
|
71
|
+
draining it into memory before the workers start; the drain remains for single-connection
|
|
72
|
+
`bulkcopy_arrow`, where it avoids a deadlock (r5 F15).
|
|
73
|
+
- Async `executemany` with a leading NULL decimal no longer declares the whole
|
|
74
|
+
batch `decimal(18,10)` (later values lost digits).
|
|
75
|
+
- Async manual-commit `BEGIN` obeys cancellation.
|
|
76
|
+
- After a server-side rollback under XACT_ABORT, writes stay rejected (25000)
|
|
77
|
+
until `commit()`/`rollback()`: the guard sees through comments, CTEs and
|
|
78
|
+
`BEGIN TRY` blocks, is no longer consumed by the first rejection and also
|
|
79
|
+
covers the async API.
|
|
80
|
+
|
|
17
81
|
## [0.2.0] - 2026-11-01
|
|
18
82
|
|
|
19
83
|
### Added
|
|
@@ -20,7 +20,8 @@ anyone else can just set `DB_CONNECTION_STRING`.
|
|
|
20
20
|
```bash
|
|
21
21
|
python -m pytest -q --timeout 120 tests/common_issues tests/port
|
|
22
22
|
python scripts/check_upstream_baseline.py # vendored upstream suite vs tests/upstream_passing_baseline.txt
|
|
23
|
-
cargo test --lib
|
|
23
|
+
cargo test --workspace --exclude mssql-tds --lib
|
|
24
|
+
cargo test -p arrowsql-core --test live && cargo test -p arrowsql-rowcount # Rust API, needs DB_CONNECTION_STRING
|
|
24
25
|
```
|
|
25
26
|
|
|
26
27
|
Scope and rules for the three suites: [docs/TEST_SCOPE.md](docs/TEST_SCOPE.md). A new
|
|
@@ -29,7 +30,7 @@ add it to `tests/upstream_excluded.txt` with a one-line reason.
|
|
|
29
30
|
|
|
30
31
|
## Code
|
|
31
32
|
|
|
32
|
-
- `cargo clippy --all-targets` should not add warnings; run `cargo fmt` on files you touch.
|
|
33
|
+
- `cargo clippy --workspace --exclude mssql-tds --all-targets` should not add warnings; run `cargo fmt` on files you touch.
|
|
33
34
|
- Edits to the vendored Python layer (`python/arrowsql`) and to `vendor/mssql-tds`
|
|
34
35
|
are marked `RUST-PORT` and listed in `docs/PYTHON_LAYER_CHANGES.md` /
|
|
35
36
|
`vendor/mssql-tds/VENDOR.md`. Keep upstream's lines unchanged where you can.
|
|
@@ -78,6 +78,30 @@ dependencies = [
|
|
|
78
78
|
"bitflags",
|
|
79
79
|
]
|
|
80
80
|
|
|
81
|
+
[[package]]
|
|
82
|
+
name = "arrowsql-core"
|
|
83
|
+
version = "0.3.0"
|
|
84
|
+
dependencies = [
|
|
85
|
+
"arrow-array",
|
|
86
|
+
"arrow-buffer",
|
|
87
|
+
"arrow-schema",
|
|
88
|
+
"async-trait",
|
|
89
|
+
"encoding_rs",
|
|
90
|
+
"log",
|
|
91
|
+
"mssql-tds",
|
|
92
|
+
"parking_lot",
|
|
93
|
+
"tokio",
|
|
94
|
+
"uuid",
|
|
95
|
+
]
|
|
96
|
+
|
|
97
|
+
[[package]]
|
|
98
|
+
name = "arrowsql-rowcount"
|
|
99
|
+
version = "0.3.0"
|
|
100
|
+
dependencies = [
|
|
101
|
+
"arrow-array",
|
|
102
|
+
"arrowsql-core",
|
|
103
|
+
]
|
|
104
|
+
|
|
81
105
|
[[package]]
|
|
82
106
|
name = "asn1-rs"
|
|
83
107
|
version = "0.7.2"
|
|
@@ -274,13 +298,15 @@ checksum = "4583a4551df46e2792f82ceeac45e850d2e2d5debba0b91f102385cda5b11f06"
|
|
|
274
298
|
|
|
275
299
|
[[package]]
|
|
276
300
|
name = "ddbc_bindings"
|
|
277
|
-
version = "0.
|
|
301
|
+
version = "0.3.0"
|
|
278
302
|
dependencies = [
|
|
279
303
|
"arrow-array",
|
|
280
304
|
"arrow-buffer",
|
|
281
305
|
"arrow-schema",
|
|
306
|
+
"arrowsql-core",
|
|
282
307
|
"async-trait",
|
|
283
308
|
"encoding_rs",
|
|
309
|
+
"log",
|
|
284
310
|
"mimalloc",
|
|
285
311
|
"mssql-tds",
|
|
286
312
|
"parking_lot",
|
|
@@ -1,29 +1,45 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "ddbc_bindings"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.3.0"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
license = "MIT"
|
|
6
6
|
description = "Rust (PyO3 + mssql-tds) replacement for mssql-python's ODBC-based ddbc_bindings"
|
|
7
7
|
publish = false
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
|
|
10
|
+
[workspace]
|
|
11
|
+
members = ["crates/*"]
|
|
12
|
+
# vendor/mssql-tds is a member too (a path dependency under the root), but its
|
|
13
|
+
# tests need dev-dependencies the vendored copy leaves out: workspace-wide
|
|
14
|
+
# cargo test / clippy runs pass `--exclude mssql-tds`.
|
|
15
|
+
resolver = "3"
|
|
16
|
+
|
|
10
17
|
[lib]
|
|
11
18
|
name = "ddbc_bindings"
|
|
12
19
|
crate-type = ["cdylib", "rlib"]
|
|
13
20
|
|
|
14
21
|
[features]
|
|
22
|
+
default = ["mimalloc"]
|
|
23
|
+
# mimalloc as the process allocator of the extension module (the core
|
|
24
|
+
# declares none, so a Rust dependent keeps its own).
|
|
25
|
+
mimalloc = ["dep:mimalloc"]
|
|
15
26
|
# Legacy TLS: native-tls (OpenSSL) + OpenSSL Always Encrypted crypto instead of rustls.
|
|
16
27
|
# Adds ~8 MB (libssl, libcrypto, libzstd) to the wheel. Build: maturin build --features native-tls
|
|
17
|
-
native-tls = ["mssql-tds/native-tls-backend"]
|
|
28
|
+
native-tls = ["mssql-tds/native-tls-backend", "arrowsql-core/native-tls"]
|
|
18
29
|
|
|
19
30
|
[dependencies]
|
|
20
31
|
pyo3 = { version = "0.29.0", features = ["extension-module"] }
|
|
21
|
-
#
|
|
22
|
-
|
|
32
|
+
# Connect/execute/fetch, Arrow decoding and the parallel read, without pyo3.
|
|
33
|
+
arrowsql-core = { path = "crates/arrowsql-core" }
|
|
34
|
+
log = "0.4"
|
|
35
|
+
# Microsoft's native TDS implementation (MIT), vendored with local patches
|
|
36
|
+
# (vendor/mssql-tds/VENDOR.md). A path dependency, so crates that depend on
|
|
37
|
+
# arrowsql-core by git get the patched copy without a [patch] of their own.
|
|
38
|
+
mssql-tds = { path = "vendor/mssql-tds", default-features = false, features = ["gssapi", "rustls-tls"] }
|
|
23
39
|
tokio = { version = "1", features = ["rt", "rt-multi-thread", "net", "time", "sync", "macros"] }
|
|
24
40
|
parking_lot = "0.12"
|
|
25
41
|
uuid = "1"
|
|
26
|
-
mimalloc = { version = "0.1", default-features = false }
|
|
42
|
+
mimalloc = { version = "0.1", default-features = false, optional = true }
|
|
27
43
|
# Arrow arrays + the C Data / C Stream interfaces (src/arrow/). Columns are
|
|
28
44
|
# built with our own buffers and only wrapped as arrow-rs arrays for export.
|
|
29
45
|
arrow-array = { version = "60", default-features = false, features = ["ffi"] }
|
|
@@ -37,13 +53,13 @@ async-trait = "0.1"
|
|
|
37
53
|
# Windows: in-tree Schannel TLS (msodbcsql's stack) instead of rustls, which fails the
|
|
38
54
|
# handshake with SQL Server's self-generated certificate on Windows.
|
|
39
55
|
[target.'cfg(windows)'.dependencies]
|
|
40
|
-
mssql-tds = {
|
|
56
|
+
mssql-tds = { path = "vendor/mssql-tds", default-features = false, features = ["gssapi", "rustls-tls", "tls-schannel-direct-on-windows"] }
|
|
41
57
|
|
|
42
58
|
# musl cannot load a shared library that uses initial-exec TLS through dlopen
|
|
43
59
|
# ("initial-exec TLS resolves to dynamic definition"): mimalloc's thread-local
|
|
44
60
|
# heap pointer has to use the local-dynamic model there.
|
|
45
61
|
[target.'cfg(target_env = "musl")'.dependencies]
|
|
46
|
-
mimalloc = { version = "0.1", default-features = false, features = ["local_dynamic_tls"] }
|
|
62
|
+
mimalloc = { version = "0.1", default-features = false, features = ["local_dynamic_tls"], optional = true }
|
|
47
63
|
|
|
48
64
|
[build-dependencies]
|
|
49
65
|
pyo3-build-config = "0.29.0"
|
|
@@ -65,11 +81,6 @@ panic = "unwind"
|
|
|
65
81
|
# Stripped symbols: smaller .so, no effect on speed (no runtime symbolication needed).
|
|
66
82
|
strip = true
|
|
67
83
|
|
|
68
|
-
# Microsoft's mssql-tds at the pinned rev, with one local patch (see
|
|
69
|
-
# vendor/mssql-tds/VENDOR.md). Remove when the fix is upstream.
|
|
70
|
-
[patch."https://github.com/microsoft/mssql-rs"]
|
|
71
|
-
mssql-tds = { path = "vendor/mssql-tds" }
|
|
72
|
-
|
|
73
84
|
# Hot crates at opt-level 3: the bindings with the inlined mssql-tds, pyo3 and
|
|
74
85
|
# tokio, plus allocator, text decoding, buffers and record-layer crypto.
|
|
75
86
|
[profile.release.package.mimalloc]
|
|
@@ -94,6 +105,8 @@ opt-level = 3
|
|
|
94
105
|
opt-level = 3
|
|
95
106
|
[profile.release.package.ddbc_bindings]
|
|
96
107
|
opt-level = 3
|
|
108
|
+
[profile.release.package.arrowsql-core]
|
|
109
|
+
opt-level = 3
|
|
97
110
|
[profile.release.package.mssql-tds]
|
|
98
111
|
opt-level = 3
|
|
99
112
|
[profile.release.package.pyo3]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: arrowsql
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Classifier: Development Status :: 3 - Alpha
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: Operating System :: POSIX :: Linux
|
|
@@ -61,6 +61,8 @@ Project-URL: Upstream, https://github.com/microsoft/mssql-python
|
|
|
61
61
|
- **2-7x faster than mssql-python**, up to 10x faster than pyodbc on large reads.
|
|
62
62
|
- **Arrow out of the box:** results go straight to DuckDB, polars, pyarrow and Delta, no pyarrow required.
|
|
63
63
|
- **Parallel reads and bulk loads** over several connections.
|
|
64
|
+
- **Rust core crate:** `crates/arrowsql-core` (no pyo3) exposes connect, execute and the parallel Arrow read to other Rust programs.
|
|
65
|
+
- **DNS cache:** resolved hosts are reused and served stale while refreshing (`DnsCacheTTL=<seconds>`, default 300, `0` disables).
|
|
64
66
|
- **No ODBC driver:** native TDS in Rust, zero required dependencies, wheels for Linux, macOS and Windows.
|
|
65
67
|
- **Drop-in:** same DB-API, same connection strings; `import mssql_python` keeps working.
|
|
66
68
|
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
- **2-7x faster than mssql-python**, up to 10x faster than pyodbc on large reads.
|
|
21
21
|
- **Arrow out of the box:** results go straight to DuckDB, polars, pyarrow and Delta, no pyarrow required.
|
|
22
22
|
- **Parallel reads and bulk loads** over several connections.
|
|
23
|
+
- **Rust core crate:** `crates/arrowsql-core` (no pyo3) exposes connect, execute and the parallel Arrow read to other Rust programs.
|
|
24
|
+
- **DNS cache:** resolved hosts are reused and served stale while refreshing (`DnsCacheTTL=<seconds>`, default 300, `0` disables).
|
|
23
25
|
- **No ODBC driver:** native TDS in Rust, zero required dependencies, wheels for Linux, macOS and Windows.
|
|
24
26
|
- **Drop-in:** same DB-API, same connection strings; `import mssql_python` keeps working.
|
|
25
27
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "arrowsql-core"
|
|
3
|
+
version = "0.3.0"
|
|
4
|
+
edition = "2024"
|
|
5
|
+
license = "MIT"
|
|
6
|
+
description = "SQL Server over TDS into Arrow record batches: the Python-free core of arrowsql"
|
|
7
|
+
publish = false
|
|
8
|
+
|
|
9
|
+
[features]
|
|
10
|
+
# Legacy TLS: native-tls (OpenSSL) + OpenSSL Always Encrypted crypto instead of rustls.
|
|
11
|
+
native-tls = ["mssql-tds/native-tls-backend"]
|
|
12
|
+
|
|
13
|
+
[dependencies]
|
|
14
|
+
# Microsoft's native TDS implementation (MIT), vendored with local patches
|
|
15
|
+
# (vendor/mssql-tds/VENDOR.md): a path dependency, so a git dependent of this
|
|
16
|
+
# crate builds the patched copy without a [patch] section.
|
|
17
|
+
mssql-tds = { path = "../../vendor/mssql-tds", default-features = false, features = ["gssapi", "rustls-tls"] }
|
|
18
|
+
tokio = { version = "1", features = ["rt", "rt-multi-thread", "net", "time", "sync", "macros"] }
|
|
19
|
+
parking_lot = "0.12"
|
|
20
|
+
uuid = "1"
|
|
21
|
+
arrow-array = { version = "60", default-features = false, features = ["ffi"] }
|
|
22
|
+
arrow-buffer = "60"
|
|
23
|
+
arrow-schema = { version = "60", features = ["ffi"] }
|
|
24
|
+
encoding_rs = "0.8"
|
|
25
|
+
async-trait = "0.1"
|
|
26
|
+
log = "0.4"
|
|
27
|
+
|
|
28
|
+
# Windows: in-tree Schannel TLS (msodbcsql's stack) instead of rustls, which fails the
|
|
29
|
+
# handshake with SQL Server's self-generated certificate on Windows.
|
|
30
|
+
[target.'cfg(windows)'.dependencies]
|
|
31
|
+
mssql-tds = { path = "../../vendor/mssql-tds", default-features = false, features = ["gssapi", "rustls-tls", "tls-schannel-direct-on-windows"] }
|