Skip to content

feat(bigquery): add ArrowQueryPageFetcher for Arrow query result pagination - #14404

Open
jinseopkim0 wants to merge 3 commits into
feat-bigquery-arrow-itfrom
feat-bigquery-arrow-page-fetcher
Open

jinseopkim0 wants to merge 3 commits into
feat-bigquery-arrow-itfrom
feat-bigquery-arrow-page-fetcher

Conversation

@jinseopkim0

Copy link
Copy Markdown
Contributor

This PR introduces ArrowQueryPageFetcher to handle pagination for queries executing with QueryResultsFormat.ARROW.

Summary of Changes

  • Implements ArrowQueryPageFetcher implementing NextPageFetcher<FieldValueList>.
  • Connects to the default storage read stream to fetch subsequent row pages.
  • Leverages ArrowDeserializer.loadArrowRows to deserialize Arrow record batches into FieldValueList collections with offset and maxResults bounding.
  • Adds ArrowQueryPageFetcherTest covering single-page, multi-page, max-results, and serialization behaviors.

@jinseopkim0
jinseopkim0 added this pull request to stack #14406 September 16, 2026 17:04
@jinseopkim0
jinseopkim0 requested a review from lqiu96 September 16, 2026 17:05
@jinseopkim0
jinseopkim0 marked this pull request as ready for review September 16, 2026 17:05
@jinseopkim0
jinseopkim0 requested review from a team as code owners September 16, 2026 17:05

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the ArrowQueryPageFetcher static class in BigQueryImpl.java to handle pagination for queries returning results in Arrow format by reading from the default gRPC storage read stream. It also updates configureReadSettings to use NoHeaderProvider as a default and adds a comprehensive suite of unit tests in ArrowQueryPageFetcherTest.java to verify the fetcher's behavior, including pagination, limit enforcement, error handling, and serialization. There are no review comments, so no additional feedback is provided.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant