Changelog

PyPI History

1.25.0 (2020-06-06)

Features

  • add BigQuery storage client support to DB API (#36) (ba9b2f8)

  • bigquery: add create job method (#32) (2abdef8)

  • bigquery: add support of model for extract job (#71) (4a7a514)

  • add HOUR support for time partitioning interval (#91) (0dd90b9)

  • add support for policy tags (#77) (38a5c01)

  • make AccessEntry objects hashable (#93) (23a173b)

  • bigquery: expose start index parameter for query result (#121) (be86de3)

  • bigquery: unit and system test for dataframe with int column with Nan values (#39) (5fd840e)

Bug Fixes

  • allow partial streaming_buffer statistics (#37) (645f0fd)

  • distinguish server timeouts from transport timeouts (#43) (a17be5f)

  • improve cell magic error message on missing query (#58) (6182cf4)

  • bigquery: fix repr of model reference (#66) (26c6204)

  • bigquery: fix start index with page size for list rows (#27) (400673b)

1.24.0

02-03-2020 01:38 PST

Implementation Changes

  • Fix inserting missing repeated fields. (#10196)

  • Deprecateclient.dataset() in favor ofDatasetReference. (#7753)

  • Use fasterto_arrow +to_pandas into_dataframe() whenpyarrow is available. (#10027)

  • Write pandasdatetime[ns] columns to BigQuery TIMESTAMP columns. (#10028)

New Features

  • Checkrows argument type ininsert_rows(). (#10174)

  • Checkjson_rows arg type ininsert_rows_json(). (#10162)

  • MakeRowIterator.to_dataframe_iterable() method public. (#10017)

  • Add retry parameter to public methods where missing. (#10026)

  • Add timeout parameter to Client and Job public methods. (#10002)

  • Add timeout parameter toQueryJob.done() method. (#9875)

  • Addcreate_bqstorage_client parameter toto_dataframe() andto_arrow() methods. (#9573)

Dependencies

  • Fix minimum versions ofgoogle-cloud-core andgoogle-resumable-media dependencies. (#10016)

Documentation

  • Fix a comment typo injob.py. (#10209)

  • Update code samples of load table file and load table URI. (#10175)

  • UncommentClient constructor and imports in samples. (#10058)

  • Remove unused query code sample. (#10024)

  • Update code samples to use strings for table and dataset IDs. (#9974)

Internal / Testing Changes

  • Bump copyright year to 2020, tweak docstring formatting (via synth).#10225

  • Add tests for concatenating categorical columns. (#10180)

  • Adjust test assertions to the new default timeout. (#10222)

  • Use Python 3.6 for the nox blacken session (via synth). (#10012)

1.23.1

12-16-2019 09:39 PST

Implementation Changes

  • AddiamMember entity type to allowed access classes. (#9973)

  • Fix typo in import error message (pandas -> pyarrow). (#9955)

Dependencies

  • Addsix as an explicit dependency. (#9979)

Documentation

  • Add sample to read from query destination table. (#9964)

1.23.0

12-11-2019 13:31 PST

New Features

  • Addclose() method to client for releasing open sockets. (#9894)

  • Add support ofuse_avro_logical_types for extract jobs. (#9642)

  • Add support for hive partitioning options configuration. (#9626)

  • Add description for routine entities. (#9785)

Documentation

  • Update code samples to use strings for table and dataset IDs. (#9495)

Internal / Testing Changes

  • Run unit tests with Python 3.8. (#9880)

  • ImportMapping fromcollections.abc not fromcollections. (#9826)

1.22.0

11-13-2019 12:23 PST

Implementation Changes

  • Preserve job config passed to Client methods. (#9735)

  • Use pyarrow fallback for improved schema detection. (#9321)

  • Add TypeError if wrongjob_config type is passed to client job methods. (#9506)

  • Fix arrow deprecation warning. (#9504)

New Features

  • Add--destination_table parameter to IPython magic. (#9599)

  • Allow passing schema as a sequence of dicts. (#9550)

  • Implement defaultEncryptionConfiguration on datasets. (#9489)

  • Add range partitioning to tables, load jobs, and query jobs. (#9477)

Dependencies

  • Pingoogle-resumable-media to includ 0.5.x. (#9572)

Documentation

  • Fix link anchors in external config docstrings. (#9627)

  • Add python 2 sunset banner to documentation. (#9036)

  • Add table create sample using integer range partitioning. (#9478)

  • Document how to achieve higher write limit and add tests. (#9574)

  • Add code sample for scripting. (#9537)

  • Rewrite docs in Google style, part 2. (#9481)

  • Use multi-regional key path for CMEK in snippets. (#9523)

Internal / Testing Changes

  • Fix undelete table system test to use milliseconds in snapshot decorator. (#9649)

  • Format code with latest version of black. (#9556)

  • Remove duplicate test dependencies. (#9503)

1.21.0

10-16-2019 10:33 PDT

New Features

  • add ability to pass in a table ID instead of a query to the%%bigquery magic (#9170)

  • add support for customQueryJobConfig inBigQuery.cursor.execute method (#9278)

  • storeQueryJob to destination var on error in%%bigquery magic (#9245)

  • add script statistics to job resource (#9428)

  • add support for sheets ranges (#9416)

  • add support for listing jobs by parent job (#9225)

  • expose customer managed encryption key for ML models (#9302)

  • addDataset.default_partition_expiration_ms andTable.require_partition_filter properties (#9464)

Dependencies

  • restrict version range ofgoogle-resumable-media (#9243)

Documentation

  • document how to load data as JSON string (#9231)

  • standardize comments and formatting in existing code samples (#9212)

  • rewrite docstrings in Google style (#9326)

  • fix incorrect links to REST API in reference docs (#9436)

Internal / Testing Changes

  • add code samples to lint check (#9277)

  • update code samples to use strings for table and dataset IDs (#9136)

  • simplify scripting system test to reduce flakiness (#9458)

1.20.0

09-13-2019 11:22 PDT

Implementation Changes

  • Change default endpoint to bigquery.googleapis.com (#9213)

  • Change the default value of Cursor instances’arraysize attribute to None (#9199)

  • Deprecate automatic schema conversion. (#9176)

  • Fixlist_rows() max results with BQ storage client (#9178)

New Features

  • AddModel.encryption_config. (via synth) (#9214)

  • AddClient.insert_rows_from_dataframe() method (#9162)

  • Add support for array parameters toCursor.execute(). (#9189)

  • Add support for project IDs with org prefix toTable.from_string() factory. (#9161)

  • Add--max_results option to Jupyter magics (#9169)

  • Autofetch table schema on load if not provided. (#9108)

  • Addmax_results parameter toQueryJob.result(). (#9167)

Documentation

Internal / Testing Changes

  • Revert “Disable failing snippets test (#9156).” (#9220)

1.19.0

09-03-2019 14:33 PDT

Implementation Changes

  • Raise when unexpected fields are present in theLoadJobConfig.schema when callingload_table_from_dataframe. (#9096)

  • Determine the schema inload_table_from_dataframe based on dtypes. (#9049)

  • Raise helpful error when loading table from dataframe withSTRUCT columns. (#9053)

  • Fix schema recognition of struct field types. (#9001)

  • Fix deserializingNone inQueryJob for queries with parameters. (#9029)

New Features

  • Include indexes in table written byload_table_from_dataframe, only iffields corresponding to indexes are present inLoadJobConfig.schema.(#9084)

  • Addclient_options to constructor. (#8999)

  • Add--dry_run option to%%bigquery magic. (#9067)

  • Addload_table_from_json() method to create a table from a list of dictionaries. (#9076)

  • Allow subset of schema to be passed intoload_table_from_dataframe. (#9064)

  • Add support for unsettingLoadJobConfig.schema. (#9077)

  • Add support toDataset for project IDs containing an org prefix. (#8877)

  • Add enum with SQL type names allowed to be used inSchemaField. (#9040)

Documentation

  • Fix the reference URL forClient.create_dataset(). (#9149)

  • Update code samples to use strings for table names instead ofclient.dataset(). (#9032)

  • Remove compatability badges from READMEs. (#9035)

  • Fix Pandas DataFrame load example under Python 2.7. (#9022)

Internal / Testing Changes

  • Disable failing snippets test for copying CMEK-protected tables. (#9156)

  • Fix BigQuery client unit test assertions (#9112)

  • Replace avro with arrow schemas intest_table.py (#9056)

1.18.0

08-08-2019 12:28 PDT

New Features

  • Addbqstorage_client param toQueryJob.to_arrow() (#8693)

  • Include SQL query and job ID in exception messages. (#8748)

  • Allow using TableListItem to construct a Table object. (#8738)

  • Add StandardSqlDataTypes enum to BigQuery (#8782)

  • Addto_standard_sql() method to SchemaField (#8880)

  • Add debug logging statements to track when BQ Storage API is used. (#8838)

  • Hide error traceback in BigQuery cell magic (#8808)

  • Allow choice of compression when loading from dataframe (#8938)

  • Additional clustering metrics for BQML K-means models (via synth). (#8945)

Documentation

  • Add compatibility check badges to READMEs. (#8288)

  • Link to googleapis.dev documentation in READMEs. (#8705)

  • Remove redundant service account key code sample. (#8891)

Internal / Testing Changes

  • Fix several pytest “skip if” markers (#8694)

  • Update tests to support conversion of NaN as NULL in pyarrow0.14.\*. (#8785)

  • Mock external calls in one of BigQuery unit tests (#8727)

  • Set IPython user agent when running queries with IPython cell magic (#8713)

  • Use configurable bucket name for GCS samples data in systems tests. (#8783)

  • Movemaybe_fail_import() to top level test utils (#8840)

  • Set BQ Storage client user-agent when in Jupyter cell (#8734)

1.17.0

07-12-2019 07:56 PDT

New Features

  • Support faster Arrow data format into_dataframe when using BigQuery Storage API. (#8551)

  • Addto_arrow to get apyarrow.Table from query results. (#8609)

Dependencies

  • Exclude bad 0.14.0pyarrow release. (#8551)

1.16.0

07-01-2019 10:22 PDT

New Features

  • Add Routines API. (#8491)

  • Add more stats to Models API, such asoptimization_strategy (via synth). (#8344)

Documentation

  • Add docs job to publish to googleapis.dev. (#8464)

  • Add sample demonstrating how to create a job. (#8422)

  • Use autodetected location in code samples. (#8340,#8341)

Internal / Testing Changes

  • Refactorto_dataframe to deterministicly update progress bar. (#8303)

1.15.0

06-14-2019 10:10 PDT

Implementation Changes

  • Fix bug whereload_table_from_dataframe could not append to REQUIRED fields. (#8230)

New Features

  • Addpage_size parameter toQueryJob.result. (#8206)

1.14.0

06-04-2019 11:11 PDT

New Features

  • Addmaximum_bytes_billed argument andcontext.default_query_job_config property to magics. (#8179)

Dependencies

  • Don’t pingoogle-api-core in libs usinggoogle-cloud-core. (#8213)

1.13.0

05-31-2019 10:22 PDT

New Features

  • Usejob_config.schema for data type conversion if specified inload_table_from_dataframe. (#8105)

Internal / Testing Changes

  • Adds private_connection object to magics context. (#8192)

  • Fix coverage in ‘types.py’ (via synth). (#8146)

1.12.1

05-21-2019 11:16 PDT

Implementation Changes

  • Don’t raise error when encountering unknown fields in Models API. (#8083)

Documentation

  • Use alabaster theme everwhere. (#8021)

Internal / Testing Changes

  • Add empty lines (via synth). (#8049)

1.12.0

05-16-2019 11:25 PDT

Implementation Changes

  • Remove duplicates from index on pandas DataFrames returned byto_dataframe(). (#7953)

  • Prevent error when time partitioning is populated with empty dict (#7904)

  • Preserve order into_dataframe with BQ Storage from queries containingORDER BY (#7793)

  • Respectprogress_bar_type into_dataframe when used with BQ Storage API (#7697)

  • Refactor QueryJob.query to read from resource dictionary (#7763)

  • Close theto_dataframe progress bar when finished. (#7757)

  • Ensure thatKeyboardInterrupt duringto_dataframeno longer hangs. (#7698)

  • Raise ValueError when BQ Storage is required but missing (#7726)

  • Maketotal_rows available on RowIterator before iteration (#7622)

  • Avoid masking auth errors into_dataframe with BQ Storage API (#7674)

New Features

  • Add support for passingclient_info. (#7849 and (#7806)

  • Phase 1 for storing schemas for later use. (#7761)

  • Adddestination and related properties to LoadJob. (#7710)

  • Addclustering_fields property to TableListItem (#7692)

  • Addcreated andexpires properties to TableListItem (#7684)

Dependencies

  • Pingoogle-cloud-core >= 1.0.0, < 2.0dev. (#7993)

  • Add[all] extras to install all extra dependencies (#7610)

Documentation

  • Move table and dataset snippets to samples/ directory (#7683)

Internal / Testing Changes

  • Blacken unit tests. (#7960)

  • Cleanup client tests with method to create minimal table resource (#7802)

1.11.2

04-05-2019 08:16 PDT

Dependencies

  • Add dependency on protobuf. (#7668)

1.11.1

04-04-2019 09:19 PDT

Internal / Testing Changes

  • Increment version number insetup.py.

1.11.0

04-03-2019 19:33 PDT

Implementation Changes

  • Remove classifier for Python 3.4 for end-of-life. (#7535)

New Features

  • Enable fastparquet support by using temporary file inload_table_from_dataframe (#7545)

  • Allow string for copy sources, query destination, and default dataset (#7560)

  • Addprogress_bar_type argument toto_dataframe to usetqdm to display a progress bar (#7552)

  • Callget_table inlist_rows if the schema is not available (#7621)

  • Fallback to BQ API when there are problems reading from BQ Storage. (#7633)

  • Add methods for Models API (#7562)

  • Add option to use BigQuery Storage API from IPython magics (#7640)

Documentation

  • Remove typo inTable.from_api_repr docstring. (#7509)

  • Add docs session to nox configuration for BigQuery (#7541)

Internal / Testing Changes

  • Refactortable() methods into shared implementation. (#7516)

  • Blacken noxfile and setup file in nox session (#7619)

  • Actually use theprogress_bar_type argument inQueryJob.to_dataframe(). (#7616)

1.10.0

03-06-2019 15:20 PST

Implementation Changes

  • Harden ‘ArrayQueryParameter.from_api_repr’ against missing ‘parameterValue’. (#7311)

  • Allow nested records w/ null values. (#7297)

New Features

  • Add options to ignore errors when creating/deleting datasets/tables. (#7491)

  • Accept a string in Table and Dataset constructors. (#7483)

Documentation

  • Update docstring of RowIterator’s to_dataframe (#7306)

  • Updated client library documentation URLs. (#7307)

Internal / Testing Changes

1.9.0

02-04-2019 13:28 PST

New Features

  • Add arguments to selectdtypes and use BQ Storage API toQueryJob.to_dataframe(). (#7241)

Documentation

  • Add sample for fetchingtotal_rows from query results. (#7217)

1.8.1

12-17-2018 17:53 PST

Documentation

  • Document Python 2 deprecation (#6910)

  • Normalize docs for ‘page_size’ / ‘max_results’ / ‘page_token’ (#6842)

1.8.0

12-10-2018 12:39 PST

Implementation Changes

  • Add option to use BQ Storage API withto_dataframe (#6854)

  • Fix exception type in comment (#6847)

  • Addto_bqstorage to convert from Table[Reference] google-cloud-bigquery-storage reference (#6840)

  • Importiam.policy fromgoogle.api_core. (#6741)

  • Add avro logical type control for load jobs. (#6827)

  • Allow setting partition expiration to ‘None’. (#6823)

  • Addretry argument to_AsyncJob.result. (#6302)

Dependencies

  • Update dependency to google-cloud-core (#6835)

Documentation

  • Add avro load samples (#6832)

Internal / Testing Changes

  • Blacken libraries (#6794)

  • Fix copy/paste typos in noxfile comments (#6831)

1.7.0

11-05-2018 16:41 PST

Implementation Changes

  • Add destination table properties toLoadJobConfig. (#6202)

  • Allow strings or references increate_dataset andcreate_table (#6199)

  • Fix swallowed error message (#6168)

New Features

  • Add--params option to%%bigquery magic (#6277)

  • Exposeto_api_repr method for jobs. (#6176)

  • Allow string in addition to DatasetReference / TableReference in Client methods. (#6164)

  • Add keyword arguments to job config constructors for setting properties (#6397)

Documentation

  • Update README service links in quickstart guides. (#6322)

  • Move usage guides to their own docs. (#6238)

  • Normalize use of support level badges (#6159)

Internal / Testing Changes

  • Deprecation cleanups (#6304)

  • Use_get_sub_prop helper so missing load stats don’t raise. (#6269)

  • Use new Nox (#6175)

  • Harden snippets against transient GCS errors. (#6184)

1.6.0

New Features

  • Add support forGEOGRAPHY type (#6147)

  • Add default QueryJobConfig to Client (#6088)

Documentation

  • Remove unused “append” samples (#6100)

Internal / Testing Changes

  • Address dataset leaks, conflicts in systests (#6099)

  • Harden bucket teardown against429 Too Many Requests. (#6101)

1.5.1

Implementation Changes

  • Retry ‘502 Bad Gateway’ errors by default. (#5930)

  • Avoid pulling entire result set into memory when constructing dataframe. (#5870)

  • Add support for retrying unstructured 429 / 500 / 502 responses. (#6011)

  • Populate the jobReference from the API response. (#6044)

Documentation

  • Prepare documentation for repo split (#5955)

  • Fix leakage of bigquery/spanner sections into sidebar menu. (#5986)

Internal / Testing Changes

  • Test pandas support under Python 3.7. (#5857)

  • Nox: use inplace installs (#5865)

  • Update system test to use test data in bigquery-public-data. (#5965)

1.5.0

Implementation Changes

  • Make ‘Table.location’ read-only. (#5687)

New Features

  • Add ‘clustering_fields’ properties. (#5630)

  • Add support for job labels (#5654)

  • Add ‘QueryJob.estimated_bytes_processed’ property (#5655)

  • Add support/tests for loading tables from ‘gzip.GzipFile’. (#5711)

  • Add ‘ExternalSourceFormat’ enum. (#5674)

  • Add default location to client (#5678)

Documentation

  • Fix typo in CopyJob sources docstring (#5690)

Internal / Testing Changes

  • Add/refactor snippets for managing BigQuery jobs (#5631)

  • Reenable systests for ‘dataset.update’/’table.update’. (#5732)

1.4.0

Implementation Changes

  • Add ‘internalError’ to retryable error reasons. (#5599)

  • Don’t raise exception if viewing CREATE VIEW DDL results (#5602)

New Features

  • Add Orc source format support and samples (#5500)

  • Move ‘DEFAULT_RETRY’ (w/ its predicate) to a new public ‘retry’ module. (#5552)

  • Allow listing rows on an empty table. (#5584)

Documentation

  • Add load_table_from_dataframe() to usage docs and changelog and dedents snippets in usage page (#5501)

  • Add samples for query external data sources (GCS & Sheets) (#5491)

  • Add BigQuery authorized view samples (#5515)

  • Update docs to show pyarrow as the only dependency of load_table_from_dataframe() (#5582)

Internal / Testing Changes

  • Add missing explict coverage for ‘_helpers’ (#5550)

  • Skip update_table and update_dataset tests until etag issue is resolved. (#5590)

1.3.0

New Features

  • NUMERIC type support (#5331)

  • Add timeline and top-level slot-millis to query statistics. (#5312)

  • Add additional statistics to query plan stages. (#5307)

  • Addclient.load_table_from_dataframe() (#5387)

Documentation

  • Use autosummary to split up API reference docs (#5340)

  • Fix typo in Client docstrings (#5342)

Internal / Testing Changes

  • Prune systests identified as reduntant to snippets. (#5365)

  • Modify system tests to use prerelease versions of grpcio (#5304)

  • Improve system test performance (#5319)

1.2.0

Implementation Changes

  • Switchlist_partitions helper to a direct metatable read (#5273)

  • Fix typo inEncoding.ISO_8859_1 enum value (#5211)

New Features

  • Add UnknownJob type for redacted jobs. (#5281)

  • Add project parameter tolist_datasets andlist_jobs (#5217)

  • Add from_string factory methods to Dataset and Table (#5255)

  • Add column based time partitioning (#5267)

Documentation

  • Standardize docstrings for constants (#5289)

  • Fix docstring / impl ofExtractJob.destination_uri_file_counts. (#5245)

Internal / Testing Changes

  • Add testing support for Python 3.7; remove testing support for Python 3.4. (#5295)

1.1.0

New Features

  • Addclient.get_service_account_email (#5203)

Documentation

  • Update samples and standardize region tags (#5195)

Internal / Testing Changes

  • Fix trove classifier to be Production/Stable

  • Don’t suppress ‘dots’ output on test (#5202)

1.0.0

Implementation Changes

  • Remove deprecated Client methods (#5182)

0.32.0

⚠️ Interface changes

  • Usejob.configuration resource for XXXJobConfig classes (#5036)

Interface additions

  • Addpage_size parameter forlist_rows and use in DB-API forarraysize (#4931)

  • Add IPython magics for running queries (#4983)

Documentation

  • Add job string constant parameters in init and snippets documentation (#4987)

Internal / Testing changes

  • Specify IPython version 5.5 when running Python 2.7 tests (#5145)

  • Move all Dataset property conversion logic into properties (#5130)

  • Remove unnecessary _Table class from test_job.py (#5126)

  • Use explicit bytes to initialize ‘BytesIO’. (#5116)

  • Make SchemaField be able to include description via from_api_repr method (#5114)

  • Remove _ApiResourceProperty class (#5107)

  • Add dev version for 0.32.0 release (#5105)

  • StringIO to BytesIO (#5101)

  • Shorten snippets test name (#5091)

  • Don’t useselected_fields for listing query result rows (#5072)

  • Add location property to job classes. (#5071)

  • Use autospec for Connection in tests. (#5066)

  • Add Parquet SourceFormat and samples (#5057)

  • Remove test_load_table_from_uri_w_autodetect_schema_then_get_job because of duplicate test in snippets (#5004)

  • Fix encoding variable and strings UTF-8 and ISO-8859-1 difference documentation (#4990)

0.31.0

Interface additions

  • Add support forEncryptionConfiguration (#4845)

Implementation changes

  • Allow listing/getting jobs even when there is an “invalid” job. (#4786)

Dependencies

  • The minimum version forgoogle-api-core has been updated to version 1.0.0. This may cause some incompatibility with older google-cloud libraries, you will need to update those libraries if you have a dependency conflict. (#4944, #4946)

Documentation

  • Update format inTable.full_table_id andTableListItem.full_table_id docstrings. (#4906)

Testing and internal changes

  • Install local dependencies when running lint (#4936)

  • Re-enable lint for tests, remove usage of pylint (#4921)

  • Normalize all setup.py files (#4909)

  • Remove unnecessary debug print from tests (#4907)

  • Use constant strings for job properties in tests (#4833)

0.30.0

This is the release candidate for v1.0.0.

Interface changes / additions

  • Adddelete_contents todelete_dataset. (#4724)

Bugfixes

  • Add handling of missing properties inSchemaField.from_api_repr(). (#4754)

  • Fix missing return value inLoadJobConfig.from_api_repr. (#4727)

Documentation

  • Minor documentation and typo fixes. (#4782, #4718, #4784, #4835, #4836)

0.29.0

Interface changes / additions

  • Addto_dataframe() method to row iterators. When Pandas is installed thismethod returns aDataFrame containing the query’s or table’s rows.(#4354)

  • Iterate over aQueryJob to wait for and get the query results.(#4350)

  • AddTable.reference andDataset.reference properties to get theTableReference orDatasetReference corresponding to thatTable orDataset, respectively.(#4405)

  • AddRow.keys(),Row.items(), andRow.get(). This makesRow actmore like a built-in dictionary.(#4393,#4413)

Interface changes / breaking changes

  • AddClient.insert_rows() andClient.insert_rows_json(), deprecateClient.create_rows() andClient.create_rows_json().(#4657)

  • AddClient.list_tables, deprecateClient.list_dataset_tables.(#4653)

  • Client.list_tables returns an iterators ofTableListItem. The APIonly returns a subset of properties of a table when listing.(#4427)

  • RemoveQueryJob.query_results(). UseQueryJob.result() instead.(#4652)

  • RemoveClient.query_rows(). UseClient.query() instead.(#4429)

  • Client.list_datasets returns an iterator ofDatasetListItem. The APIonly returns a subset of properties of a dataset when listing.(#4439)

0.28.0

0.28.0 significantly changes the interface for this package. For examplesof the differences between 0.28.0 and previous versions, seeMigrating to the BigQuery Python client library 0.28.These changes can be summarized as follows:

  • Query and view operations default to the standard SQL dialect. (#4192)

  • Client functions related tojobs, like runningqueries, immediately start the job.

  • Functions to create, get, update, delete datasets and tables moved to theclient class.

Fixes

  • Populate timeout parameter correctly for queries (#4209)

  • Automatically retry idempotent RPCs (#4148, #4178)

  • Parse timestamps in query parameters using canonical format (#3945)

  • Parse array parameters that contain a struct type. (#4040)

  • Support Sub Second Datetimes in row data (#3901, #3915, #3926), h/t @page1

Interface changes / additions

  • Support external table configuration (#4182) in query jobs (#4191) andtables (#4193).

  • NewRow class allows for access by integer index like a tuple, stringindex like a dictionary, or attribute access like an object. (#4149)

  • Add option for job ID generation with user-supplied prefix (#4198)

  • Add support for update of dataset access entries (#4197)

  • Add support for atomic read-modify-write of a dataset using etag (#4052)

  • Add support for labels toDataset (#4026)

  • Add support for labels toTable (#4207)

  • AddTable.streaming_buffer property (#4161)

  • AddTableReference class (#3942)

  • AddDatasetReference class (#3938, #3942, #3993)

  • AddExtractJob.destination_uri_file_counts property. (#3803)

  • Addclient.create_rows_json() to bypass conversions on streaming writes.(#4189)

  • Addclient.get_job() to get arbitrary jobs. (#3804, #4213)

  • Add filter toclient.list_datasets() (#4205)

  • AddQueryJob.undeclared_query_parameters property. (#3802)

  • AddQueryJob.referenced_tables property. (#3801)

  • Add new scalar statistics properties toQueryJob (#3800)

  • AddQueryJob.query_plan property. (#3799)

Interface changes / breaking changes

  • Removeclient.run_async_query(), useclient.query() instead. (#4130)

  • Removeclient.run_sync_query(), useclient.query_rows() instead. (#4065, #4248)

  • MakeQueryResults read-only. (#4094, #4144)

  • Makeget_query_results private. Return rows forQueryJob.result() (#3883)

  • Move\*QueryParameter andUDFResource classes toquery module (alsoexposed inbigquery module). (#4156)

Changes to tables

  • Removeclient fromTable class (#4159)

  • Removetable.exists() (#4145)

  • Movetable.list_parations toclient.list_partitions (#4146)

  • Movetable.upload_from_file toclient.load_table_from_file (#4136)

  • Movetable.update() andtable.patch() toclient.update_table() (#4076)

  • Movetable.insert_data() toclient.create_rows(). Automaticallygenerates row IDs if not supplied. (#4151, #4173)

  • Movetable.fetch_data() toclient.list_rows() (#4119, #4143)

  • Movetable.delete() toclient.delete_table() (#4066)

  • Movetable.create() toclient.create_table() (#4038, #4043)

  • Movetable.reload() toclient.get_table() (#4004)

  • RenameTable.name attribute toTable.table_id (#3959)

  • Table constructor takes aTableReference as parameter (#3997)

Changes to datasets

  • Removeclient fromDataset class (#4018)

  • Removedataset.exists() (#3996)

  • Movedataset.list_tables() toclient.list_dataset_tables() (#4013)

  • Movedataset.delete() toclient.delete_dataset() (#4012)

  • Movedataset.patch() anddataset.update() toclient.update_dataset() (#4003)

  • Movedataset.create() toclient.create_dataset() (#3982)

  • Movedataset.reload() toclient.get_dataset() (#3973)

  • RenameDataset.name attribute toDataset.dataset_id (#3955)

  • client.dataset() returns aDatasetReference instead ofDataset. (#3944)

  • Rename class:dataset.AccessGrant -> dataset.AccessEntry. (#3798)

  • dataset.table() returns aTableReference instead of aTable (#4014)

  • Dataset constructor takes a DatasetReference (#4036)

Changes to jobs

  • Makejob.begin() method private. (#4242)

  • AddLoadJobConfig class and modifyLoadJob (#4103, #4137)

  • AddCopyJobConfig class and modifyCopyJob (#4051, #4059)

  • Type of Job’s and Query’sdefault_dataset changed fromDataset toDatasetReference (#4037)

  • Renameclient.load_table_from_storage() toclient.load_table_from_uri()(#4235)

  • Renameclient.extract_table_to_storage toclient.extract_table().Method starts the extract job immediately. (#3991, #4177)

  • RenameXJob.name toXJob.job_id. (#3962)

  • Rename job classes.LoadTableFromStorageJob -> LoadJob andExtractTableToStorageJob -> jobs.ExtractJob (#3797)

Dependencies

  • Updating togoogle-cloud-core ~= 0.28, in particular, thegoogle-api-core package has been moved out ofgoogle-cloud-core. (#4221)

PyPI:https://pypi.org/project/google-cloud-bigquery/0.28.0/

0.27.0

  • Remove client-side enum validation. (#3735)

  • AddTable.row_from_mapping helper. (#3425)

  • Movegoogle.cloud.future togoogle.api.core (#3764)

  • Fix__eq__ and__ne__. (#3765)

  • Movegoogle.cloud.iterator togoogle.api.core.page_iterator (#3770)

  • nullMarker support for BigQuery Load Jobs (#3777), h/t @leondealmeida

  • Allowjob_id to be explicitly specified in DB-API. (#3779)

  • Add support for a custom null marker. (#3776)

  • AddSchemaField serialization and deserialization. (#3786)

  • Addget_query_results method to the client. (#3838)

  • Poll for query completion viagetQueryResults method. (#3844)

  • Allow fetching more than the first page whenmax_results is set. (#3845)

PyPI:https://pypi.org/project/google-cloud-bigquery/0.27.0/

0.26.0

Notable implementation changes

  • Using therequests transport attached to a Client for for resumable media(i.e. downloads and uploads) (#3705) (this relates to thehttplib2 torequests switch)

Interface changes / additions

  • Addingautodetect property onLoadTableFromStorageJob to enable schemaautodetection. (#3648)

  • Implementing the Python Futures interface for Jobs. Calljob.result() towait for jobs to complete instead of polling manually on the job status.(#3626)

  • Addingis_nullable property onSchemaField. Can be used to check if acolumn is nullable. (#3620)

  • job_name argument added toTable.upload_from_file for setting the jobID. (#3605)

  • Addinggoogle.cloud.bigquery.dbapi package, which implements PEP-249DB-API specification. (#2921)

  • AddingTable.view_use_legacy_sql property. Can be used to create viewswith legacy or standard SQL. (#3514)

Interface changes / breaking changes

  • Removingresults() method from theQueryJob class. Usequery_results() instead. (#3661)

  • SchemaField is now immutable. It is also hashable so that it can be usedin sets. (#3601)

Dependencies

  • Updating togoogle-cloud-core ~= 0.26, in particular, the underlying HTTPtransport switched fromhttplib2 torequests (#3654, #3674)

  • Adding dependency ongoogle-resumable-media for loading BigQuery tablesfrom local files. (#3555)

Packaging

  • Fix inclusion oftests (vs.unit_tests) inMANIFEST.in (#3552)

  • Updatingauthor_email insetup.py togoogleapis-publisher@google.com.(#3598)

PyPI:https://pypi.org/project/google-cloud-bigquery/0.26.0/

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-16 UTC.