test: parametrize to_arrow empty stream tests and update docstrings - #17919
Merged
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request adds documentation and inline comments to clarify the behavior of to_arrow() on empty streams in ReadRowsIterable and ReadRowsStream. It also introduces a new unit test, test_to_arrow_empty_stream, to verify empty stream handling. Feedback on the unit test highlights a potential TypeError when testing ReadRowsIterable because it does not accept a read_session argument, and suggests a code modification to conditionally handle this case.
daniel-sanche
approved these changes
Jul 28, 2026
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.
Problem
When reading from an empty BigQuery table using the Read API, the stream may return no messages. Previously, this could lead to an
AttributeErrorwhen trying to parse the schema from aNoneparser. While a fallback was added to return an empty table, this fallback uses an empty schema (zero columns), which can cause downstream consumers (like Vertex Ray) to fail if they expect specific columns to be present.Solution
reader.pyto clarify the flow betweenReadRowsStream.to_arrow()andReadRowsIterable.to_arrow(), and to inform users about the fallback behavior.test_reader_v1_arrow.pyto verify the behavior ofto_arrow()on empty streams, both with and without aread_sessionprovided.Notes to Reviewers
read_sessiontoReadRowsStream.to_arrow().Fixes internal bug #352600521