Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 01:22

What's Changed

  • Map Spanner gRPC status codes to specific ADBC statuses by @fornwall in #20
  • Auto-detect credential type from keyfile JSON type field by @fornwall in #23
  • Rename vendor option prefix adbc.spanner.* to spanner.* by @fornwall in #24
  • Accept all Arrow timestamp units in bind, preserving nanosecond precision by @fornwall in #22
  • Scaffold the ADBC Driver Foundry validation harness (non-gating) by @fornwall in #25
  • Read TIMESTAMP at nanosecond precision (matches the bind/write path) by @fornwall in #27
  • Add PyPI/build badges to the Python package README by @fornwall in #26
  • Tag JSON columns with the arrow.json extension type by @fornwall in #29
  • Bind parameters positionally; make the Foundry type/bind suite pass by @fornwall in #28
  • Add service-account impersonation (spanner.impersonate.* options) by @fornwall in #30
  • Port the Foundry type/select suite to Spanner (dialect overrides + skips) by @fornwall in #31
  • Add Polars/pandas dataframe usability tests against the emulator by @fornwall in #32
  • Implement create-mode bulk ingest; port the Foundry ingest suite by @fornwall in #33
  • Add differential (oracle) test for the Spanner->Arrow type mapping by @fornwall in #34
  • Pin Linux wheel builds to glibc 2.35 and enforce the manylinux tag by @fornwall in #35
  • Make cancellation sticky so a cancel between stream chunks is not lost by @fornwall in #36
  • Fix most Foundry connection/statement metadata cases by @fornwall in #38
  • Add Toxiproxy transport-fault resilience harness by @fornwall in #37
  • Support ARRAY parameter binding and bulk-ingest by @fornwall in #39
  • Error on undecodable wire values instead of fabricating NULLs by @fornwall in #41
  • Declare all four ingest modes in the validation quirks; re-gate the two skipped tests by @fornwall in #42
  • Report DriverArrowVersion in get_info by @fornwall in #43
  • Implement the Foundry sample_ddl_constraints hook; report non-FK constraint_column_usage as NULL by @fornwall in #44
  • Return rows from DML with THEN RETURN instead of discarding them by @fornwall in #45
  • Lex GoogleSQL raw and triple-quoted strings in the SQL scanners by @fornwall in #46
  • Quote identifiers with GoogleSQL escapes; decouple ingest param names by @fornwall in #47
  • Port the Foundry type/literal suite to Spanner (dialect overrides + skips) by @fornwall in #48
  • Classify statements behind leading @{...} statement hints by @fornwall in #49
  • Tolerate trailing semicolons on queries; gate SqlQueryTrailingSemicolons by @fornwall in #51
  • Preserve the gRPC code in vendor_code; map ABORTED to IO, not Internal by @fornwall in #50
  • Cover the autocommit-toggle commit of buffered DML with a real test by @fornwall in #52
  • Download only the library artifacts in the release job by @fornwall in #53
  • Pin release-path actions to commit SHAs; least-privilege workflow tokens by @fornwall in #54
  • Make the emulator scripts fail fast instead of falling through by @fornwall in #55
  • Add an actionlint job to CI by @fornwall in #56
  • Bind Utf8View/BinaryView, Int8 and Date64 parameters by @fornwall in #57
  • Group statistics columns once; harden the metadata batch builders by @fornwall in #58
  • Python packaging polish: license in the wheel, version floors, _version.py sync by @fornwall in #59
  • Test/fuzz upkeep: scratch-table cleanup, JSON/FLOAT32 coverage, fuzz-corpus caching by @fornwall in #60
  • Enforce the macOS deployment target; bump x86-64 to 10.15 by @fornwall in #61
  • Keep the buffered DML when a manual-transaction commit fails by @fornwall in #62
  • Align get_table_types with the vocabulary get_objects reports by @fornwall in #63
  • Build Utf8 columns with a StringBuilder in the read hot path by @fornwall in #64
  • Resolve bind parameter names once per batch, not per row by @fornwall in #65
  • Drop comment-only segments in split_statements by @fornwall in #66
  • Accept the standard isolation-level connection option by @fornwall in #67
  • Map ingest-append failures to the spec-mandated error statuses by @fornwall in #68
  • docs: fix README Rust quickstart deps and document all ingest modes by @fornwall in #69
  • Accept adbc.ingest.target_db_schema and target_catalog by @fornwall in #71
  • perf: group get_objects INFORMATION_SCHEMA batches into HashMaps by @fornwall in #72
  • Add spanner.read.staleness / spanner.read.timestamp options (stale reads) by @fornwall in #73
  • Trigger bulk ingest through execute(), not just execute_update() by @fornwall in #70
  • ci: inspect wheels before publishing to PyPI by @fornwall in #74
  • Make build.rs fall back gracefully when Cargo.lock is missing by @fornwall in #76
  • Document the adbc.connection.readonly connection option by @fornwall in #78
  • Add offline unit tests for statement.rs option-coercion helpers by @fornwall in #77
  • Cap streamed chunks by an approximate byte budget, not just row count by @fornwall in #75
  • Gate tag→publish on tests and green CI (REVIEW.md P1 #4) by @fornwall in #79
  • test: cover adbc.connection.readonly enforcement by @fornwall in #82
  • docs: correct CLAUDE.md against ground truth by @fornwall in #80
  • test: fail loud instead of self-skipping when target env is missing by @fornwall in #81
  • refactor: extract shared src/options.rs for option parsing by @fornwall in #83
  • docs: document ingest modes, emulator port-9010, and manual-mode None in README by @fornwall in #84
  • docs: document read_partition executable-descriptor trust caveat by @fornwall in #87
  • ci: hoist tag-vs-version check into a shared version-gate job by @fornwall in #86
  • test: cover create_append ingest and create-on-existing error path by @fornwall in #85
  • refactor: move INFORMATION_SCHEMA collectors into feature modules by @fornwall in #88
  • fix: drop parse_int64 f64 fallback that lost precision above 2^53 by @fornwall in #92
  • docs: single revert-checklist anchor for the two git-pin revs by @fornwall in #90
  • fix: bounds-check str_col to avoid panic on zero-column metadata batch by @fornwall in #89
  • perf: run get_statistics per-table scans with bounded concurrency by @fornwall in #93
  • fix: exclude TOKENLIST/PROTO columns from get_statistics distinct counts by @fornwall in #91
  • docs: spell out manual-transaction no-read-your-writes and DML/DDL reordering by @fornwall in #96
  • Accept adbc.ingest.temporary=false as a no-op by @fornwall in #95
  • Fix is_dml_returning false positive on CASE ... THEN return by @fornwall in #94
  • Fix autocommit-enable race that could strand concurrently buffered DML by @fornwall in #97
  • Chunk bulk-ingest DML under Spanner's per-commit limits (REVIEW.md P1 #3, stage a) by @fornwall in #98
  • ci: run doctests and build docs with --all-features by @fornwall in #99
  • Make get_table_schema honor its catalog argument by @fornwall in #100
  • Error loudly on undecodable values in ARRAY/STRUCT columns by @fornwall in #101
  • Refuse emulator mode combined with explicit credentials by @fornwall in #102
  • Reject DML in execute_schema with a clear error by @fornwall in #103
  • Add consolidated option tables to both READMEs by @fornwall in #107
  • Make adbc.connection.readonly a live flag instead of a creation-time snapshot by @fornwall in #105
  • Factor dense-union assembly into a shared nested::dense_union helper by @fornwall in #104
  • Skip all INFORMATION_SCHEMA queries in get_objects at Catalogs depth by @fornwall in #106
  • Add test coverage for four small untested surfaces by @fornwall in #108
  • Stream bound queries in one shared read-only snapshot by @fornwall in #109
  • Report SPANNER_TYPE as xdbc_type_name in get_objects by @fornwall in #110
  • Add tests proving sliced batches/arrays bind at their offset by @fornwall in #111
  • get_statistics: serve exact statistics for approximate=true by @fornwall in #112
  • Add criterion benchmarks for the rows-to-Arrow conversion path by @fornwall in #113
  • Bind arrow.json-tagged parameters as Spanner JSON by @fornwall in #114

Full Changelog: v0.5.0...v0.6.0