# Changelog ## [0.22.0](https://github.com/googleapis/python-bigquery-pandas/compare/v0.21.0...v0.22.0) (2024-03-05) ### Features * Move bqstorage to extras and add debug capability ([#735](https://github.com/googleapis/python-bigquery-pandas/issues/735)) ([366cb55](https://github.com/googleapis/python-bigquery-pandas/commit/366cb55a5f2dde4f92994de9ba6c59eb3e1d7c9f)) ### Bug Fixes * Remove python 3.7 due to end of life (EOL) ([#737](https://github.com/googleapis/python-bigquery-pandas/issues/737)) ([d0810e8](https://github.com/googleapis/python-bigquery-pandas/commit/d0810e82322c5cc81b33894b7e7f50c140f542ed)) ## [0.21.0](https://github.com/googleapis/python-bigquery-pandas/compare/v0.20.0...v0.21.0) (2024-01-25) ### Features * Use faster query_and_wait method from google-cloud-bigquery when available ([#722](https://github.com/googleapis/python-bigquery-pandas/issues/722)) ([ac3ce3f](https://github.com/googleapis/python-bigquery-pandas/commit/ac3ce3fcd1637fe741af0a10d765ba3092d0e668)) ### Bug Fixes * Update runtime check for min google-cloud-bigquery to 3.3.5 ([#721](https://github.com/googleapis/python-bigquery-pandas/issues/721)) ([b5f4869](https://github.com/googleapis/python-bigquery-pandas/commit/b5f48690334edae5f54373a3a8864e3c3496ff29)) ## [0.20.0](https://github.com/googleapis/python-bigquery-pandas/compare/v0.19.2...v0.20.0) (2023-12-10) ### Features * Add 'columns' as an alias for 'col_order' ([#701](https://github.com/googleapis/python-bigquery-pandas/issues/701)) ([e52e8f8](https://github.com/googleapis/python-bigquery-pandas/commit/e52e8f85e3f115ee1c9f3dc6733217b04d264f26)) * Add support for Python 3.12 ([#702](https://github.com/googleapis/python-bigquery-pandas/issues/702)) ([edb93cc](https://github.com/googleapis/python-bigquery-pandas/commit/edb93cc1aee5e7ea931a1d620617be28b4c9a702)) * Migrating off of circle/ci ([#638](https://github.com/googleapis/python-bigquery-pandas/issues/638)) ([08fe090](https://github.com/googleapis/python-bigquery-pandas/commit/08fe0904375077e43afc03c5529b427cfcf9aa37)) * Removed pkg_resources for native namespace support ([#707](https://github.com/googleapis/python-bigquery-pandas/issues/707)) ([eeb1959](https://github.com/googleapis/python-bigquery-pandas/commit/eeb19593a75d55e88a2c51ae8eb258c0156d5ba6)) ### Bug Fixes * Edit units for time in tests ([#655](https://github.com/googleapis/python-bigquery-pandas/issues/655)) ([d4ebb0c](https://github.com/googleapis/python-bigquery-pandas/commit/d4ebb0cb530fde5a28663a4bec8f7f663e2f0c55)) * Table schema change error ([#692](https://github.com/googleapis/python-bigquery-pandas/issues/692)) ([3dc8ebe](https://github.com/googleapis/python-bigquery-pandas/commit/3dc8ebed4809ad626dcf18124c38930c87750ac8)) ### Documentation * Migrate .readthedocs.yml to configuration file v2 ([#689](https://github.com/googleapis/python-bigquery-pandas/issues/689)) ([d921219](https://github.com/googleapis/python-bigquery-pandas/commit/d921219690b1b577346f5dc41c0e8d8e5ed2115c)) ## [0.19.2](https://github.com/googleapis/python-bigquery-pandas/compare/v0.19.1...v0.19.2) (2023-05-10) ### Bug Fixes * Add exception context to GenericGBQExceptions ([#629](https://github.com/googleapis/python-bigquery-pandas/issues/629)) ([d17ae24](https://github.com/googleapis/python-bigquery-pandas/commit/d17ae244b8e249b1d5f3b6db667db5e84abaf85c)) ### Documentation * Correct the documented dtypes for `read_gbq` ([#598](https://github.com/googleapis/python-bigquery-pandas/issues/598)) ([b45651d](https://github.com/googleapis/python-bigquery-pandas/commit/b45651d5688034418cdf57244c39592ee5dea2b2)) * Google Colab auth is used with pydata-google-auth 1.8.0+ ([#631](https://github.com/googleapis/python-bigquery-pandas/issues/631)) ([257aa62](https://github.com/googleapis/python-bigquery-pandas/commit/257aa6209345836e291ebd4f6feec0176c8b22e1)) * Updates with a link to the canonical source of documentation ([#620](https://github.com/googleapis/python-bigquery-pandas/issues/620)) ([1dca732](https://github.com/googleapis/python-bigquery-pandas/commit/1dca732c71e022f1897d946e2ae914e9b51bc386)) ## [0.19.1](https://github.com/googleapis/python-bigquery-pandas/compare/v0.19.0...v0.19.1) (2023-01-25) ### Documentation * Updates the user instructions re OAuth ([0c2b716](https://github.com/googleapis/python-bigquery-pandas/commit/0c2b716a55551f26050ed8d94ff912d406527ac5)) ## [0.19.0](https://github.com/googleapis/python-bigquery-pandas/compare/v0.18.1...v0.19.0) (2023-01-11) ### Features * Adds ability to provide redirect uri ([#595](https://github.com/googleapis/python-bigquery-pandas/issues/595)) ([a06085e](https://github.com/googleapis/python-bigquery-pandas/commit/a06085eddddd18394f623d0b6f3a65d91f51e979)) ## [0.18.1](https://github.com/googleapis/python-bigquery-pandas/compare/v0.18.0...v0.18.1) (2022-11-28) ### Dependencies * Remove upper bound for python and pyarrow ([#592](https://github.com/googleapis/python-bigquery-pandas/issues/592)) ([4d28684](https://github.com/googleapis/python-bigquery-pandas/commit/4d286840feaa8290f4d674dce1c269e7e09980d5)) ## [0.18.0](https://github.com/googleapis/python-bigquery-pandas/compare/v0.17.9...v0.18.0) (2022-11-19) ### Features * Map "if_exists" value to LoadJobConfig.WriteDisposition ([#583](https://github.com/googleapis/python-bigquery-pandas/issues/583)) ([7389cd2](https://github.com/googleapis/python-bigquery-pandas/commit/7389cd2a363ebf403b66905ca845ca842a754922)) ## [0.17.9](https://github.com/googleapis/python-bigquery-pandas/compare/v0.17.8...v0.17.9) (2022-09-27) ### Bug Fixes * Updates requirements.txt to fix failing tests due to missing req ([#575](https://github.com/googleapis/python-bigquery-pandas/issues/575)) ([1d797a3](https://github.com/googleapis/python-bigquery-pandas/commit/1d797a3337e716fa6f3de511e7c8875dfadde43b)) ## [0.17.8](https://github.com/googleapis/python-bigquery-pandas/compare/v0.17.7...v0.17.8) (2022-08-09) ### Bug Fixes * **deps:** allow pyarrow < 10 ([#550](https://github.com/googleapis/python-bigquery-pandas/issues/550)) ([c21a414](https://github.com/googleapis/python-bigquery-pandas/commit/c21a41425d4d06b9df5fbdeb15e90f79de841612)) ## [0.17.7](https://github.com/googleapis/python-bigquery-pandas/compare/v0.17.6...v0.17.7) (2022-07-11) ### Bug Fixes * allow `to_gbq` to run without `bigquery.tables.create` permission. ([#539](https://github.com/googleapis/python-bigquery-pandas/issues/539)) ([3988306](https://github.com/googleapis/python-bigquery-pandas/commit/3988306bd2cc7743d24e24d753730ba04462f018)) ## [0.17.6](https://github.com/googleapis/python-bigquery-pandas/compare/v0.17.5...v0.17.6) (2022-06-03) ### Documentation * fix changelog header to consistent size ([#529](https://github.com/googleapis/python-bigquery-pandas/issues/529)) ([218e06a](https://github.com/googleapis/python-bigquery-pandas/commit/218e06af40e991f870649a8e958dfc1bc46f0ee8)) ## [0.17.5](https://github.com/googleapis/python-bigquery-pandas/compare/v0.17.4...v0.17.5) (2022-05-09) ### Bug Fixes * **deps:** allow pyarrow v8 ([#525](https://github.com/googleapis/python-bigquery-pandas/issues/525)) ([a4ee0df](https://github.com/googleapis/python-bigquery-pandas/commit/a4ee0dffae0580a7509d5d6014edb46e05394717)) ## [0.17.4](https://github.com/googleapis/python-bigquery-pandas/compare/v0.17.3...v0.17.4) (2022-03-14) ### Bug Fixes * avoid deprecated "out-of-band" authentication flow ([#500](https://github.com/googleapis/python-bigquery-pandas/issues/500)) ([4758e3a](https://github.com/googleapis/python-bigquery-pandas/commit/4758e3a9ccb82109aae65f76258b2910077e02dd)) * correctly transform query job timeout configuration and exceptions ([#492](https://github.com/googleapis/python-bigquery-pandas/issues/492)) ([d8c3900](https://github.com/googleapis/python-bigquery-pandas/commit/d8c3900eda5aa2cb5b663b2be569d639f6a028a9)) ## [0.17.3](https://github.com/googleapis/python-bigquery-pandas/compare/v0.17.2...v0.17.3) (2022-03-05) ### Bug Fixes * **deps:** require google-api-core>=1.31.5, >=2.3.2 ([#493](https://github.com/googleapis/python-bigquery-pandas/issues/493)) ([744a71c](https://github.com/googleapis/python-bigquery-pandas/commit/744a71c3d265d0e9a2ac25ca98dd0fa3ca68af6a)) * **deps:** require google-auth>=1.25.0 ([744a71c](https://github.com/googleapis/python-bigquery-pandas/commit/744a71c3d265d0e9a2ac25ca98dd0fa3ca68af6a)) * **deps:** require proto-plus>=1.15.0 ([744a71c](https://github.com/googleapis/python-bigquery-pandas/commit/744a71c3d265d0e9a2ac25ca98dd0fa3ca68af6a)) ## [0.17.2](https://github.com/googleapis/python-bigquery-pandas/compare/v0.17.1...v0.17.2) (2022-03-02) ### Dependencies * allow pyarrow 7.0 ([#487](https://github.com/googleapis/python-bigquery-pandas/issues/487)) ([39441b6](https://github.com/googleapis/python-bigquery-pandas/commit/39441b63fadd95810c535e7079d781e9eec72189)) ## [0.17.1](https://github.com/googleapis/python-bigquery-pandas/compare/v0.17.0...v0.17.1) (2022-02-24) ### Bug Fixes * avoid `TypeError` when executing DML statements with `read_gbq` ([#483](https://github.com/googleapis/python-bigquery-pandas/issues/483)) ([e9f0e3f](https://github.com/googleapis/python-bigquery-pandas/commit/e9f0e3f73f597530b8cf87324b9c4b0b54a79812)) ### Documentation * document additional breaking change in 0.17.0 ([#477](https://github.com/googleapis/python-bigquery-pandas/issues/477)) ([a858c80](https://github.com/googleapis/python-bigquery-pandas/commit/a858c80a37dc94707a41a6d865af2bc91543328a)) ## [0.17.0](https://github.com/googleapis/python-bigquery-pandas/compare/v0.16.0...v0.17.0) (2022-01-19) ### ⚠ BREAKING CHANGES * the first argument of `read_gbq` is renamed from `query` to `query_or_table` ([#443](https://github.com/googleapis/python-bigquery-pandas/issues/443)) ([bf0e863](https://github.com/googleapis/python-bigquery-pandas/commit/bf0e863ff6506eca267b14e59e47417bd60e947f)) * use nullable Int64 and boolean dtypes if available ([#445](https://github.com/googleapis/python-bigquery-pandas/issues/445)) ([89078f8](https://github.com/googleapis/python-bigquery-pandas/commit/89078f89478469aa60a0a8b8e1e0c4a59aa059e0)) ### Features * accepts a table ID, which downloads the table without a query ([#443](https://github.com/googleapis/python-bigquery-pandas/issues/443)) ([bf0e863](https://github.com/googleapis/python-bigquery-pandas/commit/bf0e863ff6506eca267b14e59e47417bd60e947f)) * use nullable Int64 and boolean dtypes if available ([#445](https://github.com/googleapis/python-bigquery-pandas/issues/445)) ([89078f8](https://github.com/googleapis/python-bigquery-pandas/commit/89078f89478469aa60a0a8b8e1e0c4a59aa059e0)) ### Bug Fixes * `read_gbq` supports extreme DATETIME values such as `0001-01-01 00:00:00` ([#444](https://github.com/googleapis/python-bigquery-pandas/issues/444)) ([d120f8f](https://github.com/googleapis/python-bigquery-pandas/commit/d120f8fbdf4541a39ce8d87067523d48f21554bf)) * `to_gbq` allows strings for DATE and floats for NUMERIC with `api_method="load_parquet"` ([#423](https://github.com/googleapis/python-bigquery-pandas/issues/423)) ([2180836](https://github.com/googleapis/python-bigquery-pandas/commit/21808367d02b5b7fcf35b3c7520224c819879aec)) * allow extreme DATE values such as `datetime.date(1, 1, 1)` in `load_gbq` ([#442](https://github.com/googleapis/python-bigquery-pandas/issues/442)) ([e13abaf](https://github.com/googleapis/python-bigquery-pandas/commit/e13abaf015cd1ea9da3ad5063680bf89e18f0fac)) * avoid iteritems deprecation in pandas prerelease ([#469](https://github.com/googleapis/python-bigquery-pandas/issues/469)) ([7379cdc](https://github.com/googleapis/python-bigquery-pandas/commit/7379cdcd7eedcbc751a4002bdf90c12e810e6bcd)) * use data project for destination in `to_gbq` ([#455](https://github.com/googleapis/python-bigquery-pandas/issues/455)) ([891a00c](https://github.com/googleapis/python-bigquery-pandas/commit/891a00c8f202aa476ffb22b2fb92c01ffa84889a)) ### Miscellaneous Chores * release 0.17.0 ([#470](https://github.com/googleapis/python-bigquery-pandas/issues/470)) ([29ac8c3](https://github.com/googleapis/python-bigquery-pandas/commit/29ac8c33127457e86d9864a6979d532cd1d3ae5c)) ## [0.16.0](https://www.github.com/googleapis/python-bigquery-pandas/compare/v0.16.0...v0.16.0) (2021-11-08) ### Features * `to_gbq` uses Parquet by default, use `api_method="load_csv"` for old behavior ([#413](https://www.github.com/googleapis/python-bigquery-pandas/issues/413)) ([9a65383](https://www.github.com/googleapis/python-bigquery-pandas/commit/9a65383916697ff02358aba58df555c85b16350c)) * allow Python 3.10 ([#417](https://www.github.com/googleapis/python-bigquery-pandas/issues/417)) ([faba940](https://www.github.com/googleapis/python-bigquery-pandas/commit/faba940bc19d5c260b9dce3f973a9b729a179d20)) ### Miscellaneous Chores * release 0.16.0 ([#415](https://www.github.com/googleapis/python-bigquery-pandas/issues/415)) ([ea0f4e9](https://www.github.com/googleapis/python-bigquery-pandas/commit/ea0f4e97f3518895e824b1b7328d578081588d84)) ### Documentation * clarify `table_schema` ([#383](https://www.github.com/googleapis/python-bigquery-pandas/issues/383)) ([326e674](https://www.github.com/googleapis/python-bigquery-pandas/commit/326e674a24fc7e057e213596df92f0c4a8225f9e)) ## 0.15.0 / 2021-03-30 ### Features - Load DataFrame with `to_gbq` to a table in a project different from the API client project. Specify the target table ID as `project.dataset.table` to use this feature. ([#321](https://github.com/googleapis/python-bigquery-pandas/issues/321), [#347](https://github.com/googleapis/python-bigquery-pandas/issues/347)) - Allow billing project to be separate from destination table project in `to_gbq`. ([#321](https://github.com/googleapis/python-bigquery-pandas/issues/321)) ### Bug fixes - Avoid 403 error from `to_gbq` when table has `policyTags`. ([#354](https://github.com/googleapis/python-bigquery-pandas/issues/354)) - Avoid `client.dataset` deprecation warnings. ([#312](https://github.com/googleapis/python-bigquery-pandas/issues/312)) ### Dependencies - Drop support for Python 3.5 and 3.6. ([#337](https://github.com/googleapis/python-bigquery-pandas/issues/337)) - Drop support for google-cloud-bigquery==2.4.\* due to query hanging bug. ([#343](https://github.com/googleapis/python-bigquery-pandas/issues/343)) ## 0.14.1 / 2020-11-10 ### Bug fixes - Use `object` dtype for `TIME` columns. ([#328](https://github.com/googleapis/python-bigquery-pandas/issues/328)) - Encode floating point values with greater precision. ([#326](https://github.com/googleapis/python-bigquery-pandas/issues/326)) - Support `INT64` and other standard SQL aliases in `~pandas_gbq.to_gbq` `table_schema` argument. ([#322](https://github.com/googleapis/python-bigquery-pandas/issues/322)) ## 0.14.0 / 2020-10-05 - Add `dtypes` argument to `read_gbq`. Use this argument to override the default `dtype` for a particular column in the query results. For example, this can be used to select nullable integer columns as the `Int64` nullable integer pandas extension type. ([#242](https://github.com/googleapis/python-bigquery-pandas/issues/242), [#332](https://github.com/googleapis/python-bigquery-pandas/issues/332)) ``` python df = gbq.read_gbq( "SELECT CAST(NULL AS INT64) AS null_integer", dtypes={"null_integer": "Int64"}, ) ``` ### Dependency updates - Support `google-cloud-bigquery-storage` 2.0 and higher. ([#329](https://github.com/googleapis/python-bigquery-pandas/issues/329)) - Update the minimum version of `pandas` to 0.20.1. ([#331](https://github.com/googleapis/python-bigquery-pandas/issues/331)) ### Internal changes - Update tests to run against Python 3.8. ([#331](https://github.com/googleapis/python-bigquery-pandas/issues/331)) ## 0.13.3 / 2020-09-30 - Include needed "extras" from `google-cloud-bigquery` package as dependencies. Exclude incompatible 2.0 version. ([#324](https://github.com/googleapis/python-bigquery-pandas/issues/324), [#329](https://github.com/googleapis/python-bigquery-pandas/issues/329)) ## 0.13.2 / 2020-05-14 - Fix `Provided Schema does not match Table` error when the existing table contains required fields. ([#315](https://github.com/googleapis/python-bigquery-pandas/issues/315)) ## 0.13.1 / 2020-02-13 - Fix `AttributeError` with BQ Storage API to download empty results. ([#299](https://github.com/googleapis/python-bigquery-pandas/issues/299)) ## 0.13.0 / 2019-12-12 - Raise `NotImplementedError` when the deprecated `private_key` argument is used. ([#301](https://github.com/googleapis/python-bigquery-pandas/issues/301)) ## 0.12.0 / 2019-11-25 ### New features - Add `max_results` argument to `~pandas_gbq.read_gbq()`. Use this argument to limit the number of rows in the results DataFrame. Set `max_results` to 0 to ignore query outputs, such as for DML or DDL queries. ([#102](https://github.com/googleapis/python-bigquery-pandas/issues/102)) - Add `progress_bar_type` argument to `~pandas_gbq.read_gbq()`. Use this argument to display a progress bar when downloading data. ([#182](https://github.com/googleapis/python-bigquery-pandas/issues/182)) ### Bug fixes - Fix resource leak with `use_bqstorage_api` by closing BigQuery Storage API client after use. ([#294](https://github.com/googleapis/python-bigquery-pandas/issues/294)) ### Dependency updates - Update the minimum version of `google-cloud-bigquery` to 1.11.1. ([#296](https://github.com/googleapis/python-bigquery-pandas/issues/296)) ### Documentation - Add code samples to introduction and refactor howto guides. ([#239](https://github.com/googleapis/python-bigquery-pandas/issues/239)) ## 0.11.0 / 2019-07-29 - **Breaking Change:** Python 2 support has been dropped. This is to align with the pandas package which dropped Python 2 support at the end of 2019. ([#268](https://github.com/googleapis/python-bigquery-pandas/issues/268)) ### Enhancements - Ensure `table_schema` argument is not modified inplace. ([#278](https://github.com/googleapis/python-bigquery-pandas/issues/278)) ### Implementation changes - Use object dtype for `STRING`, `ARRAY`, and `STRUCT` columns when there are zero rows. ([#285](https://github.com/googleapis/python-bigquery-pandas/issues/285)) ### Internal changes - Populate `user-agent` with `pandas` version information. ([#281](https://github.com/googleapis/python-bigquery-pandas/issues/281)) - Fix `pytest.raises` usage for latest pytest. Fix warnings in tests. ([#282](https://github.com/googleapis/python-bigquery-pandas/issues/282)) - Update CI to install nightly packages in the conda tests. ([#254](https://github.com/googleapis/python-bigquery-pandas/issues/254)) ## 0.10.0 / 2019-04-05 - **Breaking Change:** Default SQL dialect is now `standard`. Use `pandas_gbq.context.dialect` to override the default value. ([#195](https://github.com/googleapis/python-bigquery-pandas/issues/195), [#245](https://github.com/googleapis/python-bigquery-pandas/issues/245)) ### Documentation - Document `BigQuery data type to pandas dtype conversion ` for `read_gbq`. ([#269](https://github.com/googleapis/python-bigquery-pandas/issues/269)) ### Dependency updates - Update the minimum version of `google-cloud-bigquery` to 1.9.0. ([#247](https://github.com/googleapis/python-bigquery-pandas/issues/247)) - Update the minimum version of `pandas` to 0.19.0. ([#262](https://github.com/googleapis/python-bigquery-pandas/issues/262)) ### Internal changes - Update the authentication credentials. **Note:** You may need to set `reauth=True` in order to update your credentials to the most recent version. This is required to use new functionality such as the BigQuery Storage API. ([#267](https://github.com/googleapis/python-bigquery-pandas/issues/267)) - Use `to_dataframe()` from `google-cloud-bigquery` in the `read_gbq()` function. ([#247](https://github.com/googleapis/python-bigquery-pandas/issues/247)) ### Enhancements - Fix a bug where pandas-gbq could not upload an empty DataFrame. ([#237](https://github.com/googleapis/python-bigquery-pandas/issues/237)) - Allow `table_schema` in `to_gbq` to contain only a subset of columns, with the rest being populated using the DataFrame dtypes ([#218](https://github.com/googleapis/python-bigquery-pandas/issues/218)) (contributed by @johnpaton) - Read `project_id` in `to_gbq` from provided `credentials` if available (contributed by @daureg) - `read_gbq` uses the timezone-aware `DatetimeTZDtype(unit='ns', tz='UTC')` dtype for BigQuery `TIMESTAMP` columns. ([#269](https://github.com/googleapis/python-bigquery-pandas/issues/269)) - Add `use_bqstorage_api` to `read_gbq`. The BigQuery Storage API can be used to download large query results (>125 MB) more quickly. If the BQ Storage API can't be used, the BigQuery API is used instead. ([#133](https://github.com/googleapis/python-bigquery-pandas/issues/133), [#270](https://github.com/googleapis/python-bigquery-pandas/issues/270)) ## 0.9.0 / 2019-01-11 - Warn when deprecated `private_key` parameter is used ([#240](https://github.com/googleapis/python-bigquery-pandas/issues/240)) - **New dependency** Use the `pydata-google-auth` package for authentication. ([#241](https://github.com/googleapis/python-bigquery-pandas/issues/241)) ## 0.8.0 / 2018-11-12 ### Breaking changes - **Deprecate** `private_key` parameter to `pandas_gbq.read_gbq` and `pandas_gbq.to_gbq` in favor of new `credentials` argument. Instead, create a credentials object using `google.oauth2.service_account.Credentials.from_service_account_info` or `google.oauth2.service_account.Credentials.from_service_account_file`. See the `authentication how-to guide ` for examples. ([#161](https://github.com/googleapis/python-bigquery-pandas/issues/161), [#231](https://github.com/googleapis/python-bigquery-pandas/issues/231)) ### Enhancements - Allow newlines in data passed to `to_gbq`. ([#180](https://github.com/googleapis/python-bigquery-pandas/issues/180)) - Add `pandas_gbq.context.dialect` to allow overriding the default SQL syntax dialect. ([#195](https://github.com/googleapis/python-bigquery-pandas/issues/195), [#235](https://github.com/googleapis/python-bigquery-pandas/issues/235)) - Support Python 3.7. ([#197](https://github.com/googleapis/python-bigquery-pandas/issues/197), [#232](https://github.com/googleapis/python-bigquery-pandas/issues/232)) ### Internal changes - Migrate tests to CircleCI. ([#228](https://github.com/googleapis/python-bigquery-pandas/issues/228), [#232](https://github.com/googleapis/python-bigquery-pandas/issues/232)) ## 0.7.0 / 2018-10-19 - int columns which contain NULL are now cast to float, rather than object type. ([#174](https://github.com/googleapis/python-bigquery-pandas/issues/174)) - DATE, DATETIME and TIMESTAMP columns are now parsed as pandas' timestamp objects ([#224](https://github.com/googleapis/python-bigquery-pandas/issues/224)) - Add `pandas_gbq.Context` to cache credentials in-memory, across calls to `read_gbq` and `to_gbq`. ([#198](https://github.com/googleapis/python-bigquery-pandas/issues/198), [#208](https://github.com/googleapis/python-bigquery-pandas/issues/208)) - Fast queries now do not log above `DEBUG` level. ([#204](https://github.com/googleapis/python-bigquery-pandas/issues/204)) With BigQuery's release of [clustering](https://cloud.google.com/bigquery/docs/clustered-tables) querying smaller samples of data is now faster and cheaper. - Don't load credentials from disk if reauth is `True`. ([#212](https://github.com/googleapis/python-bigquery-pandas/issues/212)) This fixes a bug where pandas-gbq could not refresh credentials if the cached credentials were invalid, revoked, or expired, even when `reauth=True`. - Catch RefreshError when trying credentials. ([#226](https://github.com/googleapis/python-bigquery-pandas/issues/226)) ### Internal changes - Avoid listing datasets and tables in system tests. ([#215](https://github.com/googleapis/python-bigquery-pandas/issues/215)) - Improved performance from eliminating some duplicative parsing steps ([#224](https://github.com/googleapis/python-bigquery-pandas/issues/224)) ## 0.6.1 / 2018-09-11 - Improved `read_gbq` performance and memory consumption by delegating `DataFrame` construction to the Pandas library, radically reducing the number of loops that execute in python ([#128](https://github.com/googleapis/python-bigquery-pandas/issues/128)) - Reduced verbosity of logging from `read_gbq`, particularly for short queries. ([#201](https://github.com/googleapis/python-bigquery-pandas/issues/201)) - Avoid `SELECT 1` query when running `to_gbq`. ([#202](https://github.com/googleapis/python-bigquery-pandas/issues/202)) ## 0.6.0 / 2018-08-15 - Warn when `dialect` is not passed in to `read_gbq`. The default dialect will be changing from 'legacy' to 'standard' in a future version. ([#195](https://github.com/googleapis/python-bigquery-pandas/issues/195)) - Use general float with 15 decimal digit precision when writing to local CSV buffer in `to_gbq`. This prevents numerical overflow in certain edge cases. ([#192](https://github.com/googleapis/python-bigquery-pandas/issues/192)) ## 0.5.0 / 2018-06-15 - Project ID parameter is optional in `read_gbq` and `to_gbq` when it can inferred from the environment. Note: you must still pass in a project ID when using user-based authentication. ([#103](https://github.com/googleapis/python-bigquery-pandas/issues/103)) - Progress bar added for `to_gbq`, through an optional library tqdm as dependency. ([#162](https://github.com/googleapis/python-bigquery-pandas/issues/162)) - Add location parameter to `read_gbq` and `to_gbq` so that pandas-gbq can work with datasets in the Tokyo region. ([#177](https://github.com/googleapis/python-bigquery-pandas/issues/177)) ### Documentation - Add `authentication how-to guide `. ([#183](https://github.com/googleapis/python-bigquery-pandas/issues/183)) - Update `contributing` guide with new paths to tests. ([#154](https://github.com/googleapis/python-bigquery-pandas/issues/154), [#164](https://github.com/googleapis/python-bigquery-pandas/issues/164)) ### Internal changes - Tests now use nox to run in multiple Python environments. ([#52](https://github.com/googleapis/python-bigquery-pandas/issues/52)) - Renamed internal modules. ([#154](https://github.com/googleapis/python-bigquery-pandas/issues/154)) - Refactored auth to an internal auth module. ([#176](https://github.com/googleapis/python-bigquery-pandas/issues/176)) - Add unit tests for `get_credentials()`. ([#184](https://github.com/googleapis/python-bigquery-pandas/issues/184)) ## 0.4.1 / 2018-04-05 - Only show `verbose` deprecation warning if Pandas version does not populate it. ([#157](https://github.com/googleapis/python-bigquery-pandas/issues/157)) ## 0.4.0 / 2018-04-03 - Fix bug in read_gbq when building a dataframe with integer columns on Windows. Explicitly use 64bit integers when converting from BQ types. ([#119](https://github.com/googleapis/python-bigquery-pandas/issues/119)) - Fix bug in read_gbq when querying for an array of floats ([#123](https://github.com/googleapis/python-bigquery-pandas/issues/123)) - Fix bug in read_gbq with configuration argument. Updates read_gbq to account for breaking change in the way `google-cloud-python` version 0.32.0+ handles query configuration API representation. ([#152](https://github.com/googleapis/python-bigquery-pandas/issues/152)) - Fix bug in to_gbq where seconds were discarded in timestamp columns. ([#148](https://github.com/googleapis/python-bigquery-pandas/issues/148)) - Fix bug in to_gbq when supplying a user-defined schema ([#150](https://github.com/googleapis/python-bigquery-pandas/issues/150)) - **Deprecate** the `verbose` parameter in read_gbq and to_gbq. Messages use the logging module instead of printing progress directly to standard output. ([#12](https://github.com/googleapis/python-bigquery-pandas/issues/12)) ## 0.3.1 / 2018-02-13 - Fix an issue where Unicode couldn't be uploaded in Python 2 ([#106](https://github.com/googleapis/python-bigquery-pandas/issues/106)) - Add support for a passed schema in `` `to_gbq `` instead inferring the schema from the passed DataFrame with DataFrame.dtypes (#46 \<\>\`\_) - Fix an issue where a dataframe containing both integer and floating point columns could not be uploaded with `to_gbq` ([#116](https://github.com/googleapis/python-bigquery-pandas/issues/116)) - `to_gbq` now uses `to_csv` to avoid manually looping over rows in a dataframe (should result in faster table uploads) ([#96](https://github.com/googleapis/python-bigquery-pandas/issues/96)) ## 0.3.0 / 2018-01-03 - Use the [google-cloud-bigquery](https://googlecloudplatform.github.io/google-cloud-python/latest/bigquery/usage.html) library for API calls. The `google-cloud-bigquery` package is a new dependency, and dependencies on `google-api-python-client` and `httplib2` are removed. See the [installation guide](https://pandas-gbq.readthedocs.io/en/latest/install.html#dependencies) for more details. ([#93](https://github.com/googleapis/python-bigquery-pandas/issues/93)) - Structs and arrays are now named properly ([#23](https://github.com/googleapis/python-bigquery-pandas/issues/23)) and BigQuery functions like `array_agg` no longer run into errors during type conversion ([#22](https://github.com/googleapis/python-bigquery-pandas/issues/22)). - `to_gbq` now uses a load job instead of the streaming API. Remove `StreamingInsertError` class, as it is no longer used by `to_gbq`. ([#7](https://github.com/googleapis/python-bigquery-pandas/issues/7), [#75](https://github.com/googleapis/python-bigquery-pandas/issues/75)) ## 0.2.1 / 2017-11-27 - `read_gbq` now raises `QueryTimeout` if the request exceeds the `query.timeoutMs` value specified in the BigQuery configuration. ([#76](https://github.com/googleapis/python-bigquery-pandas/issues/76)) - Environment variable `PANDAS_GBQ_CREDENTIALS_FILE` can now be used to override the default location where the BigQuery user account credentials are stored. ([#86](https://github.com/googleapis/python-bigquery-pandas/issues/86)) - BigQuery user account credentials are now stored in an application-specific hidden user folder on the operating system. ([#41](https://github.com/googleapis/python-bigquery-pandas/issues/41)) ## 0.2.0 / 2017-07-24 - Drop support for Python 3.4 ([#40](https://github.com/googleapis/python-bigquery-pandas/issues/40)) - The dataframe passed to `` `.to_gbq(...., if_exists='append') `` needs to contain only a subset of the fields in the BigQuery schema. (#24 \<\>\`\_) - Use the [google-auth](https://google-auth.readthedocs.io/en/latest/) library for authentication because `oauth2client` is deprecated. ([#39](https://github.com/googleapis/python-bigquery-pandas/issues/39)) - `read_gbq` now has a `auth_local_webserver` boolean argument for controlling whether to use web server or console flow when getting user credentials. Replaces --noauth_local_webserver command line argument. ([#35](https://github.com/googleapis/python-bigquery-pandas/issues/35)) - `read_gbq` now displays the BigQuery Job ID and standard price in verbose output. ([#70](https://github.com/googleapis/python-bigquery-pandas/issues/70) and [#71](https://github.com/googleapis/python-bigquery-pandas/issues/71)) ## 0.1.6 / 2017-05-03 - All gbq errors will simply be subclasses of `ValueError` and no longer inherit from the deprecated `PandasError`. ## 0.1.4 / 2017-03-17 - `InvalidIndexColumn` will be raised instead of `InvalidColumnOrder` in `read_gbq` when the index column specified does not exist in the BigQuery schema. ([#6](https://github.com/googleapis/python-bigquery-pandas/issues/6)) ## 0.1.3 / 2017-03-04 - Bug with appending to a BigQuery table where fields have modes (NULLABLE,REQUIRED,REPEATED) specified. These modes were compared versus the remote schema and writing a table via `to_gbq` would previously raise. ([#13](https://github.com/googleapis/python-bigquery-pandas/issues/13)) ## 0.1.2 / 2017-02-23 Initial release of transfered code from [pandas](https://github.com/pandas-dev/pandas) Includes patches since the 0.19.2 release on pandas with the following: - `read_gbq` now allows query configuration preferences [pandas-GH#14742](https://github.com/pandas-dev/pandas/pull/14742) - `read_gbq` now stores `INTEGER` columns as `dtype=object` if they contain `NULL` values. Otherwise they are stored as `int64`. This prevents precision lost for integers greather than 2\**53. Furthermore \`\`FLOAT\`\` columns with values above 10*\*4 are no longer casted to `int64` which also caused precision loss [pandas-GH#14064](https://github.com/pandas-dev/pandas/pull/14064), and [pandas-GH#14305](https://github.com/pandas-dev/pandas/pull/14305)