What's Changed
- feat(validation): rewrite the suite's dialect-sensitive SQL via RewriteSql — 30 more cases gate-enforced by @fornwall in #283
- docs: document Spanner transactions and every gRPC call the driver makes by @fornwall in #336
- perf(conversion): let pull_chunk's row Vec grow instead of reserving the cap (PERF-4) by @fornwall in #332
- feat(partitions)!: remove the inert spanner.partition.max_count option by @fornwall in #337
- refactor(statement): unify the three table-exists probe remaps (IDIO-9) by @fornwall in #333
- fix(conversion): decode STRUCT fields positionally only (CONV-6) by @fornwall in #334
- refactor(options): fold the four f64 seconds parsers into one helper (IDIO-4) by @fornwall in #326
- fix(options): name the offending option key in every option error (IDIO-7) by @fornwall in #331
- refactor(options): bundle the connection/statement config into one SharedConfig (IDIO-2) by @fornwall in #329
- docs(review): resolve SPEC-4 — isolation promotion is conformant support, not a deviation by @fornwall in #338
- feat(ingest): map UInt8/16/32 → INT64 and FixedSizeBinary → BYTES by @fornwall in #341
- chore(fuzz): make fuzz/ a root-workspace member, dropping its second lock (TEST-13) by @fornwall in #339
- test(validation): un-exclude SqlPrepareUpdate/Stream via apache/arrow-adbc#4534 by @fornwall in #343
- fix(ingest): accept an empty (zero-batch) bulk-ingest stream by @fornwall in #340
- docs(review): resolve UP-8 — prost's default recursion limit bounds hostile nested STRUCT metadata by @fornwall in #344
- refactor(conversion): plain for loop instead of iter_mut().for_each (IDIO-19) by @fornwall in #345
- docs(request): reword stale option-count in module doc count-free (IDIO-17) by @fornwall in #346
- test(python): drive a vendor option through db_kwargs end-to-end (TEST-10) by @fornwall in #347
- docs(conversion): document the CAST write-back workaround for ENUM/PROTO/INTERVAL/UUID (CONV-5) by @fornwall in #350
- test(fuzz): add staleness, directed_read and URI parser fuzz targets (TEST-9) by @fornwall in #354
- feat(request): carry priority on ExecuteBatchDml and BatchWrite (UP-4, UP-5, SPAN-8) by @fornwall in #355
- fix(statistics): take discovery and per-table scans at one consistent snapshot (SPAN-5) by @fornwall in #353
- test(fuzz): list all four partition seeds in the corpus oracle test by @fornwall in #356
- ci: run the fuzzing-feature unit tests in CI by @fornwall in #357
- fix(conversion): cap nested STRUCT/ARRAY type recursion depth (SEC-5) by @fornwall in #352
- fix(ingest): fold same-chunk applied groups into the committed-rows annotation (COR-5) by @fornwall in #348
- build(validation): compile the C++ harness with -Wall -Wextra -Werror by @fornwall in #358
- fix(spec): align status codes for unsupported catalog/schema set and the execute_schema guard (SPEC-6) by @fornwall in #351
- style(validation): enforce clang-format on the C++ harness by @fornwall in #359
- docs(adbc): correct the ADBC guide against the code and add two diagrams by @fornwall in #360
- chore(deps): update Cargo.lock to latest semver-compatible versions by @fornwall in #361
- docs(options): correct the ingest-mode default, add the missing exec.incremental option, restructure by level by @fornwall in #363
- docs(claude): correct how ErrorCompatibility is gated in the validation script by @fornwall in #364
- docs(transactions): fix stale citations and correct two behaviour claims by @fornwall in #366
- docs(dbt): correct the Spanner dialect claims in the design sketch by @fornwall in #365
- fix(python): add missing typed option members + derive-based parity guard by @fornwall in #368
- fix(fuzz): fuzz every target in CI (derived matrix); refresh docs/testing.md by @fornwall in #362
- fix(python): reconcile option-parity test with the by-level docs restructure by @fornwall in #370
- docs: trim verbose and redundant Rust comments by @fornwall in #367
- docs(python): document ADC as a first-class auth method; fix visible test-skip markers by @fornwall in #369
- fix(statement): zero-row bound query returns the query's real schema (COR-9) by @fornwall in #373
- fix(statement): clear bound data on the bound-query error path (COR-12) by @fornwall in #372
- fix(txn): recover poisoned TxnState mutex instead of bricking the connection (CON-4) by @fornwall in #371
- fix(ingest): annotate later-chunk mutation-build failures with committed rows (COR-6) by @fornwall in #374
- fix(ingest): flag ambiguous outcome for cancelled/timed-out chunk commit (CON-5) by @fornwall in #375
- fix(spanner): honor spanner.read.staleness on get_objects and the execute_schema PLAN probe (SPAN-4) by @fornwall in #349
- perf(conversion): prefetch bound-query chunks (PERF-1) by @fornwall in #376
- perf(conversion): compute DATE epoch days in closed form (PERF-3) by @fornwall in #379
- docs(review): resolve TEST-11 — PR clippy already gates bench compilation by @fornwall in #384
- chore(validation): point the ADBC validation suite back at apache/arrow-adbc main by @fornwall in #385
- chore(validation): bump the Foundry suite pin to current upstream main by @fornwall in #386
- chore(deps): Bump tokio from 1.53.0 to 1.53.1 by @dependabot[bot] in #392
- chore(deps): Bump serde_json from 1.0.150 to 1.0.151 by @dependabot[bot] in #391
- chore(deps): Bump futures-util from 0.3.32 to 0.3.33 by @dependabot[bot] in #390
- chore(deps): Bump pypa/gh-action-pypi-publish from 1.14.0 to 1.14.1 by @dependabot[bot] in #389
- chore(deps): Bump taiki-e/install-action from 2.83.2 to 2.84.1 by @dependabot[bot] in #388
- chore(deps): Bump actions/setup-python from 6 to 7 by @dependabot[bot] in #387
- feat(request): expose spanner.transaction.exclude_from_change_streams (SPAN-9) by @fornwall in #383
- test(mock): cover ExecuteBatchDml mid-batch failure and commit-ABORT replay (TEST-8) by @fornwall in #382
- test(mock): assert request priority/tags reach the wire and metadata stays untagged (TEST-4) by @fornwall in #378
- chore(deps): bump arrow-adbc to 3b3f123a and the foundry suite to 1c20ca4b (UP-9) by @fornwall in #394
Full Changelog: v0.7.0...v0.8.0