Changelog

PyPI History

3.29.0 (2023-03-23)

Features

  • Adding new fields for Serverless analytics (#906) (2a5a636)

Bug Fixes

  • Correcting the proto field Id for field data_boost_enabled (#915) (428aa1e)

Documentation

  • Fix formatting of request arg in docstring (#918) (c022bf8)

3.28.0 (2023-02-28)

Features

  • Enable “rest” transport in Python for services supporting numeric enums (#897) (c21a0d5)

3.27.1 (2023-01-30)

Bug Fixes

  • Add context manager return types (830f325)

  • Change fgac database role tags (#888) (ae92f0d)

  • Fix for database name in batch create request (#883) (5e50beb)

Documentation

  • Add documentation for enums (830f325)

3.27.0 (2023-01-10)

Features

  • Add support for python 3.11 (#879) (4b8c2cf)

  • Add typing to proto.Message based class attributes (4683d10)

Bug Fixes

  • Add dict typing for client_options (4683d10)

  • deps: Require google-api-core >=1.34.0, >=2.11.0 (4683d10)

  • Drop packaging dependency (4683d10)

  • Drop usage of pkg_resources (4683d10)

  • Fix timeout default values (4683d10)

Documentation

  • samples: Snippetgen handling of repeated enum field (4683d10)

  • samples: Snippetgen should call await on the operation coroutine before calling result (4683d10)

3.26.0 (2022-12-15)

Features

  • Inline Begin transction for RW transactions (#840) (c2456be)

Bug Fixes

  • Fix for binding of pinging and bursty pool with database role (#871) (89da17e)

3.25.0 (2022-12-13)

Features

3.24.0 (2022-11-30)

Features

  • Add snippets for Spanner DML with returning clause (#811) (62e55b5)

  • Add support and tests for DML returning clauses (#805) (81505cd)

3.23.0 (2022-11-07)

Features

  • Adding support and samples for jsonb (#851) (268924d)

  • Support request priorities (#834) (ef2159c)

  • Support requiest options in !autocommit mode (#838) (ab768e4)

  • Update result_set.proto to return undeclared parameters in ExecuteSql API (#841) (0aa4cad)

  • Update transaction.proto to include different lock modes (#845) (c191296)

Bug Fixes

Documentation

  • Describe DB API and transactions retry mechanism (#844) (30a0666), closes #791

3.22.1 (2022-10-04)

Bug Fixes

Documentation

  • samples: add samples for CMMR phase 2 (4282340)

3.22.0 (2022-09-26)

Features

  • Adding reason, domain, metadata & error_details fields in Custom Exceptions for additional info (#804) (2a74060)

3.21.0 (2022-09-16)

Features

  • Add custom instance config operations (#810) (f07333f)

3.20.0 (2022-08-30)

Features

Bug Fixes

  • if JsonObject serialized to None then return null_value instead of string_value (#771) (82170b5)

3.19.0 (2022-08-17)

Features

  • support JSON object consisting of an array. (#782) (92a3169)

3.18.0 (2022-08-12)

Features

  • Add ListDatabaseRoles API to support role based access control (#774) (3867882)

Bug Fixes

  • deps: allow protobuf < 5.0.0 (eee5f31)

  • deps: require proto-plus >= 1.22.0 (eee5f31)

  • target new spanner db admin service config (8c73cb3)

3.17.0 (2022-07-19)

Features

  • add audience parameter (60db146)

  • add Session creator role (60db146)

  • Adding two new fields for Instance create_time and update_time (60db146)

Bug Fixes

  • deps: require google-api-core>=1.32.0,>=2.8.0 (#739) (60db146)

Documentation

  • clarify transaction semantics (60db146)

3.16.0 (2022-07-11)

Features

Bug Fixes

3.15.1 (2022-06-17)

Bug Fixes

  • don’t use a list for empty arguments (#750) (5d8b055)

3.15.0 (2022-06-17)

Features

3.14.1 (2022-06-08)

Bug Fixes

Documentation

  • fix changelog header to consistent size (#732) (97b6d37)

3.14.0 (2022-04-20)

Features

  • add support for Cross region backup proto changes (#691) (8ac62cb)

  • add support for spanner copy backup feature (#600) (97faf6c)

  • AuditConfig for IAM v1 (7642eba)

Bug Fixes

  • add NOT_FOUND error check in exit method of SessionCheckout. (#718) (265e207)

  • deps: require google-api-core>=1.31.5, >=2.3.2 (#685) (7a46a27)

  • deps: require grpc-google-iam-v1 >=0.12.4 (7642eba)

  • deps: require proto-plus>=1.15.0 (7a46a27)

Documentation

3.13.0 (2022-02-04)

Features

Bug Fixes

  • add support for row_count in cursor. (#675) (d431339)

  • resolve DuplicateCredentialArgs error when using credentials_file (#676) (39ff137)

3.12.1 (2022-01-06)

Bug Fixes

  • Django and SQLAlchemy APIs are failing to use rowcount (#654) (698260e)

3.12.0 (2021-11-25)

Features

  • add context manager support in client (5ae4be8)

  • add context manager support in client (#637) (5ae4be8)

  • add support for python 3.10 (#626) (17ca61b), closes #623

  • db_api: add an ability to set ReadOnly/ReadWrite connection mode (#475) (cd3b950)

  • db_api: make rowcount property NotImplemented (#603) (b5a567f)

  • db_api: raise exception with message for executemany() (#595) (95908f6)

  • db_api: support JSON data type (#627) (d760c2c)

  • db_api: support stale reads (#584) (8ca868c)

Bug Fixes

  • db_api: emit warning instead of an exception for rowcount property (#628) (62ff9ae)

  • deps: drop packaging dependency (5ae4be8)

  • deps: require google-api-core >= 1.28.0 (5ae4be8)

  • improper types in pagers generation (5ae4be8)

Performance Improvements

  • dbapi: set headers correctly for dynamic routing (#644) (d769ff8)

Documentation

  • list oneofs in docstring (5ae4be8)

3.11.1 (2021-10-04)

Bug Fixes

  • add support for json data type (#593) (bc5ddc3)

  • remove database_version_time param from test_instance_list_backups (#609) (db63aee)

3.11.0 (2021-09-29)

Features

  • adding support for spanner request options tags (#276) (e16f376)

3.10.0 (2021-09-17)

Features

  • set a separate user agent for the DB API (#566) (b5f977e)

Bug Fixes

  • db_api: move connection validation into a separate method (#543) (237ae41)

  • handle google.api_core.exceptions.OutOfRange exception and throw InegrityError as expected by dbapi standards (#571) (dffcf13)

3.9.0 (2021-08-26)

Features

3.8.0 (2021-08-15)

Features

  • use DML batches in executemany() method (#412) (cbb4ee3)

Bug Fixes

  • samples: batch_update() results processing error (#484) (bdd5f8b)

3.7.0 (2021-07-29)

Features

Bug Fixes

  • avoid bad version of opentelemetry-instrumentation (#429) (1620c12)

  • deps: pin ‘google-{api,cloud}-core’ to allow 2.x versions (#415) (b0455d0)

  • disable always_use_jwt_access (c37bf21)

  • disable always_use_jwt_access (#395) (c37bf21)

  • enable self signed jwt for grpc (#427) (2487800)

  • support merging for NUMERIC values (#434) (06b4215), closes #433

Documentation

3.6.0 (2021-06-23)

Features

Bug Fixes

  • db_api: use sqlparse to split DDL statements (#372) (ed9e124)

  • db_api: classify batched DDL statements (#360) (b8b24e1)

  • deps: add packaging requirement (#368) (89c126c)

Documentation

3.5.0 (2021-06-11)

Features

  • add decimal validation for numeric precision and scale supported by Spanner (#340) (aa36c5e)

  • add progress field to UpdateDatabaseDdlMetadata (#361) (1c03dcc)

  • add query statistics package support (#129) (6598dea)

Bug Fixes

  • an Aborted exception isn’t properly retried (#345) (e69e6ab)

  • correctly classify select statements that begin with brackets (#351) (d526acc)

  • update to support the open-telemetry status code spec change (#358) (0f894f1)

3.4.0 (2021-04-29)

Features

  • add samples for CMEK support (#275) (f8d9bd3)

  • added support for numeric field for python decimal value (#316) (070a171)

  • dbapi: remove string conversion for numeric fields (#317) (772aa3c)

Bug Fixes

  • correctly set resume token when restarting streams (#314) (0fcfc23)

  • support INSERT from SELECT clause with args (#306) (0dcda5e)

Performance Improvements

  • use protobuf for metadata to reduce type conversions (#325) (5110b9b)

3.3.0 (2021-03-25)

Features

  • add encryption_info to Database (#284) (2fd0352)

  • add support for CMEK (#105) (e990ff7)

  • add support for custom timeout and retry parameters in execute_update method in transactions (#251) (8abaebd)

  • added retry and timeout params to partition read in database and snapshot class (#278) (1a7c9d2)

  • db_api: support executing several DDLs separated by semicolon (#277) (801ddc8)

Bug Fixes

  • avoid consuming pending null values when merging (#286) (c6cba9f)

  • db_api: allow file path for credentials (#221) (1de0284)

  • db_api: ensure DDL statements are being executed (#290) (baa02ee)

  • db_api: revert Mutations API usage (#285) (e5d4901)

Documentation

3.2.0 (2021-03-02)

Features

Bug Fixes

3.1.0 (2021-02-23)

Features

  • add support for Point In Time Recovery (PITR) (#148) (a082e5d)

  • add support to log commit stats (#205) (434967e)

Bug Fixes

  • connection attribute of connection class and include related unit tests (#228) (4afea77)

  • db_api: add dummy lastrowid attribute (#227) (0375914)

  • fix execute insert for homogeneous statement (#233) (36b12a7)

  • use datetime timezone info when generating timestamp strings (#236) (539f145)

Performance Improvements

3.0.0 (2021-01-15)

⚠ BREAKING CHANGES

  • convert operations pbs into Operation objects when listing operations (#186)

Features

  • add support for instance labels (#193) (ed462b5)

  • add support for ssl credentials; add throttled field to UpdateDatabaseDdlMetadata (#161) (2faf01b)

  • adding missing docstrings for functions & classes (#188) (9788cf8)

  • autocommit sample (#172) (4ef793c)

Bug Fixes

  • convert operations pbs into Operation objects when listing operations (#186) (ed7152a)

  • Convert PBs in system test cleanup (#199) (ede4343)

  • dbapi: autocommit enabling fails if no transactions begun (#177) (e981adb)

  • dbapi: executemany() hiding all the results except the last (#181) (020dc17)

  • dbapi: Spanner protobuf changes causes KeyError’s (#206) (f1e21ed)

  • remove client side gRPC receive limits (#192) (90effc4)

  • Rename to fix “Mismatched region tag” check (#201) (c000ec4)

Documentation

2.1.0 (2020-11-24)

Features

Bug Fixes

Reverts

  • Revert “test: unskip list_backup_operations sample test (#170)” (#174) (6053f4a), closes #170 #174

2.0.0 (2020-11-11)

⚠ BREAKING CHANGES

  • list_instances, list_databases, list_instance_configs, and list_backups will now return protos rather than the handwritten wrapper (#147)

Features

1.19.1 (2020-10-13)

Bug Fixes

  • handle Unmergable errors when merging struct responses (#152) (d132409)

Documentation

  • update samples dep to ‘google-cloud-spanner==1.19.0’ (#137) (0fba41a)

  • update samples from python-docs-samples (#146) (7549383)

1.19.0 (2020-09-08)

Features

Bug Fixes

1.18.0 (2020-08-25)

Features

  • add client_options to base class (#132) (6851bb8)

  • add OpenTelemetry tracing to spanner calls (#107) (4069c37)

Bug Fixes

  • resume iterator on EOS internal error (#122) (45a1538)

Documentation

1.17.1 (2020-06-24)

Documentation

  • remove client-usage sections that no longer apply (#95) (16a812f)

  • update batch-usage reflect the correct usage (#93) (6ec64d8)

  • update documentation for database-usage (#96) (44e398c)

  • update documentation for snapshot usage (#94) (613d9c8)

1.17.0 (2020-05-26)

Features

  • add support for using the emulator programatically (#87) (b22630b)

Bug Fixes

  • update backup timeouts (via synth) (#82) (f5d74a0)

1.16.0 (2020-05-05)

Features

  • add support for retrying aborted partitioned DML statements (#66) (8a3d700)

Bug Fixes

  • add keepalive changes to synth.py (#55) (805bbb7)

  • pass gRPC config options to gRPC channel creation (#26) (6c9a1ba)

1.15.1 (2020-04-08)

Bug Fixes

  • add keepalive to gRPC channel (#49) (dfbc656)

  • increment seqno before execute calls to prevent InvalidArgument … (#19) (adeacee)

  • Pin Sphnix version to last working release (#51) (430ca32)

1.15.0 (2020-03-17)

Features

  • Add emulator support (#14) (b315593)

  • Export transaction._rolled_back as transaction.rolled_back (#16) (974ee92)

  • Add support for backups (#35) (39288e7)

  • Implement query options versioning support (#30) (5147921)

Bug Fixes

  • Remove erroneous timeouts for batch_create_session calls (#18) (997a034)

1.14.0 (2020-01-31)

Features

  • Add deprecation warnings; add field_mask to get_instance; add endpoint_uris to Instance proto; update timeouts; make mutations optional for commits (via synth) (62edbe1)

  • Add resource based routing implementation (#10183) (e072d5d)

  • Un-deprecate resource name helper functions, add 3.8 tests (via synth) (#10062) (dbb79b0)

Bug Fixes

1.13.0

11-11-2019 15:59 PST

Implementation Changes

Fix TransactionPingingPool to stop thowing ‘’NoneType’ object is not callable’ error. (#9609) Return sessions from pool in LIFO order. (#9454)

Documentation

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

  • Update description of the timeout_secs parameter. (#9381)

Internal / Testing Changes

  • Harden test_transaction_batch_update\* systests against partial success + abort. (#9579)

1.12.0

10-23-2019 19:09 PDT

Implementation Changes

  • Add batch_create_session calls to session pools. (#9488)

New Features

  • Add client_options to client constructor. (#9151)

Internal / Testing Changes

  • Harden ‘test_reload_instance’ systest against eventual consistency failures. (#9394)

  • Harden ‘test_transaction_batch_update_w_syntax_error’ systest. (#9395)

  • Propagate errors from ‘Transaction.batch_update’ in systest. (#9393)

1.11.0

10-15-2019 06:55 PDT

Implementation Changes

  • Adjust gRPC timeouts (via synth). (#9330)

  • Make session_count optional for SpannerClient.batch_create_sessions (via synth). (#9280)

  • Remove send / receive message size limit, update docstrings (via synth). (#8968)

New Features

  • Add batch_create_sessions method to generated client (via synth). (#9087)

Dependencies

  • Pin ‘google-cloud-core >= 1.0.3, < 2.0.0dev’. (#9445)

Documentation

  • Remove references to old authentication credentials in docs. (#9456)

  • Fix intersphinx reference to requests. (#9294)

  • Fix run_in_transaction return value docs. (#9264)

  • Remove CI for gh-pages, use googleapis.dev for api_core refs. (#9085)

  • Remove compatability badges from READMEs. (#9035)

  • Add DML insert and update examples to README. (#8698)

  • Update intersphinx mapping for requests. (#8805)

1.10.0

07-24-2019 17:32 PDT

Implementation Changes

  • Add backoff for run_in_transaction when backend does not provide ‘RetryInfo’ in response. (#8461)

  • Adjust gRPC timeouts (via synth). (#8445)

  • Allow kwargs to be passed to create_channel (via synth). (#8403)

New Features

  • Add ‘options_’ argument to clients’ ‘get_iam_policy’; pin black version (via synth). (#8659)

  • Add ‘client_options’ support, update list method docstrings (via synth). (#8522)

Dependencies

  • Bump minimum version for google-api-core to 1.14.0. (#8709)

  • Update pin for ‘grpc-google-iam-v1’ to 0.12.3+. (#8647)

Documentation

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

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

Internal / Testing Changes

  • Fixes #8545 by removing typing information for kwargs to not conflict with type checkers (#8546)

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

  • Declare encoding as utf-8 in pb2 files (via synth). (#8363)

  • Add disclaimer to auto-generated template files (via synth). (#8327)

  • Suppress checking ‘cov-fail-under’ in nox default session (via synth). (#8251)

  • Blacken noxfile.py, setup.py (via synth). (#8131)

  • Harden synth replacement against template adding whitespace. (#8103)

1.9.0

05-16-2019 12:54 PDT

Implementation Changes

  • Add routing header to method metadata (via synth). (#7750)

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

New Features

  • Add client_info support to client. (#7878)

Dependencies

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

Documentation

  • Expand API reference for snapshot / transaction. (#7618)

Internal / Testing Changes

  • Add nox session docs, remove retries for DEADLINE_EXCEEDED (via synth). (#7781)

  • Added matching END tags to Spanner Tests (#7529)

1.8.0

03-05-2019 12:57 PST

Implementation Changes

  • Protoc-generated serialization update. (#7095)

  • Fix typo in exported param type name. (#7295)

New Features

  • Add Batch DML support. (#7485)

Documentation

  • Copy lintified proto files, update docstrings (via synth). (#7453)

  • Fix Batch object creation instructions. (#7341)

  • Updated client library documentation URLs. (#7307)

  • Fix README to install spanner instead of datastore. (#7301)

Internal / Testing Changes

  • Add clarifying comment to blacken nox target. (#7403)

  • Ensure that GRPC config file is included in MANIFEST.in after templating. (#7046)

  • Add protos as an artifact to library. (#7205)

  • Update copyright headers.

1.7.1

12-14-2018 15:18 PST

Documentation

  • Announce Python 2 deprecation (#6910)

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

Internal / Testing Changes

  • Include grpc config in manifest (#6928)

1.7.0

12-10-2018 13:10 PST

Implementation Changes

  • Add PingingPool and TransactionPingingPool to toplevel module (#6886)

  • Add operation_id parameter to Database.update_ddl. (#6825)

  • Pick up changes to GAPIC method configuration (#6615)

  • Add timeout + retry settings to Sessions/Snapshots (#6536)

  • Pick up fixes to GAPIC generator. (#6576)

Dependencies

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

Internal / Testing Changes

  • Add baseline for synth.metadata

  • Blacken. (#6846)

  • Update noxfile.

  • Blacken all gen’d libs (#6792)

  • Omit local deps (#6701)

  • Run black at end of synth.py (#6698)

  • Run Black on Generated libraries (#6666)

  • Add templates for flake8, coveragerc, noxfile, and black. (#6642)

  • Add tags to DML system tests (#6580)

1.6.1

11-09-2018 14:49 PST

Implementation Changes

  • Fix client_info bug, update docstrings. (#6420)

Documentation

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

  • Normalize use of support level badges (#6159)

  • Fix typo in spanner usage documentation (#6209)

Internal / Testing Changes

  • Rationalize ‘all_types’ round-trip systest (#6379)

  • Bump minimum ‘api_core’ version for all GAPIC libs to 1.4.1. (#6391)

  • Add systest for returning empty array struct (#4449)

  • Add systests not needing tables (#6308)

  • Use new Nox (#6175)

1.6.0

10-08-2018 08:25 PDT

New Features

  • Add support for DML/PDML. (#6151)

Implementation Changes

  • Add ‘synth.py’ and regen GAPIC code. (#6040)

Documentation

  • Remove invalid examples of database.transaction(). (#6032)

  • Redirect renamed usage.html/client.html -> index.html. (#5996)

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

  • Prepare documentation for repo split. (#5938)

Internal / Testing Changes

  • Remove extra grpc_gcp system tests. (#6049)

1.5.0

New Features

  • Add support for session / pool labels (#5734)

  • Add support for gRPC connection management (#5553)

Dependencies

  • Add grpcio-gcp dependency for Cloud Spanner (#5904)

Internal / Testing Changes

  • Don’t hardcode endpoint URL in grpc_gcp unit tests. (#5893)

  • Run grpc_gcp unit tests only with Python 2.7 / 3.6. (#5871)

  • Nox: use inplace installs (#5865)

  • Benchmarks: print() is a function in Python 3 (#5862)

  • Retry test_transaction_read_and_insert_then_rollback when aborted. (#5737)

  • Skip the flaky test_update_database_ddl systest. (#5704)

1.4.0

Implementation Changes

  • Ensure that initial resume token is bytes, not text. (#5450)

  • Prevent process_read_batch from mutating params (#5416)

  • Avoid overwriting ‘module’ of messages from shared modules. (#5364)

New Features

  • Add support for Python 3.7 (#5288)

  • Add support for Spanner struct params. (#5463)

Internal / Testing Changes

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

1.3.0

Interface additions

  • Added spanner_v1.COMMIT_TIMESTAMP. (#5102)

1.2.0

New features

  • Added batch query support (#4938)

Implementation changes

  • Removed custom timestamp class in favor of the one in google-api-core. (#4980)

Dependencies

  • Update minimum version for google-api-core to 1.1.0 (#5030)

Documentation

  • Update package metadata release status to ‘Stable’ (#5031)

1.1.0

Dependencies

  • The minimum version for google-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)

Testing and internal changes

  • Fix load_keys() in YCSB-like benchmark for cloud spanner. (#4919)

  • Install local dependencies when running lint (#4936)

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

  • Normalize all setup.py files (#4909)

  • Fix system test util to populate streaming (#4888)

  • Retry conflict errors in system test (#4850)

1.0.0

Breaking Changes

  • to_pb has now been made private (_to_pb) in KeySet and KeyRange (#4740)

Documentation Changes

  • Database update_ddl missing param in documentation (#4749)

0.30.0

Breaking Changes

  • The underlying autogenerated client library was re-generated to pick up new features and resolve bugs, this may change the exceptions raised from various methods. (#4695)

  • Made StreamedResultSet’s row, consume_all, and consume_next members private (#4492)

Implementation Changes

  • Keyset can now infer defaults to start_closed or end_closed when only one argument is specified. (#4735)

Documentation

  • Brought Spanner README more in line with others. (#4306, #4317)

Testing

  • Added several new system tests and fixed minor issues with existing tests. (

    4631, #4569, #4573, #4572, #4416, #4411, #4407, #4386, #4419, #4489,

    4678, #4620, #4418, #4403, #4397, #4383, #4371, #4372, #4374, #4370, #4285,

    4321)

  • Excluded generated code from linting. (#4375)

  • Added a nox -s default session for all packages. (#4324)

0.29.0

Implementation Changes

  • Bugfix: Clear session._transaction before calling _delay_until_retry (#4185)

  • Bugfix: Be permissive about merging an empty list. (#4170, fixes #4164)

Documentation

  • Added link to “Python Development Environment Setup Guide” in project README (#4187, h/t to @michaelawyu)

Dependencies

  • Upgrading to google-cloud-core >= 0.28.0 and adding dependency on google-api-core (#4221, #4280)

  • Deferring to google-api-core for grpcio and googleapis-common-protos dependencies (#4096, #4098)

PyPI: https://pypi.org/project/google-cloud-spanner/0.29.0/