fix(go): fall back to row-based reader when Storage Read isn't accelerated - #6
Open
will-sargent-dbtlabs wants to merge 1 commit into
Open
fix(go): fall back to row-based reader when Storage Read isn't accelerated#6will-sargent-dbtlabs wants to merge 1 commit into
will-sargent-dbtlabs wants to merge 1 commit into
Conversation
…rated !iter.IsAccelerated() previously hard-failed the query whenever the Storage Read API session wasn't available, whether from a permissions gap or a transient outage. The row-based reader doesn't need Storage Read, so use it as a fallback instead of failing the read — this is the same OR-fallback proposed against dbt-labs/dbt-core#15463.
will-sargent-dbtlabs
had a problem deploying
to
BigQuery CI
August 5, 2026 02:05 — with
GitHub Actions
Error
will-sargent-dbtlabs
had a problem deploying
to
BigQuery CI
August 5, 2026 02:05 — with
GitHub Actions
Error
will-sargent-dbtlabs
had a problem deploying
to
BigQuery CI
August 5, 2026 02:05 — with
GitHub Actions
Failure
will-sargent-dbtlabs
had a problem deploying
to
BigQuery CI
August 5, 2026 02:05 — with
GitHub Actions
Failure
This was referenced Aug 5, 2026
will-sargent-dbtlabs
requested review from
ajhlee-dbt,
serramatutu and
xuliangs
August 5, 2026 02:13
Author
|
Requesting review before merging — this touches the same file you three have been actively porting/patching, so a second pair of eyes seems worth it. On CI: the failing checks (
Happy to help chase the pre-existing CI/lint debt separately if useful, but didn't want to scope-creep this PR into fixing it. |
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
runQuerycurrently hard-fails a query whenever!iter.IsAccelerated()— i.e. the BigQuery Storage Read API session wasn't available, whether from a permissions gap (readSessionUser) or the Storage API being transiently unavailable. This PR makes that condition fall back to the existing row-based reader (newRowBasedArrowIterator) instead of failing, since the row-based path doesn't require Storage Read at all.Why
We saw this surface as an intermittent, non-deterministic dbt test failure at a customer (
not_null_...failing, then passing 10s later on rerun, no data or code change in between) — tracked publicly at dbt-labs/dbt-core#15463. That issue was closed asStalefor lack of a fully deterministic repro, but the code-level cause is this hard failure on!IsAccelerated().This repo already has the row-based reader wired in via
useLegacyAPI(ported in #5 from the legacy driver), but only as an opt-in decided before the query runs. This PR just OR's the reactive case (!IsAccelerated()at read time) into the same fallback, so a lost/denied Storage session degrades gracefully instead of failing the query.Related upstream:
adbc-drivers/bigquery#66(no fallback when Storage isn't available) andadbc-drivers/bigquery#171(adds timeouts + config scaffolding for a future REST fallback, but explicitly defers implementing it). This PR doesn't touch adbc-drivers#171's code paths, just the adjacent!IsAccelerated()branch.Testing
go build ./...passes. Also added alogger.WarnContexton the fallback path so it's diagnosable in the field rather than silent.cc @ajhlee-dbt @xuliangs @serramatutu since you've been the ones actively porting/maintaining this file — flagging in case this overlaps with anything you're mid-flight on.