Skip to content

fix(bigquery): remove PendingDeprecationWarning from RowIterator.to_arrow - #18684

Merged
tswast merged 1 commit into
mainfrom
fix/bigquery-revert-to-arrow-deprecation
Oct 15, 2026
Merged

tswast merged 1 commit into
mainfrom
fix/bigquery-revert-to-arrow-deprecation

Conversation

@ohmayr

@ohmayr ohmayr commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Remove the PendingDeprecationWarning from RowIterator.to_arrow() and _EmptyRowIterator.to_arrow() that was added in #18021, while keeping the pandas-gbq deprecation warning on to_dataframe().

  • Remove _TO_ARROW_DEPRECATED and the PendingDeprecationWarning in RowIterator.to_arrow() and _EmptyRowIterator.to_arrow().
  • Remove the warning filter around self.to_arrow() in RowIterator.to_dataframe().
  • Update unit tests in tests/unit/test_table.py to assert to_arrow() does not emit deprecation warnings.

…rrow

Revert the PendingDeprecationWarning added to RowIterator.to_arrow()
and _EmptyRowIterator.to_arrow() in #18021 while keeping the warning on
to_dataframe(). Direct PyArrow table and record batch reads remain
supported on RowIterator.
@ohmayr
ohmayr requested review from a team as code owners October 13, 2026 19:51
@ohmayr
ohmayr requested review from sycai and removed request for a team October 13, 2026 19:51

@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 removes the deprecation warning for retrieving PyArrow Tables via google-cloud-bigquery, updating both the implementation and unit tests accordingly. A critical issue was identified in the unit tests where str(warning) is used on WarningMessage objects instead of str(warning.message). This would cause the test assertion to fail, and a code suggestion has been provided to resolve this.

sport_warnings = [w for w in warned if "sport" in str(w.message)]
self.assertEqual(len(sport_warnings), 2)
self.assertEqual(len(warned), 2)
self.assertTrue(all("sport" in str(warning) for warning in warned))

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.

medium

In Python's warnings.catch_warnings(record=True), the elements of the recorded list are warnings.WarningMessage objects, which do not override __str__ to return the warning message. Using str(warning) will return a generic object representation string (e.g., '<warnings.WarningMessage object at ...>'), causing the 'sport' in str(warning) check to fail. Please use str(warning.message) instead.

Suggested change
self.assertTrue(all("sport" in str(warning) for warning in warned))
self.assertTrue(all('sport' in str(warning.message) for warning in warned))

@ohmayr
ohmayr requested review from tswast and removed request for sycai October 13, 2026 19:54

@tswast tswast 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.

Thanks

@tswast
tswast merged commit 9025061 into main Oct 15, 2026
53 checks passed
@tswast
tswast deleted the fix/bigquery-revert-to-arrow-deprecation branch October 15, 2026 14:51
@release-please release-please Bot mentioned this pull request Oct 15, 2026
hj690 pushed a commit that referenced this pull request Oct 15, 2026
🤖 I have created a release *beep* *boop*
---


<details><summary>db-dtypes: 1.8.0</summary>

##
[1.8.0](db-dtypes-v1.7.2...db-dtypes-v1.8.0)
(2026-10-15)


### Features

* **db-dtypes:** support pandas 3.1
([#18590](#18590))
([f18a11e](f18a11e))
</details>

<details><summary>gapic-generator: 1.43.1</summary>

##
[1.43.1](gapic-generator-v1.43.0...gapic-generator-v1.43.1)
(2026-10-15)


### Bug Fixes

* **gapic-generator:** do not emit empty routing metadata on
client-streaming RPCs
([#18591](#18591))
([bbdd643](bbdd643))
* **gapic-generator:** resolve showcase-mypy incompatible redefinition
([7032a89](7032a89))
* **gapic-generator:** resolve showcase-mypy incompatible redefinition
and add canary CI job
([#18701](#18701))
([7032a89](7032a89))
</details>

<details><summary>gcp-sphinx-docfx-yaml: 3.4.0</summary>

##
[3.4.0](gcp-sphinx-docfx-yaml-v3.3.3...gcp-sphinx-docfx-yaml-v3.4.0)
(2026-10-15)


### Features

* **gcp-sphinx-docfx-yaml:** optimize performance
([#18588](#18588))
([cf1a0e5](cf1a0e5))
</details>

<details><summary>google-cloud-alloydb: 0.11.4</summary>

##
[0.11.4](google-cloud-alloydb-v0.11.3...google-cloud-alloydb-v0.11.4)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-bigquery: 3.46.2</summary>

##
[3.46.2](google-cloud-bigquery-v3.46.1...google-cloud-bigquery-v3.46.2)
(2026-10-15)


### Bug Fixes

* **bigquery:** accept empty sourceFormat fields
([#18472](#18472))
([590e43d](590e43d))
* **bigquery:** drop startIndex whenever a page token is sent
([#18603](#18603))
([fc6eae3](fc6eae3))
* **bigquery:** remove PendingDeprecationWarning from
RowIterator.to_arrow
([#18684](#18684))
([9025061](9025061))
</details>

<details><summary>google-cloud-bigquery-storage: 2.43.0</summary>

##
[2.43.0](google-cloud-bigquery-storage-v2.42.0...google-cloud-bigquery-storage-v2.43.0)
(2026-10-15)


### Features

* **bigquery-storage:** add Arrow options and cancel to read_rows
([#18643](#18643))
([939bdd0](939bdd0))
</details>

<details><summary>google-cloud-bigtable: 2.50.1</summary>

##
[2.50.1](google-cloud-bigtable-v2.50.0...google-cloud-bigtable-v2.50.1)
(2026-10-15)


### Bug Fixes

* **bigtable:** avoid hang when batcher not closed on process exit
([#18610](#18610))
([7674c91](7674c91))
* **bigtable:** fix authentication scopes for metrics exporter
([#18609](#18609))
([722d34e](722d34e))
</details>

<details><summary>google-cloud-build: 3.41.0</summary>

##
[3.41.0](google-cloud-build-v3.40.0...google-cloud-build-v3.41.0)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-compute: 1.56.0</summary>

##
[1.56.0](google-cloud-compute-v1.55.0...google-cloud-compute-v1.56.0)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-compute-v1beta: 0.12.9</summary>

##
[0.12.9](google-cloud-compute-v1beta-v0.12.8...google-cloud-compute-v1beta-v0.12.9)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-contact-center-insights: 1.29.0</summary>

##
[1.29.0](google-cloud-contact-center-insights-v1.28.0...google-cloud-contact-center-insights-v1.29.0)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-dataproc: 5.32.0</summary>

##
[5.32.0](google-cloud-dataproc-v5.31.0...google-cloud-dataproc-v5.32.0)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-datastream: 1.21.0</summary>

##
[1.21.0](google-cloud-datastream-v1.20.0...google-cloud-datastream-v1.21.0)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-memorystore: 0.5.6</summary>

##
[0.5.6](google-cloud-memorystore-v0.5.5...google-cloud-memorystore-v0.5.6)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-pubsub: 2.43.0</summary>

##
[2.43.0](google-cloud-pubsub-v2.42.0...google-cloud-pubsub-v2.43.0)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-redis-cluster: 0.5.5</summary>

##
[0.5.5](google-cloud-redis-cluster-v0.5.4...google-cloud-redis-cluster-v0.5.5)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-securitycenter: 1.48.0</summary>

##
[1.48.0](google-cloud-securitycenter-v1.47.0...google-cloud-securitycenter-v1.48.0)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

<details><summary>google-cloud-storage: 3.17.1</summary>

##
[3.17.1](google-cloud-storage-v3.17.0...google-cloud-storage-v3.17.1)
(2026-10-15)


### Bug Fixes

* **storage:** set GRPC_ALTS_MAX_CONCURRENT_HANDSHAKES=2 in benchmark
runner
([#18703](#18703))
([a9ca134](a9ca134))
</details>

<details><summary>google-developer-knowledge: 0.1.5</summary>

##
[0.1.5](google-developer-knowledge-v0.1.4...google-developer-knowledge-v0.1.5)
(2026-10-15)


### Features

* update API sources and regenerate
([#18699](#18699))
([1aa57db](1aa57db))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
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.

2 participants