3.38.0 (2025-09-15)
3.37.0 (2025-09-08)
- Clarify that the presence of
XyzJob.errorsdoesn't necessarily mean that the job has not completed or was unsuccessful (#2278) (6e88d7d) - Clarify the api_method arg for client.query() (#2277) (8a13c12)
3.36.0 (2025-08-20)
- Add created/started/ended properties to RowIterator. (#2260) (0a95b24)
- Retry query jobs if
jobBackendErrororjobInternalErrorare encountered (#2256) (3deff1d)
- Add a TROUBLESHOOTING.md file with tips for logging (#2262) (b684832)
- Update README to break infinite redirect loop (#2254) (8f03166)
3.35.1 (2025-07-21)
3.35.0 (2025-07-15)
- Add null_markers property to LoadJobConfig and CSVOptions (#2239) (289446d)
- Add total slot ms to RowIterator (#2233) (d44bf02)
- Add UpdateMode to update_dataset (#2204) (eb9c2af)
- Adds dataset_view parameter to get_dataset method (#2198) (28a5750)
- Adds date_format to load job and external config (#2231) (7d31828)
- Adds datetime_format as an option (#2236) (54d3dc6)
- Adds source_column_match and associated tests (#2227) (6d5d236)
- Adds time_format and timestamp_format and associated tests (#2238) (371ad29)
- Adds time_zone to external config and load job (#2229) (b2300d0)
- Adds magics.context.project to eliminate issues with unit tests … (#2228) (27ff3a8)
- Fix rows returned when both start_index and page_size are provided (#2181) (45643a2)
- Make AccessEntry equality consistent with from_api_repr (#2218) (4941de4)
- Update type hints for various BigQuery files (#2206) (b863291)
3.34.0 (2025-05-27)
- Update query.py (#2192) (9b5ee78)
- Use query_and_wait in the array parameters sample (#2202) (28a9994)
3.33.0 (2025-05-19)
- Add ability to set autodetect_schema query param in update_table (#2171) (57f940d)
- Add dtype parameters to to_geodataframe functions (#2176) (ebfd0a8)
- Support job reservation (#2186) (cb646ce)
- Ensure AccessEntry equality and repr uses the correct
entity_type(#2182) (0217637) - Ensure SchemaField.field_dtype returns a string (#2188) (7ec2848)
3.32.0 (2025-05-12)
- Add dataset access policy version attribute (#2169) (b7656b9)
- Add preview support for incremental results (#2145) (22b80bb)
- Add WRITE_TRUNCATE_DATA enum (#2166) (4692747)
- Adds condition class and assoc. unit tests (#2159) (a69d6b7)
- Support BigLakeConfiguration (managed Iceberg tables) (#2162) (a1c8e9a)
- Update the AccessEntry class with a new condition attribute and unit tests (#2163) (7301667)
query()now warns whenjob_idis set and the defaultjob_retryis ignored (#2167) (ca1798a)- Empty record dtypes (#2147) (77d7173)
- Table iterator should not use bqstorage when page_size is not None (#2154) (e89a707)
3.31.0 (2025-03-20)
- Add query text and total bytes processed to RowIterator (#2140) (2d5f932)
- Add support for Python 3.13 (0842aa1)
- Adding property setter for table constraints, #1990 (#2092) (f8572dd)
- Allow protobuf 6.x (0842aa1)
- Avoid "Unable to determine type" warning with JSON columns in
to_dataframe(#1876) (968020d) - Remove setup.cfg configuration for creating universal wheels (#2146) (d7f7685)
3.30.0 (2025-02-26)
- Add roundingmode enum, wiring, and tests (#2121) (3a48948)
- Adds foreign_type_info attribute to table class and adds unit tests. (#2126) (2c19681)
- Support resource_tags for table (#2093) (d4070ca)
- Avoid blocking in download thread when using BQ Storage API (#2034) (54c8d07)
- Retry 404 errors in
Client.query(...)(#2135) (c6d5f8a)
- Updates required checks list in github (#2136) (fea49ff)
- Use pandas-gbq to determine schema in
load_table_from_dataframe(#2095) (7603bd7)
3.29.0 (2025-01-21)
3.28.0 (2025-01-15)
- Add property for
allowNonIncrementalDefinitionfor materialized view (#2084) (3359ef3) - Add property for maxStaleness in table definitions (#2087) (729322c)
- Add type hints to Client (#2044) (40529de)
- Adds ExternalCatalogDatasetOptions and tests (#2111) (b929a90)
- Adds ForeignTypeInfo class and tests (#2110) (55ca63c)
- Adds new input validation function similar to isinstance. (#2107) (a2bebb9)
- Adds StorageDescriptor and tests (#2109) (6be0272)
- Adds the SerDeInfo class and tests (#2108) (62960f2)
- Migrate to pyproject.toml (#2041) (1061611)
- Preserve unknown fields from the REST API representation in
SchemaField(#2097) (aaf1eb8) - Resource tags in dataset (#2090) (3e13016)
- Support setting max_stream_count when fetching query result (#2051) (d461297)
3.27.0 (2024-11-01)
3.26.0 (2024-09-25)
- Include LegacyPandasError in init imports (#2014) (3ab5e95)
- Use
bigquery-magicspackage for the%%bigquerymagic (#1965) (60128a5)
- Add docfx to the presubmit configuration and delete docs-presubmit (#1995) (bd83cfd)
- Add warning when encountering unknown field types (#1989) (8f5a41d)
- Allow protobuf 5.x; require protobuf >=3.20.2; proto-plus >=1.22.3 (#1976) (57bf873)
- Do not set job timeout extra property if None (#1987) (edcb79c)
- Set pyarrow field nullable to False for a BigQuery field in REPEATED mode (#1999) (5352870)
- Add short mode query sample & test (#1978) (ba61a8a)
- Improve QueryJobConfig.destination docstring (#2016) (1b4cca0)
3.25.0 (2024-06-17)
- Add prefer_bqstorage_client option for Connection (#1945) (bfdeb3f)
- Support load job option ColumnNameCharacterMap (#1952) (7e522ee)
3.24.0 (2024-06-04)
- Add default timeout for Client.get_job() (#1935) (9fbad76)
- Add support for map target type in Parquet options (#1919) (c3f7b23)
- Create query job in job.result() if doesn't exist (#1944) (8f5b4b7)
- Retry
is_job_doneonConnectionError(#1930) (4f72723)
- If
page_sizeormax_resultsis set onQueryJob.result(), use to download first page of results (#1942) (3e7a48d)
3.23.1 (2024-05-21)
3.23.0 (2024-05-16)
- Adds timer decorator to facilitate debugging (#1917) (ea750e0)
- Support insertAll for range (#1909) (74e75e8)
- Add pyarrow version check for range support (#1914) (a86d7b9)
- Edit presubmit for to simplify configuration (#1915) (b739596)
3.22.0 (2024-04-19)
3.21.0 (2024-04-18)
- Add compression option ZSTD. (#1890) (5ed9cce)
- Adds billing to opentel (#1889) (38697fb)
- Support RANGE in queries Part 1: JSON (#1884) (3634405)
- Add types to DatasetReference constructor (#1601) (bf8861c)
- Creates linting-typing.cfg in presubmit (#1881) (c852c15)
- Remove duplicate key time_partitioning from Table._PROPERTY_TO_A… (#1898) (82ae908)
- Retry query jobs that fail even with ambiguous
jobs.getQueryResultsREST errors (#1903, #1900) (1367b58)
3.20.1 (2024-04-01)
3.20.0 (2024-03-27)
- Correct type checking (#1848) (2660dbd)
- Update error logging when converting to pyarrow column fails (#1836) (0ac6e9b)
- Updates a number of optional dependencies (#1864) (c2496a1)
- Use an allowlist instead of denylist to determine when
query_and_waitusesjobs.queryAPI (#1869) (e265db6)
3.19.0 (2024-03-11)
- Add google-auth as a direct dependency (713ce2c)
- Augment universe_domain handling (#1837) (53c2cbf)
- deps: Require google-api-core>=1.34.1, >=2.11.0 (713ce2c)
- Supplementary fix to env-based universe resolution (#1844) (b818992)
- Supplementary fix to env-based universe resolution (#1847) (6dff50f)
3.18.0 (2024-02-29)
- Support nullable boolean and Int64 dtypes in
insert_rows_from_dataframe(#1816) (ab0cf4c) - Support slot_ms in QueryPlanEntry (#1831) (d62cabb)
- samples: Updates to urllib3 constraint for Python 3.7 (#1834) (b099c32)
- Update
client_query_w_named_params.pyto usequery_and_waitAPI (#1782) (89dfcb6)
3.17.2 (2024-01-30)
- Update to use API (#1781) (81563b0)
- Update
client_query_destination_table.pysample to usequery_and_wait(#1783) (68ebbe1) - Update query_external_sheets_permanent_table.py to use query_and_wait API (#1778) (a7be88a)
- Update sample for query_to_arrow to use query_and_wait API (#1776) (dbf10de)
- Update the query destination table legacy file to use query_and_wait API (#1775) (ef89f9e)
- Update to use
query_and_waitinclient_query_w_positional_params.py(#1786) (410f71e) - Update to use
query_and_waitinsamples/client_query_w_timestamp_params.py(#1785) (ba36948) - Update to_geodataframe to use query_and_wait functionality (#1800) (1298594)
3.17.1 (2024-01-24)
- Add pyarrow.large_strign to the _ARROW_SCALAR_IDS_TO_BQ map (#1796) (b402a6d)
- Retry 'job exceeded rate limits' for DDL queries (#1794) (39f33b2)
3.17.0 (2024-01-24)
query_and_waitnow retains unknown query configuration_properties(#1793) (4ba4342)- Raise
ValueErrorinquery_and_waitwith wrongjob_configtype (4ba4342)
- Remove unused query code sample (#1769) (1f96439)
- Update
snippets.pyto usequery_and_wait(#1773) (d90602d) - Update multiple samples to change query to query_and_wait (#1784) (d1161dd)
- Update the query with no cache sample to use query_and_wait API (#1770) (955a4cd)
- Updates
querytoquery and waitin samples/desktopapp/user_credentials.py (#1787) (89f1299)
3.16.0 (2024-01-12)
- Add
table_constraintsfield to Table model (#1755) (a167f9a) - Support jsonExtension in LoadJobConfig (#1751) (0fd7347)
3.15.0 (2024-01-09)
- Support JSON type in
insert_rowsand as a scalar query parameter (#1757) (02a7d12) - Support RANGE in schema (#1746) (8585747)
- Deserializing JSON subfields within structs fails (#1742) (0d93073)
- Due to upstream change in dataset, updates expected results (#1761) (132c14b)
- Load_table_from_dataframe for higher scale decimal (#1703) (b9c8be0)
- Updates types-protobuf version for mypy-samples nox session (#1764) (c0de695)
3.14.1 (2023-12-13)
3.14.0 (2023-12-08)
- Add
Client.query_and_waitwhich directly returns aRowIteratorof results (#1722) (89a647e) - Add
job_id,location,project, andquery_idproperties onRowIterator(#1733) (494f275) - Add
job_timeout_msto job configuration classes (#1675) (84d64cd) - Add support dataset.max_time_travel_hours (#1683) (f22eff2)
- Add support for Dataset.isCaseInsensitive (#1671) (386fa86)
- Add support for Python 3.12 (#1736) (3c0976a)
- Removed pkg_resources from all test files and moved importlib into pandas extra (#1726) (1f4ebb1)
- Support data_governance_type (#1708) (eff365d)
load_table_from_dataframenow assumes there may be local null values (#1735) (f05dc69)- Ensure query job retry has longer deadline than API request deadline (#1734) (5573579)
- Keep
RowIterator.total_rowspopulated after iteration (#1748) (8482f47) - Move grpc, proto-plus and protobuf packages to extras (#1721) (5ce4d13)
3.13.0 (2023-10-30)
- Add
Model.transform_columnsproperty (#1661) (5ceed05) - Add support for dataset.default_rounding_mode (#1688) (83bc768)
- Remove redundant
bigquery_update_table_expirationcode sample (#1673) (2dded33) - Revised
create_partitioned_tablesample (#1447) (40ba859) - Revised relax column mode sample (#1467) (b8c9276)
3.12.0 (2023-10-02)
- Add
Dataset.storage_billing_modelsetter, useclient.update_dataset(ds, fields=["storage_billing_model"])to update (#1643) (5deba50) - Search statistics (#1616) (b930e46)
- Widen retry predicate to include ServiceUnavailable (#1641) (3e021a4)
- Allow
storage_billing_modelto be explicitly set toNoneto use project default value (#1665) (514d3e1) - Relax timeout expectations (#1645) (1760e94)
- Use isinstance() per E721, unpin flake8 (#1659) (54a7769)
3.11.4 (2023-07-19)
3.11.3 (2023-06-27)
3.11.2 (2023-06-21)
3.11.1 (2023-06-09)
3.11.0 (2023-06-01)
- Filter None values from OpenTelemetry attributes (#1567) (9ea2e21)
- Handle case when expirationMs is None (#1553) (fa6e13d)
- Raise most recent exception when not able to fetch query job after starting the job (#1362) (09cc1df)
3.10.0 (2023-04-18)
3.9.0 (2023-03-28)
- Keyerror when the load_table_from_dataframe accesses a unmapped dtype dataframe index (#1535) (a69348a)
3.8.0 (2023-03-24)
- Add bool, int, float, string dtype to to_dataframe (#1529) (5e4465d)
- Add default LoadJobConfig to Client (#1526) (a2520ca)
- Expose configuration property on CopyJob, ExtractJob, LoadJob, QueryJob (#1521) (8270a10)
3.7.0 (2023-03-06)
- Add
connection_propertiesandcreate_sessiontoLoadJobConfig(#1509) (cd0aaa1) - Add default_query_job_config property and property setter to BQ client (#1511) (a23092c)
3.6.0 (2023-02-22)
- Annotate optional integer parameters with optional type (#1487) (a190aaa)
- Loosen ipywidget dependency (#1504) (20d3276)
- Removes scope to avoid unnecessary duplication (#1503) (665d7ba)
- Update minimum google-cloud-core to 1.6.0 (a190aaa)
3.5.0 (2023-01-31)
- Add str method to DatasetReference (#1477) (f32df1f)
- Add preserveAsciiControlCharacter to LoadJobConfig (#1484) (bd1da9a)
- Adds snippet for creating table with external data config (#1420) (f0ace2a)
- Revise delete label table code sample, add TODO to clean up sni… (#1466) (0dab7d2)
- samples: Table variable fix (#1287) (a71888a)
3.4.2 (2023-01-13)
- Create sample to write schema file from table (#1439) (093cc68)
- Created samples for load table and create table from schema file (#1436) (8ad2e5b)
- Revise create table cmek sample (#1452) (57740e4)
- Revise get table labels code sample, add TODO to clean up snipp… (#1464) (b5ccbfe)
- Revise label table code samples (#1451) (14ae1f2)
- Revise sample for nested schema (#1446) (a097631)
3.4.1 (2022-12-09)
- make pyarrow and BQ Storage optional dependencies (e1aa921)
3.4.0 (2022-11-17)
- Add
reference_file_schema_urito LoadJobConfig, ExternalConfig (#1399) (931285f) - Add default value expression (#1408) (207aa50)
- Add More Specific Type Annotations for Row Dictionaries (#1295) (eb49873)
3.3.6 (2022-11-02)
- Corrects test for non-existent attribute (#1395) (a80f436)
- deps: Allow protobuf 3.19.5 (#1379) (3e4a074)
- deps: Allow pyarrow < 11 (#1393) (c898546)
- deps: Require requests>=2.21.0 (#1388) (e398336)
- Refactor to adapt to changes to shapely dependency (#1376) (2afd278)
- release 3.3.6 (4fce1d9)
3.3.4 (2022-09-29)
3.3.3 (2022-09-28)
- Refactors code to account for a tdqm code deprecation (#1357) (1369a9d)
- Validate opentelemetry span job attributes have values (#1327) (8287af1)
- samples: uses function (create_job) more appropriate to the described sample intent (5aeedaa)
3.3.2 (2022-08-16)
- deps: require proto-plus >= 1.22.0 (1de7a52)
- deps: require protobuf >=3.19, < 5.0.0 (#1311) (1de7a52)
3.3.1 (2022-08-09)
3.3.0 (2022-07-25)
- samples: add table snapshot sample (#1274) (e760d1b)
- samples: explicitly add bq to samples reqs, upgrade grpc to fix bug on m1 (#1290) (9b7e3e4)
3.2.0 (2022-06-06)
- deps: proto-plus >= 1.15.0, <2.0.0dev (ba58d3a)
- deps: require packaging >= 14.3, <22.0.0dev (ba58d3a)
- deps: require protobuf>= 3.12.0, <4.0.0dev (#1263) (ba58d3a)
3.1.0 (2022-05-09)
- add str method to table (#1199) (8da4fa9)
- refactor AccessEntry to use _properties pattern (#1125) (acd5612)
- support using BIGQUERY_EMULATOR_HOST environment variable (#1222) (39294b4)
- deps: allow pyarrow v8 (#1245) (d258690)
- export bigquery.HivePartitioningOptions (#1217) (8eb757b)
- Skip geography_as_object conversion for REPEATED fields (#1220) (4d3d6ec)
3.0.1 (2022-03-30)
- deps: raise exception when pandas is installed but db-dtypes is not (#1191) (4333910)
- deps: restore dependency on python-dateutil (#1187) (212d7ec)
3.0.0 (2022-03-29)
- BigQuery Storage and pyarrow are required dependencies (#776)
- use nullable
Int64andbooleandtypes into_dataframe(#786) - destination tables are no-longer removed by
create_job(#891) - In
to_dataframe, usedbdateanddbtimedtypes from db-dtypes package for BigQuery DATE and TIME columns (#972) - automatically convert out-of-bounds dates in
to_dataframe, removedate_as_objectargument (#972) - mark the package as type-checked (#1058)
- default to DATETIME type when loading timezone-naive datetimes from Pandas (#1061)
- remove out-of-date BigQuery ML protocol buffers (#1178)
- add
api_methodparameter toClient.queryto selectINSERTorQUERYAPI (#967) (76d88fb) - default to DATETIME type when loading timezone-naive datetimes from Pandas (#1061) (76d88fb)
- destination tables are no-longer removed by
create_job(#891) (76d88fb) - In
to_dataframe, usedbdateanddbtimedtypes from db-dtypes package for BigQuery DATE and TIME columns (#972) (76d88fb) - mark the package as type-checked (#1058) (76d88fb)
- use
StandardSqlFieldclass forModel.feature_columnsandModel.label_columns(#1117) (76d88fb)
- automatically convert out-of-bounds dates in
to_dataframe, removedate_as_objectargument (#972) (76d88fb) - improve type annotations for mypy validation (#1081) (76d88fb)
- remove out-of-date BigQuery ML protocol buffers (#1178) (76d88fb)
- use nullable
Int64andbooleandtypes into_dataframe(#786) (76d88fb)
2.34.3 (2022-03-29)
2.34.2 (2022-03-05)
- deps: require google-api-core>=1.31.5, >=2.3.2 (#1157) (0c15790)
- deps: require proto-plus>=1.15.0 (0c15790)
2.34.1 (2022-03-02)
- add "extra" for IPython, exclude bad IPython release (#1151) (0fbe12d)
- allow pyarrow 7.0 (#1112) (57f8ea9)
2.34.0 (2022-02-18)
2.33.0 (2022-02-16)
- reference BigQuery REST API defaults in
LoadJobConfigdescrip… (#1132) (18d9580) - show common job properties in
get_jobandcancel_jobsamples (#1137) (8edc10d)
2.32.0 (2022-01-12)
2.31.0 (2021-11-24)
- allow cell magic body to be a $variable (#1053) (3a681e0)
- promote
RowIterator.to_arrow_iterableto public method (#1073) (21cd710)
2.30.1 (2021-11-04)
- show gcloud command to authorize against sheets (#1045) (20c9024)
- use stable URL for pandas intersphinx links (#1048) (73312f8)
2.30.0 (2021-11-03)
- accept TableListItem where TableReference is accepted (#1016) (fe16adc)
- support Python 3.10 (#1043) (5bbb832)
- add code samples for Jupyter/IPython magics (#1013) (61141ee)
- samples: add create external table with hive partitioning (#1033) (d64f5b6)
2.29.0 (2021-10-27)
- add
QueryJob.schemaproperty for dry run queries (#1014) (2937fa1) - add session and connection properties to QueryJobConfig (#1024) (e4c94f4)
- add support for INTERVAL data type to
list_rows(#840) (e37380a) - allow queryJob.result() to be called on a dryRun (#1015) (685f06a)
- document ScriptStatistics and other missing resource classes (#1023) (6679109)
- fix formatting of generated client docstrings (#1009) (f7b0ee4)
2.28.1 (2021-10-07)
2.28.0 (2021-09-30)
2.27.1 (2021-09-27)
2.27.0 (2021-09-24)
- Add py.typed for PEP 561 compliance (#976) (96e6bee)
- include key metadata in Job representation (#964) (acca1cb)
- Arrow extension-type metadata was not set when calling the REST API or when there are no rows (#946) (864383b)
- disambiguate missing policy tags from explicitly unset policy tags (#983) (f83c00a)
- remove default timeout (#974) (1cef0d4)
2.26.0 (2021-09-01)
2.25.2 (2021-08-31)
- error inserting DataFrame with REPEATED field (#925) (656d2fa)
- underscores weren't allowed in struct field names when passing parameters to the DB API (#930) (fcb0bc6)
2.25.1 (2021-08-25)
- populate default
timeoutand retry after client-side timeout (#896) (b508809) - use REST API in cell magic when requested (#892) (1cb3e55)
2.25.0 (2021-08-24)
2.24.1 (2021-08-13)
2.24.0 (2021-08-11)
- add support for transaction statistics (#849) (7f7b1a8)
- make the same
Table*instances equal to each other (#867) (c1a3d44) - retry failed query jobs in
result()(#837) (519d99c) - support
ScalarQueryParameterTypefortype_argument inScalarQueryParameterconstructor (#850) (93d15e2)
2.23.3 (2021-08-06)
2.23.2 (2021-07-29)
2.23.1 (2021-07-28)
2.23.0 (2021-07-27)
- no longer raise a warning in
to_dataframeifmax_resultsset (#815) (3c1be14) - retry ChunkedEncodingError by default (#802) (419d36d)
2.22.1 (2021-07-22)
- issue a warning if buggy pyarrow is detected (#787) (e403721)
- use a larger chunk size when loading data (#799) (b804373)
- add Samples section to CONTRIBUTING.rst (#785) (e587029)
- add sample to delete job metadata (#798) (be9b242)
2.22.0 (2021-07-19)
- add
LoadJobConfig.projection_fieldsto select DATASTORE_BACKUP fields (#736) (c45a738) - add standard sql table type, update scalar type enums (#777) (b8b5433)
- add support for more detailed DML stats (#758) (36fe86f)
- add support for user defined Table View Functions (#724) (8c7b839)
2.21.0 (2021-07-12)
- Add max_results parameter to some of the
QueryJobmethods. (#698) (2a9618f) - Add support for decimal target types. (#735) (7d2d3e9)
- Add support for table snapshots. (#740) (ba86b2a)
- Enable unsetting policy tags on schema fields. (#703) (18bb443)
- Make it easier to disable best-effort deduplication with streaming inserts. (#734) (1246da8)
- Support passing struct data to the DB API. (#718) (38b3ef9)
- Inserting non-finite floats with
insert_rows(). (#728) (d047419) - Use
pandasfunction to check forNaN. (#750) (67bc5fb)
- Add docs for all enums in module. (#745) (145944f)
- Omit mention of Python 2.7 in
CONTRIBUTING.rst. (#706) (27d6839)
2.20.0 (2021-06-07)
2.19.0 (2021-06-06)
- list_tables, list_projects, list_datasets, list_models, list_routines, and list_jobs now accept a page_size parameter to control page size (#686) (1f1c4b7)
2.18.0 (2021-06-02)
2.17.0 (2021-05-21)
- detect obsolete BQ Storage extra at runtime (#666) (bd7dbda)
- Support parameterized NUMERIC, BIGNUMERIC, STRING, and BYTES types (#673) (45421e7)
2.16.1 (2021-05-12)
2.16.0 (2021-05-05)
2.15.0 (2021-04-29)
- add DECIMAL and BIGDECIMAL as aliases for NUMERIC and BIGNUMERIC (#638) (aa59023)
- The DB API Binary function accepts bytes data (#630) (4396e70)
2.14.0 (2021-04-26)
- accept DatasetListItem where DatasetReference is accepted (#597) (c8b5581)
- accept job object as argument to
get_jobandcancel_job(#617) (f75dcdf) - add
Client.delete_job_metadatamethod to remove job metadata (#610) (0abb566) - add
max_queue_sizeargument toRowIterator.to_dataframe_iterable(#575) (f95f415) - add type hints for public methods (#613) (f8d4aaa)
- DB API cursors are now iterable (#618) (e0b373d)
- retry google.auth TransportError by default (#624) (34ecc3f)
- use pyarrow stream compression, if available (#593) (dde9dc5)
- consistent percents handling in DB API query (#619) (6502a60)
- missing license headers in new test files (#604) (df48cc5)
- unsetting clustering fields on Table is now possible (#622) (33a871f)
- add sample to run DML query (#591) (ff2ec3a)
- update the description of the return value of
_QueryResults.rows()(#594) (8f4c0b8)
2.13.1 (2021-03-23)
2.13.0 (2021-03-22)
- avoid overly strict dependency on pyarrow 3.x (#564) (97ee6ec)
- avoid policy tags 403 error in
load_table_from_dataframe(#557) (84e646e)
2.12.0 (2021-03-16)
2.11.0 (2021-03-09)
2.10.0 (2021-02-25)
- error using empty array of structs parameter (#474) (c1d15f4)
- QueryJob.exception() returns the errors, not raises them (#467) (d763279)
- bigquery: Add alternative approach to setting credentials (#517) (60fbf28)
- explain retry behavior for DONE jobs (#532) (696c443)
2.9.0 (2021-02-18)
- add determinism level for javascript UDFs (#522) (edd3328)
- expose reservation usage stats on jobs (#524) (4ffb4e0)
- clarify `%%bigquery`` magics and fix broken link (#508) (eedf93b)
- update python contributing guide (#514) (01e851d)
2.8.0 (2021-02-08)
2.7.0 (2021-01-27)
- invalid conversion of timezone-aware datetime values to JSON (#480) (61b4385)
- reading the labels attribute on Job instances (#471) (80944f0)
- use explicitly given project over the client's default project for load jobs (#482) (530e1e8)
2.6.2 (2021-01-11)
- add minimum timeout to getQueryResults API requests (#444) (015a73e)
- use debug logging level for OpenTelemetry message (#442) (7ea6b7c)
- add GEOGRAPHY data type code samples (#428) (dbc68b3)
- fix Shapely import in GEOGRAPHY sample (#431) (96a1c5b)
- move and refresh view samples (#420) (079b6a1)
2.6.1 (2020-12-09)
2.6.0 (2020-12-07)
- add support for materialized views (#408) (57ffc66), closes #407
- convert
BIGNUMERICvalues to decimal objects (#414) (d472d2d), closes #367 - support CSV format in
load_table_from_dataframepandas connector (#399) (0046742)
2.5.0 (2020-12-02)
- add
TableReference.__str__to get table ID in standard SQL (#405) (53dff2a), closes #354 - add progress bar for magics (#396) (04d0273)
- add support for unrecognized model types (#401) (168f035)
2.4.0 (2020-11-16)
- add progress bar to
QueryJob.to_dataframeandto_arrow(#352) (dc78edd) - allow routine references (#378) (f9480dc)
- avoid extra API calls from
to_dataframeif all rows are cached (#384) (c52b317) - cache first page of
jobs.getQueryResultsrows (#374) (86f6a51) - use
getQueryResultsfrom DB-API (#375) (30de15f)
11-05-2020 09:27 PST
- update
google.cloud.bigquery.__version__
2.3.0 (2020-11-04)
- add
reloadargument to*Job.done()functions (#341) (e51fd45) - pass retry from Job.result() to Job.done() (#41) (284e17a)
- add missing spaces in opentelemetry log message (#360) (4f326b1)
- dbapi: avoid running % format with no query parameters (#348) (5dd1a5e)
- create_job method accepts dictionary arguments (#300) (155bacc)
2.2.0 (2020-10-19)
- add method api_repr for table list item (#299) (07c70f0)
- add support for listing arima, automl, boosted tree, DNN, and matrix factorization models (#328) (502a092)
- add timeout paramter to load_table_from_file and it dependent methods (#327) (b0dd892)
- add to_api_repr method to Model (#326) (fb401bd)
- allow client options to be set in magics context (#322) (5178b55)
- make TimePartitioning repr evaluable (#110) (20f473b), closes #109
- use version.py instead of pkg_resources.get_distribution (#307) (b8f502b)
- update clustering field docstrings (#286) (5ea1ece), closes #285
- update snippets samples to support version 2.0 (#309) (61634be)
- add protobuf dependency (#306) (cebb5e0), closes #305
- require pyarrow for pandas support (#314) (801e4c0), closes #265
2.1.0 (2020-10-08)
09-30-2020 14:51 PDT
- Transition the library to microgenerator. (#278) This is a breaking change that drops support for Python 2.7 and 3.5 and brings a few other changes. See migration guide for more info.
1.28.0 (2020-09-22)
- add custom cell magic parser to handle complex
--paramsvalues (#213) (dcfbac2) - add instrumentation to list methods (#239) (fa9f9ca)
- add opentelemetry tracing (#215) (a04996c)
- expose require_partition_filter for hive_partition (#257) (aa1613c)
- fix dependency issue in fastavro (#241) (2874abf)
- update minimum dependency versions (#263) (1be66ce)
- validate job_config.source_format in load_table_from_dataframe (#262) (6160fee)
1.27.2 (2020-08-18)
1.27.1 (2020-08-18)
1.27.0 (2020-08-15)
- add support and tests for struct fields (#146) (fee2ba8)
- add support for getting and setting table IAM policy (#144) (f59fc9a)
- bigquery: add client_options to base class (#216) (478597a)
- converting to dataframe with out of bounds timestamps (#209) (8209203), closes #168
- raise error if inserting rows with unknown fields (#163) (8fe7254)
1.26.1 (2020-07-25)
- Migrated code samples from https://github.com/GoogleCloudPlatform/python-docs-samples
- Updated version constraints on grmp dependency in anticipation of 1.0.0 release (#189)
1.26.0 (2020-07-20)
- use BigQuery Storage client by default (if dependencies available) (#55) (e75ff82), closes #91
- bigquery: add eq method for class PartitionRange and RangePartitioning (#162) (0d2a88d)
- bigquery: expose date_as_object parameter to users (#150) (a2d5ce9)
- bigquery: expose date_as_object parameter to users (#150) (cbd831e)
- dry run queries with DB API cursor (#128) (bc33a67)
- omit
NaNvalues when uploading frominsert_rows_from_dataframe(#170) (f9f2f45)
- bigquery: add client thread-safety documentation (#132) (fce76b3)
- bigquery: add docstring for conflict exception (#171) (9c3409b)
- bigquery: consistent use of optional keyword (#153) (79d8c61)
- bigquery: fix the broken docs (#139) (3235255)
1.25.0 (2020-06-06)
- 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)
- 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)
02-03-2020 01:38 PST
- Fix inserting missing repeated fields. (#10196)
- Deprecate
client.dataset()in favor ofDatasetReference. (#7753) - Use faster
to_arrow+to_pandasinto_dataframe()whenpyarrowis available. (#10027) - Write pandas
datetime[ns]columns to BigQuery TIMESTAMP columns. (#10028)
- Check
rowsargument type ininsert_rows(). (#10174) - Check
json_rowsarg type ininsert_rows_json(). (#10162) - Make
RowIterator.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 to
QueryJob.done()method. (#9875) - Add
create_bqstorage_clientparameter toto_dataframe()andto_arrow()methods. (#9573)
- Fix minimum versions of
google-cloud-coreandgoogle-resumable-mediadependencies. (#10016)
- Fix a comment typo in
job.py. (#10209) - Update code samples of load table file and load table URI. (#10175)
- Uncomment
Clientconstructor and imports in samples. (#10058) - Remove unused query code sample. (#10024)
- Update code samples to use strings for table and dataset IDs. (#9974)
- 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)
12-16-2019 09:39 PST
- Add
iamMemberentity type to allowed access classes. (#9973) - Fix typo in import error message (pandas -> pyarrow). (#9955)
- Add
sixas an explicit dependency. (#9979)
- Add sample to read from query destination table. (#9964)
12-11-2019 13:31 PST
- Add
close()method to client for releasing open sockets. (#9894) - Add support of
use_avro_logical_typesfor extract jobs. (#9642) - Add support for hive partitioning options configuration. (#9626)
- Add description for routine entities. (#9785)
- Update code samples to use strings for table and dataset IDs. (#9495)
- Run unit tests with Python 3.8. (#9880)
- Import
Mappingfromcollections.abcnot fromcollections. (#9826)
11-13-2019 12:23 PST
- Preserve job config passed to Client methods. (#9735)
- Use pyarrow fallback for improved schema detection. (#9321)
- Add TypeError if wrong
job_config typeis passed to client job methods. (#9506) - Fix arrow deprecation warning. (#9504)
- Add
--destination_tableparameter 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)
- Pin
google-resumable-mediato includ 0.5.x. (#9572)
- 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)
- 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)
10-16-2019 10:33 PDT
- add ability to pass in a table ID instead of a query to the
%%bigquerymagic (#9170) - add support for custom
QueryJobConfiginBigQuery.cursor.executemethod (#9278) - store
QueryJobto destination var on error in%%bigquerymagic (#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)
- add
Dataset.default_partition_expiration_msandTable.require_partition_filterproperties (#9464)
- restrict version range of
google-resumable-media(#9243)
- 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)
- 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)
09-13-2019 11:22 PDT
- Change default endpoint to bigquery.googleapis.com (#9213)
- Change the default value of Cursor instances'
arraysizeattribute to None (#9199) - Deprecate automatic schema conversion. (#9176)
- Fix
list_rows()max results with BQ storage client (#9178)
- Add
Model.encryption_config. (via synth) (#9214) - Add
Client.insert_rows_from_dataframe()method (#9162) - Add support for array parameters to
Cursor.execute(). (#9189) - Add support for project IDs with org prefix to
Table.from_string()factory. (#9161) - Add
--max_resultsoption to Jupyter magics (#9169) - Autofetch table schema on load if not provided. (#9108)
- Add
max_resultsparameter toQueryJob.result(). (#9167)
- Fix doc link. (#9200)
09-03-2019 14:33 PDT
- Raise when unexpected fields are present in the
LoadJobConfig.schemawhen callingload_table_from_dataframe. (#9096) - Determine the schema in
load_table_from_dataframebased on dtypes. (#9049) - Raise helpful error when loading table from dataframe with
STRUCTcolumns. (#9053) - Fix schema recognition of struct field types. (#9001)
- Fix deserializing
NoneinQueryJobfor queries with parameters. (#9029)
- Include indexes in table written by
load_table_from_dataframe, only if fields corresponding to indexes are present inLoadJobConfig.schema. (#9084) - Add
client_optionsto constructor. (#8999) - Add
--dry_runoption to%%bigquerymagic. (#9067) - Add
load_table_from_json()method to create a table from a list of dictionaries. (#9076) - Allow subset of schema to be passed into
load_table_from_dataframe. (#9064) - Add support for unsetting
LoadJobConfig.schema. (#9077) - Add support to
Datasetfor project IDs containing an org prefix. (#8877) - Add enum with SQL type names allowed to be used in
SchemaField. (#9040)
- Fix the reference URL for
Client.create_dataset(). (#9149) - Update code samples to use strings for table names instead of
client.dataset(). (#9032) - Remove compatability badges from READMEs. (#9035)
- Fix Pandas DataFrame load example under Python 2.7. (#9022)
- Disable failing snippets test for copying CMEK-protected tables. (#9156)
- Fix BigQuery client unit test assertions (#9112)
- Replace avro with arrow schemas in
test_table.py(#9056)
08-08-2019 12:28 PDT
- Add
bqstorage_clientparam 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)
- Add
to_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)
- Add compatibility check badges to READMEs. (#8288)
- Link to googleapis.dev documentation in READMEs. (#8705)
- Remove redundant service account key code sample. (#8891)
- Fix several pytest "skip if" markers (#8694)
- Update tests to support conversion of NaN as NULL in pyarrow
0.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)
- Move
maybe_fail_import()to top level test utils (#8840) - Set BQ Storage client user-agent when in Jupyter cell (#8734)
07-12-2019 07:56 PDT
- Support faster Arrow data format in
to_dataframewhen using BigQuery Storage API. (#8551) - Add
to_arrowto get apyarrow.Tablefrom query results. (#8609)
- Exclude bad 0.14.0
pyarrowrelease. (#8551)
07-01-2019 10:22 PDT
- Add Routines API. (#8491)
- Add more stats to Models API, such as
optimization_strategy(via synth). (#8344)
- 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)
- Refactor
to_dataframeto deterministicly update progress bar. (#8303)
06-14-2019 10:10 PDT
- Fix bug where
load_table_from_dataframecould not append to REQUIRED fields. (#8230)
- Add
page_sizeparameter toQueryJob.result. (#8206)
06-04-2019 11:11 PDT
- Add
maximum_bytes_billedargument andcontext.default_query_job_configproperty to magics. (#8179)
- Don't pin
google-api-corein libs usinggoogle-cloud-core. (#8213)
05-31-2019 10:22 PDT
- Use
job_config.schemafor data type conversion if specified inload_table_from_dataframe. (#8105)
- Adds private
_connectionobject to magics context. (#8192) - Fix coverage in 'types.py' (via synth). (#8146)
05-21-2019 11:16 PDT
- Don't raise error when encountering unknown fields in Models API. (#8083)
- Use alabaster theme everwhere. (#8021)
- Add empty lines (via synth). (#8049)
05-16-2019 11:25 PDT
- Remove duplicates from index on pandas DataFrames returned by
to_dataframe(). (#7953) - Prevent error when time partitioning is populated with empty dict (#7904)
- Preserve order in
to_dataframewith BQ Storage from queries containingORDER BY(#7793) - Respect
progress_bar_typeinto_dataframewhen used with BQ Storage API (#7697) - Refactor QueryJob.query to read from resource dictionary (#7763)
- Close the
to_dataframeprogress bar when finished. (#7757) - Ensure that
KeyboardInterruptduringto_dataframeno longer hangs. (#7698) - Raise ValueError when BQ Storage is required but missing (#7726)
- Make
total_rowsavailable on RowIterator before iteration (#7622) - Avoid masking auth errors in
to_dataframewith BQ Storage API (#7674)
- Add support for passing
client_info. (#7849 and (#7806) - Phase 1 for storing schemas for later use. (#7761)
- Add
destinationand related properties to LoadJob. (#7710) - Add
clustering_fieldsproperty to TableListItem (#7692) - Add
createdandexpiresproperties to TableListItem (#7684)
- Pin
google-cloud-core >= 1.0.0, < 2.0dev. (#7993) - Add
[all]extras to install all extra dependencies (#7610)
- Move table and dataset snippets to samples/ directory (#7683)
- Blacken unit tests. (#7960)
- Cleanup client tests with method to create minimal table resource (#7802)
04-05-2019 08:16 PDT
- Add dependency on protobuf. (#7668)
04-04-2019 09:19 PDT
- Increment version number in
setup.py.
04-03-2019 19:33 PDT
- Remove classifier for Python 3.4 for end-of-life. (#7535)
- Enable fastparquet support by using temporary file in
load_table_from_dataframe(#7545) - Allow string for copy sources, query destination, and default dataset (#7560)
- Add
progress_bar_typeargument toto_dataframeto usetqdmto display a progress bar (#7552) - Call
get_tableinlist_rowsif 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)
- Remove typo in
Table.from_api_reprdocstring. (#7509) - Add docs session to nox configuration for BigQuery (#7541)
- Refactor
table()methods into shared implementation. (#7516) - Blacken noxfile and setup file in nox session (#7619)
- Actually use the
progress_bar_typeargument inQueryJob.to_dataframe(). (#7616)
03-06-2019 15:20 PST
- Harden 'ArrayQueryParameter.from_api_repr' against missing 'parameterValue'. (#7311)
- Allow nested records w/ null values. (#7297)
- Add
exists_okandnot_found_okoptions to ignore errors when creating/deleting datasets/tables. (#7491) - Accept a string in Table and Dataset constructors. (#7483)
- Update docstring of RowIterator's to_dataframe (#7306)
- Updated client library documentation URLs. (#7307)
- Fix lint. (#7383)
02-04-2019 13:28 PST
- Add arguments to select
dtypesand use BQ Storage API toQueryJob.to_dataframe(). (#7241)
- Add sample for fetching
total_rowsfrom query results. (#7217)
12-17-2018 17:53 PST
- Document Python 2 deprecation (#6910)
- Normalize docs for 'page_size' / 'max_results' / 'page_token' (#6842)
12-10-2018 12:39 PST
- Add option to use BQ Storage API with
to_dataframe(#6854) - Fix exception type in comment (#6847)
- Add
to_bqstorageto convert from Table[Reference] google-cloud-bigquery-storage reference (#6840) - Import
iam.policyfromgoogle.api_core. (#6741) - Add avro logical type control for load jobs. (#6827)
- Allow setting partition expiration to 'None'. (#6823)
- Add
retryargument to_AsyncJob.result. (#6302)
- Update dependency to google-cloud-core (#6835)
- Add avro load samples (#6832)
11-05-2018 16:41 PST
- Add destination table properties to
LoadJobConfig. (#6202) - Allow strings or references in
create_datasetandcreate_table(#6199) - Fix swallowed error message (#6168)
- Add
--params optionto%%bigquerymagic (#6277) - Expose
to_api_reprmethod 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)
- Update README service links in quickstart guides. (#6322)
- Move usage guides to their own docs. (#6238)
- Normalize use of support level badges (#6159)
- Deprecation cleanups (#6304)
- Use
_get_sub_prophelper so missing load stats don't raise. (#6269) - Use new Nox (#6175)
- Harden snippets against transient GCS errors. (#6184)
- Remove unused "append" samples (#6100)
- Address dataset leaks, conflicts in systests (#6099)
- Harden bucket teardown against
429 Too Many Requests. (#6101)
- 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)
- Prepare documentation for repo split (#5955)
- Fix leakage of bigquery/spanner sections into sidebar menu. (#5986)
- 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)
- Make 'Table.location' read-only. (#5687)
- 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)
- Fix typo in CopyJob sources docstring (#5690)
- Add/refactor snippets for managing BigQuery jobs (#5631)
- Reenable systests for 'dataset.update'/'table.update'. (#5732)
- Add 'internalError' to retryable error reasons. (#5599)
- Don't raise exception if viewing CREATE VIEW DDL results (#5602)
- 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)
- 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)
- Add missing explict coverage for '_helpers' (#5550)
- Skip update_table and update_dataset tests until etag issue is resolved. (#5590)
- NUMERIC type support (#5331)
- Add timeline and top-level slot-millis to query statistics. (#5312)
- Add additional statistics to query plan stages. (#5307)
- Add
client.load_table_from_dataframe()(#5387)
- Use autosummary to split up API reference docs (#5340)
- Fix typo in Client docstrings (#5342)
- Prune systests identified as reduntant to snippets. (#5365)
- Modify system tests to use prerelease versions of grpcio (#5304)
- Improve system test performance (#5319)
- Switch
list_partitionshelper to a direct metatable read (#5273) - Fix typo in
Encoding.ISO_8859_1enum value (#5211)
- Add UnknownJob type for redacted jobs. (#5281)
- Add project parameter to
list_datasetsandlist_jobs(#5217) - Add from_string factory methods to Dataset and Table (#5255)
- Add column based time partitioning (#5267)
- Standardize docstrings for constants (#5289)
- Fix docstring / impl of
ExtractJob.destination_uri_file_counts. (#5245)
- Add testing support for Python 3.7; remove testing support for Python 3.4. (#5295)
- Add
client.get_service_account_email(#5203)
- Update samples and standardize region tags (#5195)
- Fix trove classifier to be Production/Stable
- Don't suppress 'dots' output on test (#5202)
- Remove deprecated Client methods (#5182)
- Use
job.configurationresource for XXXJobConfig classes (#5036)
- Add
page_sizeparameter forlist_rowsand use in DB-API forarraysize(#4931) - Add IPython magics for running queries (#4983)
- Add job string constant parameters in init and snippets documentation (#4987)
- 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 use
selected_fieldsfor 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)
- Add support for
EncryptionConfiguration(#4845)
- Allow listing/getting jobs even when there is an "invalid" job. (#4786)
- The minimum version for
google-api-corehas 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)
- Update format in
Table.full_table_idandTableListItem.full_table_iddocstrings. (#4906)
- 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)
This is the release candidate for v1.0.0.
- Add
delete_contentstodelete_dataset. (#4724)
- Add handling of missing properties in
SchemaField.from_api_repr(). (#4754) - Fix missing return value in
LoadJobConfig.from_api_repr. (#4727)
- Minor documentation and typo fixes. (#4782, #4718, #4784, #4835, #4836)
- Add
to_dataframe()method to row iterators. When Pandas is installed this method returns aDataFramecontaining the query's or table's rows. (#4354) - Iterate over a
QueryJobto wait for and get the query results. (#4350) - Add
Table.referenceandDataset.referenceproperties to get theTableReferenceorDatasetReferencecorresponding to thatTableorDataset, respectively. (#4405) - Add
Row.keys(),Row.items(), andRow.get(). This makesRowact more like a built-in dictionary. (#4393, #4413)
- Add
Client.insert_rows()andClient.insert_rows_json(), deprecateClient.create_rows()andClient.create_rows_json(). (#4657) - Add
Client.list_tables, deprecateClient.list_dataset_tables. (#4653) Client.list_tablesreturns an iterators ofTableListItem. The API only returns a subset of properties of a table when listing. (#4427)- Remove
QueryJob.query_results(). UseQueryJob.result()instead. (#4652) - Remove
Client.query_rows(). UseClient.query()instead. (#4429) Client.list_datasetsreturns an iterator ofDatasetListItem. The API only returns a subset of properties of a dataset when listing. (#4439)
0.28.0 significantly changes the interface for this package. For examples of the differences between 0.28.0 and previous versions, see Migrating 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 to jobs, like running queries, immediately start the job.
- Functions to create, get, update, delete datasets and tables moved to the client class.
- 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
- Support external table configuration (#4182) in query jobs (#4191) and tables (#4193).
- New
Rowclass allows for access by integer index like a tuple, string index 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 to
Dataset(#4026) - Add support for labels to
Table(#4207) - Add
Table.streaming_bufferproperty (#4161) - Add
TableReferenceclass (#3942) - Add
DatasetReferenceclass (#3938, #3942, #3993) - Add
ExtractJob.destination_uri_file_countsproperty. (#3803) - Add
client.create_rows_json()to bypass conversions on streaming writes. (#4189) - Add
client.get_job()to get arbitrary jobs. (#3804, #4213) - Add filter to
client.list_datasets()(#4205) - Add
QueryJob.undeclared_query_parametersproperty. (#3802) - Add
QueryJob.referenced_tablesproperty. (#3801) - Add new scalar statistics properties to
QueryJob(#3800) - Add
QueryJob.query_planproperty. (#3799)
- Remove
client.run_async_query(), useclient.query()instead. (#4130) - Remove
client.run_sync_query(), useclient.query_rows()instead. (#4065, #4248) - Make
QueryResultsread-only. (#4094, #4144) - Make
get_query_resultsprivate. Return rows forQueryJob.result()(#3883) - Move
*QueryParameterandUDFResourceclasses toquerymodule (also exposed inbigquerymodule). (#4156)
- Remove
clientfromTableclass (#4159) - Remove
table.exists()(#4145) - Move
table.list_parationstoclient.list_partitions(#4146) - Move
table.upload_from_filetoclient.load_table_from_file(#4136) - Move
table.update()andtable.patch()toclient.update_table()(#4076) - Move
table.insert_data()toclient.create_rows(). Automatically generates row IDs if not supplied. (#4151, #4173) - Move
table.fetch_data()toclient.list_rows()(#4119, #4143) - Move
table.delete()toclient.delete_table()(#4066) - Move
table.create()toclient.create_table()(#4038, #4043) - Move
table.reload()toclient.get_table()(#4004) - Rename
Table.nameattribute toTable.table_id(#3959) Tableconstructor takes aTableReferenceas parameter (#3997)
- Remove
clientfromDatasetclass (#4018) - Remove
dataset.exists()(#3996) - Move
dataset.list_tables()toclient.list_dataset_tables()(#4013) - Move
dataset.delete()toclient.delete_dataset()(#4012) - Move
dataset.patch()anddataset.update()toclient.update_dataset()(#4003) - Move
dataset.create()toclient.create_dataset()(#3982) - Move
dataset.reload()toclient.get_dataset()(#3973) - Rename
Dataset.nameattribute toDataset.dataset_id(#3955) client.dataset()returns aDatasetReferenceinstead ofDataset. (#3944)- Rename class:
dataset.AccessGrant -> dataset.AccessEntry. (#3798) dataset.table()returns aTableReferenceinstead of aTable(#4014)Datasetconstructor takes a DatasetReference (#4036)
- Make
job.begin()method private. (#4242) - Add
LoadJobConfigclass and modifyLoadJob(#4103, #4137) - Add
CopyJobConfigclass and modifyCopyJob(#4051, #4059) - Type of Job's and Query's
default_datasetchanged fromDatasettoDatasetReference(#4037) - Rename
client.load_table_from_storage()toclient.load_table_from_uri()(#4235) - Rename
client.extract_table_to_storagetoclient.extract_table(). Method starts the extract job immediately. (#3991, #4177) - Rename
XJob.nametoXJob.job_id. (#3962) - Rename job classes.
LoadTableFromStorageJob -> LoadJobandExtractTableToStorageJob -> jobs.ExtractJob(#3797)
- Updating to
google-cloud-core ~= 0.28, in particular, thegoogle-api-corepackage has been moved out ofgoogle-cloud-core. (#4221)
PyPI: https://pypi.org/project/google-cloud-bigquery/0.28.0/
- Remove client-side enum validation. (#3735)
- Add
Table.row_from_mappinghelper. (#3425) - Move
google.cloud.futuretogoogle.api.core(#3764) - Fix
__eq__and__ne__. (#3765) - Move
google.cloud.iteratortogoogle.api.core.page_iterator(#3770) nullMarkersupport for BigQuery Load Jobs (#3777), h/t @leondealmeida- Allow
job_idto be explicitly specified in DB-API. (#3779) - Add support for a custom null marker. (#3776)
- Add
SchemaFieldserialization and deserialization. (#3786) - Add
get_query_resultsmethod to the client. (#3838) - Poll for query completion via
getQueryResultsmethod. (#3844) - Allow fetching more than the first page when
max_resultsis set. (#3845)
PyPI: https://pypi.org/project/google-cloud-bigquery/0.27.0/
- Using the
requeststransport attached to a Client for for resumable media (i.e. downloads and uploads) (#3705) (this relates to thehttplib2torequestsswitch)
- Adding
autodetectproperty onLoadTableFromStorageJobto enable schema autodetection. (#3648) - Implementing the Python Futures interface for Jobs. Call
job.result()to wait for jobs to complete instead of polling manually on the job status. (#3626) - Adding
is_nullableproperty onSchemaField. Can be used to check if a column is nullable. (#3620) job_nameargument added toTable.upload_from_filefor setting the job ID. (#3605)- Adding
google.cloud.bigquery.dbapipackage, which implements PEP-249 DB-API specification. (#2921) - Adding
Table.view_use_legacy_sqlproperty. Can be used to create views with legacy or standard SQL. (#3514)
- Removing
results()method from theQueryJobclass. Usequery_results()instead. (#3661) SchemaFieldis now immutable. It is also hashable so that it can be used in sets. (#3601)
- Updating to
google-cloud-core ~= 0.26, in particular, the underlying HTTP transport switched fromhttplib2torequests(#3654, #3674) - Adding dependency on
google-resumable-mediafor loading BigQuery tables from local files. (#3555)
- Fix inclusion of
tests(vs.unit_tests) inMANIFEST.in(#3552) - Updating
author_emailinsetup.pytogoogleapis-publisher@google.com. (#3598)
PyPI: https://pypi.org/project/google-cloud-bigquery/0.26.0/