Skip to content
This repository was archived by the owner on Mar 5, 2026. It is now read-only.

feat: Row readers using storage API acceleration can leverage full precision arrow values#656

Merged
gcf-merge-on-green[bot] merged 18 commits intomainfrom
bigquery-test-create-reader-3
Mar 3, 2026
Merged

feat: Row readers using storage API acceleration can leverage full precision arrow values#656
gcf-merge-on-green[bot] merged 18 commits intomainfrom
bigquery-test-create-reader-3

Conversation

@danieljbruce
Copy link
Contributor

@danieljbruce danieljbruce commented Mar 2, 2026

Description

This PR allows users to fetch high precision timestamps for read calls with arrow readers. Previous to this PR there was no way users could

Impact

With the ArrowReaders in this code repository, now users can fetch and consume data from the server that preserves high precision timestamps on the backend.

Testing

A system test is added that proves the timestamp fetched from the server is high precision.

Additional Information

Something to be aware of is that this PR introduces an API change. For various read methods that users can call they can specify a value for the arrowSerializationOptions property of their request which will be passed onto the server. This allows users to opt into receiving high precision timestamps instead of getting them automatically because automatically opting them in could change values they are currently getting from ints to strings which is a breaking change.

Support for Avro readers will be done in a separate PR.

In this PR we make the minimal amount of changes necessary to allow users to fetch high precision timestamps for arrow readers, but there may be additional changes that could make it easier for users to write code to fetch high precision timestamps instead of the current system test we have. That should be deliberated in a separate PR though. For instance, we can expand the GetRowsOptions interface.

@product-auto-label product-auto-label bot added size: m Pull request size is medium. api: bigquerystorage Issues related to the googleapis/nodejs-bigquery-storage API. labels Mar 2, 2026
@danieljbruce danieljbruce marked this pull request as ready for review March 2, 2026 20:41
@danieljbruce danieljbruce requested review from a team as code owners March 2, 2026 20:41
@danieljbruce danieljbruce requested a review from alvarowolfx March 2, 2026 20:41
Copy link
Contributor

@alvarowolfx alvarowolfx left a comment

Choose a reason for hiding this comment

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

just a nit on the inline comment. I don't think is needed

if (request.arrowSerializationOptions) {
// Use Object.assign instead of defining property inline.
// We prefer no arrowSerializationOptions property in the JSON request
// instead of having an `arrowSerializationOptions: undefined` mapping.
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: I think this comment is a bit redundant

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Addressed in #657

@danieljbruce danieljbruce added automerge Merge the pull request once unit tests and other checks pass. owlbot:run Add this label to trigger the Owlbot post processor. labels Mar 3, 2026
@gcf-owl-bot gcf-owl-bot bot removed the owlbot:run Add this label to trigger the Owlbot post processor. label Mar 3, 2026
@gcf-merge-on-green gcf-merge-on-green bot merged commit 82e74d8 into main Mar 3, 2026
20 of 21 checks passed
@gcf-merge-on-green gcf-merge-on-green bot removed the automerge Merge the pull request once unit tests and other checks pass. label Mar 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

api: bigquerystorage Issues related to the googleapis/nodejs-bigquery-storage API. size: m Pull request size is medium.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants