Spanner release notes

This page documents production updates to Spanner. You can periodically check this page for announcements about new or updated features, bug fixes, known issues, and deprecated functionality.

You can see the latest product updates for all of Google Cloud on the Google Cloud page, browse and filter all release notes in the Google Cloud console, or programmatically access release notes in BigQuery.

To get the latest product updates delivered to you, add the URL of this page to your feed reader, or add the feed URL directly: https://cloud.google.com/feeds/spanner-release-notes.xml

March 26, 2024

Duet AI in Google Cloud is now Gemini for Google Cloud. See our blog post for more information.

You can now optimize your writes by setting the maximum delay time of your Spanner write requests between 0 and 500 milliseconds. For more information, see Throughput optimized writes.

March 20, 2024

Leader-aware routing now dynamically routes read-write transactions to the leader region in Spanner multi-region instances, reducing latency and improving performance. For more information, see Leader-aware routing.

March 19, 2024

Statistics for active partitioned data manipulation language (DML) queries are now generally available. You can get insights on active partitioned DMLs queries and their progress from statistics tables in your Spanner database. For more information, see Active partitioned DMLs statistics.

March 11, 2024

Table renaming is now generally available. This feature lets you rename tables in place or safely swap names using synonyms. For more information, see Manage table names.

March 04, 2024

Spanner now supports a new client library interface. The new interface leverages auto-generated admin clients instead of hand-written admin clients for improved efficiency and maintainability. While the older client library interface remains supported, all new Spanner admin features released after March 1, 2024 will be available exclusively through the new client library interface. All code samples in the Spanner documentation are updated to use the new client library interface. The older client interface code samples are archived in GitHub for Java, Node.js, Python, and PHP.

February 29, 2024

Spanner regional endpoint is now available in me-central2. You can use regional endpoints if your data location must be restricted and controlled to comply with regulatory requirements. For more information, see Global and regional service endpoints.

February 2024 Client libraries release note

A monthly digest of client library updates from across the Cloud SDK.

Go

Changes for spanner/admin/database/apiv1

1.56.0 (2024-01-30)

Features
  • spanner/admin/database: Add proto descriptors for proto and enum types in create/update/get database ddl requests (97d62c7)
  • spanner/spansql: Add support for CREATE VIEW with SQL SECURITY DEFINER (#8754) (5f156e8)
  • spanner: Add FLOAT32 enum to TypeCode (97d62c7)
  • spanner: Add max_commit_delay API (af2f8b4)
  • spanner: Add proto and enum types (00b9900)
  • spanner: Add SelectAll method to decode from Spanner iterator.Rows to golang struct (#9206) (802088f)

1.57.0 (2024-02-13)

Features
  • spanner: Add OpenTelemetry implementation (#9254) (fc51cc2)
  • spanner: Support max_commit_delay in Spanner transactions (#9299) (a8078f0)
Bug Fixes
  • spanner: Enable universe domain resolution options (fd1d569)
  • spanner: Internal test package should import local version (#9416) (f377281)
  • spanner: SelectAll struct fields match should be case-insensitive (#9417) (7ff5356)
  • spanner: Support time.Time and other custom types using SelectAll (#9382) (dc21234)
Documentation
  • spanner: Update the comment regarding eligible SQL shapes for PartitionQuery (e60a6ba)

Java

Changes for google-cloud-spanner

6.57.0 (2024-01-29)

Features
  • Add FLOAT32 enum to TypeCode (#2800) (383fea5)
  • Add support for Proto Columns (#2779) (30d37dd)
  • spanner: Add proto descriptors for proto and enum types in create/update/get database ddl requests (#2774) (4a906bf)
Bug Fixes
  • Remove google-cloud-spanner-executor from the BOM (#2844) (655000a)
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.22.0 (#2785) (f689f74)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.23.0 (#2801) (95f064f)
Documentation

6.58.0 (2024-02-08)

Features
  • Open telemetry implementation (#2770) (244d6a8)
  • spanner: Support max_commit_delay in Spanner transactions (#2854) (e2b7ae6)
  • Support Directed Read in Connection API (#2855) (ee477c2)
Bug Fixes
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.24.0 (#2856) (968877e)

6.59.0 (2024-02-15)

Features
  • Support public methods to use autogenerated admin clients. (#2878) (53bcb3e)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.25.0 (#2888) (8e2da51)
Documentation
  • README for OpenTelemetry metrics and traces (#2880) (c8632f5)
  • Samples and tests for database Admin APIs. (#2775) (14ae01c)

6.60.0 (2024-02-21)

Features
  • Add an API method for reordering firewall policies (62319f0)
  • spanner: Add field for multiplexed session in spanner.proto (62319f0)
  • Update TransactionOptions to include new option exclude_txn_from_change_streams (#2853) (62319f0)
Bug Fixes
  • Add ensureDecoded to proto type (#2897) (e99b78c)
  • spanner: Fix write replace used by dataflow template and import export (#2901) (64b9042)
Dependencies
  • Update dependency com.google.cloud:google-cloud-trace to v2.36.0 (#2749) (51a348a)
Documentation
  • Update comments (62319f0)
  • Update the comment regarding eligible SQL shapes for PartitionQuery (62319f0)

6.60.1 (2024-02-23)

Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.37.0 (#2920) (a3441bb)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.0 (#2861) (a652c3b)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.1 (#2919) (8800a28)
  • Update dependency org.json:json to v20240205 (#2913) (277ed81)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.10.2 (#2868) (71a65ec)
  • Update opentelemetry.version to v1.35.0 (#2902) (3286eae)

Node.js

Changes for @google-cloud/spanner

7.3.0 (2024-02-08)

Features
Bug Fixes
  • deps: Update dependency google-gax to v4.1.0 (#1981) (2a36150)
  • deps: Update dependency google-gax to v4.2.0 (#1988) (005589a)
  • deps: Update dependency google-gax to v4.2.1 (#1989) (d2ae995)
  • deps: Update dependency google-gax to v4.3.0 (#1990) (e625753)

7.4.0 (2024-02-23)

Features
  • spanner: Add PG.OID support (#1948) (cf9df7a)
  • Untyped param types (#1869) (6ef44c3)
  • Update TransactionOptions to include new option exclude_txn_from_change_streams (#1998) (937a7a1)
Bug Fixes

Python

Changes for google-cloud-spanner

3.42.0 (2024-01-30)

Features
  • Add FLOAT32 enum to TypeCode (5b94dac)
  • Add max_commit_delay API (#1078) (ec87c08)
  • Add proto descriptors for proto and enum types in create/update/get database ddl requests (5b94dac)
  • Fixing and refactoring transaction retry logic in dbapi. Also adding interceptors support for testing (#1056) (6640888)
  • Implementation of run partition query (#1080) (f3b23b2)
Bug Fixes
  • Few fixes in DBAPI (#1085) (1ed5a47)
  • Small fix in description when metadata is not present in cursor's _result_set (#1088) (57643e6)
  • spanner: Add SpannerAsyncClient import to spanner_v1 package (#1086) (2d98b54)
Documentation
  • Samples and tests for auto-generated createDatabase and createInstance APIs. (#1065) (16c510e)

February 26, 2024

The following GoogleSQL JSON functions are now generally available (GA):

  • LAX_BOOL: Attempts to convert a JSON value to a SQL BOOL value.
  • LAX_FLOAT64: Attempts to convert a JSON value to a SQL FLOAT64 value.
  • LAX_INT64: Attempts to convert a JSON value to a SQL INT64 value.
  • LAX_STRING: Attempts to convert a JSON value to a SQL STRING value.
  • BOOL: Converts a JSON boolean to a SQL BOOL value.
  • FLOAT64: Converts a JSON number to a SQL FLOAT64 value.
  • INT64: Converts a JSON number to a SQL INT64 value.
  • STRING: Converts a JSON string to a SQL STRING value.
  • JSON_TYPE: Gets the JSON type of the outermost JSON value and converts the name of this type to a SQL STRING value.

February 21, 2024

The OpenCensus libraries are archived. Spanner now supports OpenTelemetry, and we recommend all OpenCensus users to migrate to OpenTelemetry for your observability needs. For more information, see Examine latency in a Spanner component with OpenTelemetry.

February 07, 2024

Made changes to the information schema to improve the accuracy of data type reporting.

The information_schema.columns.spanner_type and information_schema.index_columns.spanner_type columns now include a limit value for the character varying(limit_value) and character varying(limit_value)[] types.

January 31, 2024

You can create Spanner regional instances in Johannesburg, South Africa (africa-south1).

A monthly digest of client library updates from across the Cloud SDK.

Go

Changes for spanner/admin/database/apiv1

1.55.0 (2024-01-08)

Features

Java

Changes for google-cloud-spanner

6.56.0 (2024-01-05)

Features
  • Add autoscaling config in the instance to support autoscaling in systests (#2756) (99ae565)
  • Add support for Directed Read options (#2766) (26c6c63)
  • Update OwlBot.yaml file to pull autogenerated executor code (#2754) (20562d4)
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.21.0 (#2772) (173f520)
Documentation
  • Samples and tests for auto-generated createDatabase and createInstance APIs. (#2764) (74a586f)

Node.js

Changes for @google-cloud/spanner

7.2.0 (2024-01-11)

Features
Bug Fixes
  • deps: Update dependency @google-cloud/precise-date to v4 (#1903) (7464c8b)
  • deps: Update dependency @types/stack-trace to v0.0.33 (#1952) (45ab751)
  • deps: Update dependency retry-request to v7 (#1934) (c575c80)

Python

Changes for google-cloud-spanner

3.41.0 (2024-01-10)

Features
  • Add BatchWrite API (#1011) (d0e4ffc)
  • Add PG.OID type cod annotation (#1023) (2d59dd0)
  • Add support for Directed Reads (#1000) (c4210b2)
  • Add support for Python 3.12 (#1040) (b28dc9b)
  • Batch Write API implementation and samples (#1027) (aa36b07)
  • Implementation for batch dml in dbapi (#1055) (7a92315)
  • Implementation for Begin and Rollback clientside statements (#1041) (15623cd)
  • Implementation for partitioned query in dbapi (#1067) (63daa8a)
  • Implementation of client side statements that return (#1046) (bb5fa1f)
  • Implementing client side statements in dbapi (starting with commit) (#1037) (eb41b0d)
  • Introduce compatibility with native namespace packages (#1036) (5d80ab0)
  • Return list of dictionaries for execute streaming sql (#1003) (b534a8a)
  • spanner: Add autoscaling config to the instance proto (#1022) (4d490cf)
  • spanner: Add directed_read_option in spanner.proto (#1030) (84d662b)
Bug Fixes
  • Executing existing DDL statements on executemany statement execution (#1032) (07fbc45)
  • Fix for flaky test_read_timestamp_client_side_autocommit test (#1071) (0406ded)
  • Require google-cloud-core >= 1.4.4 (#1015) (a2f87b9)
  • Require proto-plus 1.22.2 for python 3.11 (#880) (7debe71)
  • Use retry_async instead of retry in async client (#1044) (1253ae4)
Documentation

January 30, 2024

Cloud Spanner directed reads is now available in Preview. Directed reads provides the flexibility to route read-only transactions and single reads to a specific replica type or region in a multi-region instance configuration. For more information, see Directed reads.

January 23, 2024

Cloud Spanner now supports the GoogleSQL INSERT OR IGNORE and INSERT OR UPDATE clauses.

Cloud Spanner now supports the PostgreSQL ON CONFLICT DO NOTHING and ON CONFLICT DO UPDATE SET clauses.

January 22, 2024

Cloud Spanner now supports COSINE_DISTANCE() and EUCLIDEAN_DISTANCE() functions (in Preview). You can use these vector distance functions to perform similarity vector search. For more information, see Perform similarity vector search in Spanner by finding the K-nearest neighbors.

December 27, 2023

A monthly digest of client library updates from across the Cloud SDK.

Go

Changes for spanner/admin/database/apiv1

1.53.1 (2023-12-01)

Bug Fixes
  • spanner: Handle nil error when cleaning up long running session (#9052) (a93bc26)
  • spanner: MarshalJSON function caused errors for certain values (#9063) (afe7c98)

1.54.0 (2023-12-14)

Features
  • spanner/executor: Add autoscaling config in the instance to support autoscaling in systests (29effe6)
  • spanner: New clients (#9127) (2c97389)
Bug Fixes
  • spanner: Use json.Number for decoding unknown values from spanner (#9054) (40d1392)

Java

Changes for google-cloud-spanner

6.55.0 (2023-12-01)

Features
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.30.0 (#2703) (961aa78)
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.20.0 (#2746) (12bcabb)
  • Update dependency commons-io:commons-io to v2.15.1 (#2745) (b9d9571)

December 19, 2023

Cloud Spanner now supports partition queries whose query plans don't contain any distributed unions. To learn more about how to read data in parallel using partition queries, see Read data in parallel.

December 18, 2023

The number of mutations per commit that Cloud Spanner supports has increased from 40,000 to 80,000. For more information, see Quotas and limits.

December 14, 2023

Data Catalog support in Cloud Spanner is now generally available. For more information, see Manage resources using Data Catalog.

December 05, 2023

November 30, 2023

A monthly digest of client library updates from across the Cloud SDK.

Go

Changes for spanner/admin/database/apiv1

1.52.0 (2023-11-14)

Features
  • spanner: Add DML, DQL, Mutation, Txn Actions and Utility methods for executor framework (#8976) (ca76671)
  • spanner: Add lastUseTime property to session (#8942) (b560cfc)
  • spanner: Add method (#8945) (411a51e)
  • spanner: Add methods to return Row fields (#8953) (e22e70f)
  • spanner: Add PG.OID type cod annotation (#8749) (ffb0dda)
  • spanner: Admin, Batch, Partition actions for executor framework (#8932) (b2db89e)
  • spanner: Auto-generated executor framework proto changes (#8713) (2ca939c)
  • spanner: BatchWrite (#8652) (507d232)
  • spanner: Executor framework server and worker proxy (#8714) (6b931ee)
  • spanner: Fix falkiness (#8977) (ca8d3cb)
  • spanner: Long running transaction clean up - disabled (#8177) (461d11e)
  • spanner: Update code for session leaks cleanup (#8978) (cc83515)
Bug Fixes
  • spanner: Bump google.golang.org/api to v0.149.0 (8d2ab9f)
  • spanner: Expose Mutations field in MutationGroup (#8923) (42180cf)
  • spanner: Update grpc-go to v1.56.3 (343cea8)
  • spanner: Update grpc-go to v1.59.0 (81a97b0)
Documentation
  • spanner: Updated comment formatting (24e410e)

1.53.0 (2023-11-15)

Features
  • spanner: Enable long running transaction clean up (#8969) (5d181bb)

Java

Changes for google-cloud-spanner

6.53.0 (2023-11-06)

Features
  • Move session lastUseTime parameter from PooledSession to SessionImpl class. Fix updation of the parameter for chained RPCs within one transaction. (#2704) (e75a281)
  • Rely on graal-sdk version declaration from property in java-shared-config (#2696) (cfab83a)
Bug Fixes
  • Prevent illegal negative timeout values into thread sleep() method in ITTransactionManagerTest. (#2715) (1c26cf6)
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.19.0 (#2719) (e320753)
  • Update dependency com.google.cloud:google-cloud-trace to v2.28.0 (#2670) (078b7ca)
  • Update dependency com.google.cloud:google-cloud-trace to v2.29.0 (#2714) (b400eca)
  • Update dependency commons-cli:commons-cli to v1.6.0 (#2710) (e3e8f6a)
  • Update dependency commons-io:commons-io to v2.15.0 (#2712) (a5f59aa)
  • Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.28 (#2692) (d8a2b02)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.28 (#2705) (2b17f09)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.10.1 (#2723) (9cf6d0e)

6.54.0 (2023-11-15)

Features
  • Enable session leaks prevention by cleaning up long-running tra… (#2655) (faa7e5d)
Bug Fixes
  • Copy backup issue when backup is done across different instance IDs (#2732) (7f6b158)
  • Respect SPANNER_EMULATOR_HOST env var when autoConfigEmulator=true (#2730) (9c19934)
Dependencies
  • Update dependency com.google.cloud:google-cloud-trace to v2.30.0 (#2725) (8618042)

Node.js

Changes for @google-cloud/spanner

7.1.0 (2023-11-16)

Features
  • Add PG.OID type cod annotation (69192b5)
  • spanner: Add autoscaling config to the instance proto (#1935) (fe285c6)
  • spanner: Add directed_read_option in spanner.proto (69192b5)
Bug Fixes
  • deps: Update dependency @types/stack-trace to v0.0.31 (#1924) (96af405)
  • deps: Update dependency @types/stack-trace to v0.0.32 (#1939) (cb66474)
  • deps: Update dependency google-gax to v4.0.4 (#1926) (361fe6a)
  • deps: Update dependency google-gax to v4.0.5 (#1937) (ab26075)

November 21, 2023

Cloud Spanner emulator support for the PostgreSQL dialect is now generally available. To learn more about the emulator, see Emulate Cloud Spanner locally.

November 16, 2023

Cloud Spanner now supports automatic cleanup of long running transactions (in Preview). To enable this feature, use the Java or Go client library to automatically remove long running transactions that might cause session leaks and receive warning logs about problematic transactions. For more information, see Automatic cleanup of session leaks.

Cloud Spanner now supports Hibernate ORM 6.3 in GoogleSQL Hibernate dialect. For more information, see Integrate Spanner with Hibernate ORM (GoogleSQL dialect).

November 15, 2023

Cloud Spanner now provides an integration workflow with Vertex AI Vector Search to enable vector similarity search on data stored in Spanner. For more information, see Export embeddings from Spanner to Vector Search.

November 13, 2023

Managed autoscaler for compute capacity on Cloud Spanner instances is now in preview. With managed autoscaler, Spanner automatically increases or decreases compute capacity on the instance in response to changing workload or storage needs and user defined goals. For more information, see Managed autoscaler.

November 10, 2023

Cloud Spanner now supports batch-oriented scans. For certain queries, Spanner chooses a batch-oriented processing mode to help improve scan throughput and performance. For more information, see Optimize scans.

November 07, 2023

Cloud Spanner now supports the Go programming language ORM, GORM, with GoogleSQL-dialect databases. For more information, see Integrate Spanner with GORM (GoogleSQL dialect).

November 02, 2023

Table and index operations statistics are now generally available. This feature helps you get insights and monitor usages of your tables and indexes in your database. For more information, see Table operations statistics.

October 31, 2023

The Cloud Spanner ExecuteBatchDml API now applies optimizations to groups of statements within a batch to enable faster and more efficient data updates. For more information, see Improve latency with batch DML.

October 30, 2023

A monthly digest of client library updates from across the Cloud SDK.

Go

Changes for spanner/admin/database/apiv1

1.50.0 (2023-10-03)

Features
  • spanner/spansql: Add support for aggregate functions (#8498) (d440d75)
  • spanner/spansql: Add support for bit functions, sequence functions and GENERATE_UUID (#8482) (3789882)
  • spanner/spansql: Add support for SEQUENCE statements (#8481) (ccd0205)
  • spanner: Add BatchWrite API (02a899c)
  • spanner: Allow non-default service accounts (#8488) (c90dd00)

1.51.0 (2023-10-17)

Features
  • spanner/admin/instance: Add autoscaling config to the instance proto (#8701) (56ce871)
Bug Fixes
  • spanner: Update golang.org/x/net to v0.17.0 (174da47)

Java

Changes for google-cloud-spanner

6.48.0 (2023-09-26)

Features
Bug Fixes
  • Retry aborted errors for writeAtLeastOnce (#2627) (2addb19)
Dependencies
  • Update actions/checkout action to v4 (#2608) (59f3e70)
  • Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.27 (#2574) (e804a4c)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.27 (#2575) (6fe132a)

6.49.0 (2023-09-28)

Features
  • Add session pool option for modelling a timeout around session acquisition. (#2641) (428e294)
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.16.1 (#2637) (3f48624)
Documentation
  • Improve timeout and retry sample (#2630) (f03ce56)
  • Remove reference to returning clauses for Batch DML (#2644) (038d8ca)

6.50.0 (2023-10-09)

Features
  • Support setting core pool size for async API in system property (#2632) (e51c55d), closes #2631
Dependencies
  • Update dependency com.google.cloud:google-cloud-trace to v2.24.0 (#2577) (311c2ad)

6.50.1 (2023-10-11)

Bug Fixes
  • Noop in case there is no change in autocommit value for setAutocommit() method (#2662) (9f51b64)
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.17.0 (#2660) (96b9dd6)
  • Update dependency commons-io:commons-io to v2.14.0 (#2649) (fa1b73c)

6.51.0 (2023-10-14)

Features
  • spanner: Add autoscaling config to the instance proto (#2674) (8d38ca3)
Bug Fixes
  • Always include default client lib header (#2676) (74fd174)

6.52.0 (2023-10-19)

Features

6.52.1 (2023-10-20)

Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.18.0 (#2691) (b425021)

October 26, 2023

Cloud Spanner now supports FULL JOIN with USING in PostgreSQL-dialect databases. For information about PostgreSQL queries in Spanner, see PostgreSQL queries.

October 23, 2023

Cloud Spanner PostgreSQL now supports the SELECT DISTINCT statement. For more information, see SELECT.

October 17, 2023

Query Optimizer version 6 is generally available, and is the default optimizer version.

October 11, 2023

Cloud Spanner has made improvements that provide higher throughput for instances located in select Spanner regional and multi-region instance configurations. These improvements are available without additional cost or any configuration changes. For more information, see Performance improvements.

October 09, 2023

Cloud Spanner batch write is now available in Preview. You can use Spanner batch write to commit multiple mutations non-atomically in a single request with low latency. For more information, see Modify data using batch write.

Cloud Spanner Vertex AI integration now supports Vertex AI Generative AI text embeddings and the text-bison model. For more information, see Get Vertex AI text embeddings.

October 05, 2023

Cloud Spanner sampled query plans are now available in GA. You can view samples of historic query plans and compare the performance of a query over time. For more information, see Sampled query plans.

September 25, 2023

A monthly digest of client library updates from across the Cloud SDK.

Java

Changes for google-cloud-spanner

6.46.0 (2023-09-06)

Features
Bug Fixes
Documentation

6.47.0 (2023-09-12)

Features
  • Add devcontainers for enabling github codespaces usage. (#2605) (a7d60f1)
  • Disable dynamic code loading properties by default (#2606) (d855ebb)
Bug Fixes
  • Add reflection configurations for com.google.rpc classes (#2617) (c42460a)
  • Avoid unbalanced session pool creation (#2442) (db751ce)
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.15.0 (#2615) (ac762fb)

Node.js

Changes for @google-cloud/spanner

7.0.0 (2023-08-30)

⚠ BREAKING CHANGES
  • upgrade to Node 14 (#1890)
Bug Fixes
Miscellaneous Chores

September 19, 2023

You can create Cloud Spanner regional instances in Dammam, Saudi Arabia (me-central2).

September 13, 2023

You can now create definer's rights views in Cloud Spanner. A definer's rights view adds additional security functionality by providing different privileges on the view and the underlying schema objects. Users with access to a definer's rights view can see and query its contents even if they don't have access to the view's underlying schema objects. For more information, see About views.

September 11, 2023

Query Optimizer version 6 is generally available. Version 5 remains the default optimizer version in production.

September 06, 2023

A Cloud Spanner multi-region instance configuration is now available in Asia - asia2 (Mumbai/Delhi/Singapore).

August 31, 2023

A monthly digest of client library updates from across the Cloud SDK.

Go

Changes for spanner/admin/database/apiv1

1.48.0 (2023-08-18)

Features
  • spanner/spansql: Add complete set of math functions (#8246) (d7a238e)
  • spanner/spansql: Add support for foreign key actions (#8296) (d78b851)
  • spanner/spansql: Add support for IF NOT EXISTS and IF EXISTS clause (#8245) (96840ab)
  • spanner: Add integration tests for Bit Reversed Sequences (#7924) (9b6e7c6)
Bug Fixes
  • spanner: Reset buffer after abort on first SQL statement (#8440) (d980b42)
  • spanner: REST query UpdateMask bug (df52820)

1.49.0 (2023-08-24)

Features
Bug Fixes
  • spanner: Transaction was started in a different session (#8467) (6c21558)

Java

Changes for google-cloud-spanner

6.45.0 (2023-08-04)

Features
  • Enable leader aware routing by default in Connection API. This enables its use in the JDBC driver and PGAdapter. The update contains performance optimisations that will reduce the latency of read/write transactions that originate from a region other than the default leader region. (2a85446)
  • Enable leader aware routing by default. This update contains performance optimisations that will reduce the latency of read/write transactions that originate from a region other than the default leader region. (441c1b0)
  • Long running transaction clean up background task. Adding configuration options for closing inactive transactions. (#2419) (423e1a4)
  • Support partitioned queries + data boost in Connection API (#2540) (4e31d04)
Bug Fixes
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.14.0 (#2562) (dbd5c75)
  • Update dependency org.openjdk.jmh:jmh-core to v1.37 (#2565) (d5c36bf)
  • Update dependency org.openjdk.jmh:jmh-generator-annprocess to v1.37 (#2566) (73e92d4)

6.45.1 (2023-08-11)

Bug Fixes

6.45.2 (2023-08-14)

Bug Fixes
  • GetColumnCount would fail for empty partititioned result sets (#2588) (9a2f3fc)

6.45.3 (2023-08-17)

Bug Fixes
  • Use streaming read/query settings for stream retry (#2579) (f78b838)

Node.js

Changes for @google-cloud/spanner

6.15.0 (2023-08-04)

Features
  • Enable leader aware routing by default. This update contains performance optimisations that will reduce the latency of read/write transactions that originate from a region other than the default leader region. (6852d99)

6.16.0 (2023-08-07)

Features
Bug Fixes

Python

Changes for google-cloud-spanner

3.39.0 (2023-08-02)

Features
  • Foreign key on delete cascade action testing and samples (#910) (681c8ee)
Documentation

3.40.0 (2023-08-04)

Features
  • Enable leader aware routing by default. This update contains performance optimisations that will reduce the latency of read/write transactions that originate from a region other than the default leader region. (e8dbfe7)

3.40.1 (2023-08-17)

Bug Fixes
  • Fix to reload table when checking if table exists (#1002) (53bda62)

August 29, 2023

Spanner Studio includes Duet AI (in Preview), an AI-powered collaborator in Google Cloud that accelerates SQL development by helping you write SQL statements. For more information, see Write SQL with Duet AI assistance.

August 24, 2023

August 23, 2023

Cloud Spanner now supports integer sequences and bit reversal.

  • The SEQUENCE DDL statement generates unique, uniformly distributed integers as part of a primary key DEFAULT expression. For more information, see SEQUENCE (GoogleSQL, PostgreSQL).

  • The bit reverse function lets you map existing integer keys using the same logic as a bit-reversed sequence to avoid hotspotting. For more information, see BIT_REVERSE (GoogleSQL, PostgreSQL).

For overview information and scenarios for when to use these features, see Primary key default values management.

Cloud Spanner now supports generating a UUID (v4) as part of a table's primary key DEFAULT expression using the GENERATE_UUID function in GoogleSQL or generate_uuid() in PostgreSQL-dialect databases.

For overview information and scenarios for when to use this feature, see Primary key default values management.

August 22, 2023

You can create Cloud Spanner regional instances in Berlin, Germany (europe-west10).

August 21, 2023

Spanner Studio enhances the Spanner query editor in the Google Cloud console, with full support for SQL, DML, and DDL operations. The Spanner Studio also features the Explorer (in Preview) which lets you interactively browse, query, and modify your database. For more information, see Manage your data using the Google Cloud console.

August 17, 2023

Cloud Spanner Data Boost is now available in all regions. For information about Data Boost, see Data Boost overview.

August 15, 2023

Cloud Spanner now lets you check the progress on long-running operations, such as backups, restores, and schema updates. This feature is generally available (GA). For more information, see Check the progress of a long-running schema update operation and Check the progress of a long-running backup or restore operation.

August 08, 2023

Cloud Spanner database deletion protection is now generally available. You can enable database deletion protection to prevent the accidental deletion of databases. For more information, see Prevent accidental database deletion.

July 31, 2023

A monthly digest of client library updates from across the Cloud SDK.

Java

Changes for google-cloud-spanner

6.43.1 (2023-06-26)

Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.20.0 (#2492) (faa6807)
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.21.0 (#2510) (f10400b)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.12.0.with temp exclusions. (#2512) (ce04645)
  • Update dependency com.google.cloud:google-cloud-trace to v2.19.0 (#2493) (1dc7cea)
  • Update dependency com.google.cloud:google-cloud-trace to v2.20.0 (#2511) (2ea52ec)
  • Update dependency commons-io:commons-io to v2.13.0 (#2490) (b087b0e)
  • Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.23 (#2500) (0b794a6)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.23 (#2501) (9db5c78)
  • Update dependency org.json:json to v20230618 (#2504) (8a87fee)

6.43.2 (2023-07-09)

Bug Fixes
  • Recognize ABORT statements for PostgreSQL (#2479) (da47b0a)
Documentation
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.0 (#2521) (bdb2461)

6.44.0 (2023-07-27)

Features
Bug Fixes
Documentation
Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.22.0 (#2525) (be0db6f)
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.23.0 (#2542) (67351dd)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.1 (#2537) (9396d8d)
  • Update dependency com.google.cloud:google-cloud-trace to v2.21.0 (#2526) (2d95234)
  • Update dependency com.google.cloud:google-cloud-trace to v2.22.0 (#2543) (47c6a43)
  • Update dependency org.graalvm.sdk:graal-sdk to v22.3.3 (#2533) (0806b11)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.10.0 (#2539) (8801b2b)

Node.js

Changes for @google-cloud/spanner

6.14.0 (2023-07-21)

Features

6.13.0 (2023-07-21)

Features
  • Enable leader aware routing by default. This update contains performance optimisations that will reduce the latency of read/write transactions that originate from a region other than the default leader region. (87cd5e6)
Bug Fixes

Python

Changes for google-cloud-spanner

3.38.0 (2023-07-21)

Features

3.37.0 (2023-07-21)

Features
  • Enable leader aware routing by default. This update contains performance optimisations that will reduce the latency of read/write transactions that originate from a region other than the default leader region. (402b101)
Bug Fixes
  • Add async context manager return types (#967) (7e2e712)
Documentation

July 18, 2023

Spanner supports cascading deletes for foreign keys. For more information, see Foreign key actions.

June 26, 2023

A monthly digest of client library updates from across the Cloud SDK.

Go

Changes for spanner/admin/database/apiv1

1.47.0 (2023-06-20)

Features
  • spanner/admin/database: Add DdlStatementActionInfo and add actions to UpdateDatabaseDdlMetadata (01eff11)
  • spanner: Add databoost property for batch transactions (#8152) (fc49c78)
  • spanner: Add tests for database roles in PG dialect (#7898) (dc84649)
  • spanner: Enable client to server compression (#7899) (3a047d2)
  • spanner: Update all direct dependencies (b340d03)
Bug Fixes
  • spanner: Fix TestRetryInfoTransactionOutcomeUnknownError flaky behaviour (#7959) (f037795)

Java

Changes for google-cloud-spanner

6.43.0 (2023-06-07)

Features
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.11.0 (#2486) (82400d5)

Node.js

Changes for @google-cloud/spanner

6.11.0 (2023-06-06)

Features
  • spanner: Add DdlStatementActionInfo and add actions to UpdateDatabaseDdlMetadata (#1860) (3e86f36)
  • Testing for fgac in pg (#1811) (c48945f)

6.12.0 (2023-06-19)

Features
  • Databoostenabled for Query and Read partitions (#1784) (66ff70c)

Python

Changes for google-cloud-spanner

3.36.0 (2023-06-06)

Features
  • Add DdlStatementActionInfo and add actions to UpdateDatabaseDdlMetadata (#948) (1ca6874)
  • Testing for fgac-pg (#902) (ad1f527)

June 23, 2023

Cloud Spanner Data Boost lets you execute analytics queries and data exports with near-zero impact to existing workloads on your provisioned Spanner instance. This feature is now generally available (GA) in the following regions:

  • asia-northeast1 (Tokyo)
  • asia-south1 (Mumbai)
  • us-central1 (Iowa)
  • nam3 (North America)
  • southamerica-east1 (São Paulo)
  • europe-west-1 (Belgium)
  • europe-west2 (London)
  • europe-west3 (Frankfurt)

For more information, see Data Boost overview.

June 22, 2023

Spanner Vertex AI integration is now generally available. You can use Vertex AI with GoogleSQL to enhance your Spanner applications with machine learning capabilities. For more information, see About Spanner Vertex AI integration.

June 09, 2023

In both the GoogleSQL and PostgreSQL dialects, adds support for the IF NOT EXISTS clause in CREATE TABLE, CREATE INDEX, and ALTER TABLE ADD COLUMN, along with IF EXISTS for DROP TABLE and DROP INDEX.

June 07, 2023

Fine-grained access control is now available for PostgreSQL-dialect databases. For more information, see About fine-grained access control.

June 05, 2023

A monthly digest of client library updates from across the Cloud SDK.

Go

Changes for spanner/admin/database/apiv1

1.46.0 (2023-05-12)

Features
  • spanner/admin/database: Add support for UpdateDatabase in Cloud Spanner (#7917) (83870f5)
  • spanner: Make leader aware routing default enabled for supported RPC requests. (#7912) (d0d3755)
Bug Fixes
  • spanner: Update grpc to v1.55.0 (1147ce0)

Java

Changes for google-cloud-spanner

6.41.0 (2023-04-28)

Features
Dependencies
  • Update dependency com.google.api.grpc:proto-google-cloud-spanner-executor-v1 to v1.4.0 (#2395) (02dc53c)
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.17.0 (#2406) (d46097f)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.8.0 (#2400) (b815cb8)
  • Update dependency com.google.cloud:google-cloud-trace to v2.16.0 (#2407) (7993be2)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.9.3 (#2401) (8aa7a1d)

6.42.0 (2023-05-15)

Features
  • Add support for UpdateDatabase in Cloud Spanner (#2265) (2ea06e7)
  • Add support for UpdateDatabase in Cloud Spanner (#2429) (09f20bd)
Bug Fixes
  • Add error details for INTERNAL error (#2413) (ed62aa6)
  • Use javax.annotation.Nonnull in executor framework (#2414) (afcc598)
Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.18.0 (#2426) (05a45f8)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.9.0 (#2427) (42dbfe3)
  • Update dependency com.google.cloud:google-cloud-trace to v2.17.0 (#2428) (6f7fee8)
  • Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.22 (#2423) (679bb36)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.22 (#2424) (a72f4ff)
  • Update dependency org.graalvm.sdk:graal-sdk to v22.3.2 (#2391) (c082a1f)

6.42.1 (2023-05-22)

Dependencies
  • Update dependency commons-io:commons-io to v2.12.0 (#2439) (d08b226)

6.42.2 (2023-05-30)

Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.19.0 (#2466) (6de2cf6)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.10.1 (#2465) (0a89f49)
  • Update dependency com.google.cloud:google-cloud-trace to v2.18.0 (#2467) (45609ed)

6.42.3 (2023-05-31)

Performance Improvements
  • Only capture the call stack if the call is actually async (#2471) (ae9c8ad)

Node.js

Changes for @google-cloud/spanner

6.9.0 (2023-04-26)

Features

6.10.0 (2023-05-17)

Features
Bug Fixes

6.10.1 (2023-05-30)

Bug Fixes
  • Set database admin and instance as having handwritten layers (republish docs) (3e3e624)

Python

Changes for google-cloud-spanner

3.32.0 (2023-04-25)

Features

3.33.0 (2023-04-27)

Features

3.34.0 (2023-05-16)

Features
  • Add support for UpdateDatabase in Cloud Spanner (#941) (38fb890)
Bug Fixes

3.35.0 (2023-05-16)

Features
  • Add support for updateDatabase in Cloud Spanner (#914) (6c7ad29)

3.35.1 (2023-05-25)

Bug Fixes
  • Catch rst stream error for all transactions (#934) (d317d2e)

May 24, 2023

Cloud Spanner lets you use a generated column in the primary key.

Cloud Spanner database deletion protection is now available in Preview. You can enable database deletion protection to prevent the accidental deletion of databases. For more information, see Prevent accidental database deletion.

May 22, 2023

Cloud Spanner automatically increases the degree of parallelism on a query when the instance size allows. For more information on parallel execution of queries, see Life of a Spanner Query.

May 09, 2023

Support for logging the processing duration of your Cloud Spanner read and write requests is now available in Cloud Audit Logs. For more information, see Processing duration.

May 02, 2023

Cloud Spanner now supports new query capabilities for PostgreSQL dialect databases:

Cloud Spanner sampled query plans are now available in Preview. You can view samples of historic query plans and compare the performance of a query over time. For more information, see Sampled query plans.

April 28, 2023

Two new multi-region instance configurations are now available in North America: nam14 (Northern Virginia/Montréal/South Carolina) and nam15 (Dallas/Northern Virginia/Iowa).

The number of indexes per table that Cloud Spanner supports increased from 32 to 128. For more information, see Quotas & limits.

April 24, 2023

A monthly digest of client library updates from across the Cloud SDK.

Go

Changes for spanner/admin/database/apiv1

1.45.0 (2023-04-10)

Features
  • spanner/spansql: Add support for missing DDL syntax for ALTER CHANGE STREAM (#7429) (d34fe02)
  • spanner/spansql: Support fine-grained access control DDL syntax (#6691) (a7edf6b)
  • spanner/spansql: Support grant/revoke view, change stream, table function (#7533) (9c61215)
  • spanner: Add x-goog-spanner-route-to-leader header to Spanner RPC contexts for RW/PDML transactions. (#7500) (fcab05f)
  • spanner: Add new fields for Serverless analytics (69067f8)
  • spanner: Enable custom decoding for list value (#7463) (3aeadcd)
  • spanner: Update iam and longrunning deps (91a1f78)
Bug Fixes
  • spanner/spansql: Fix SQL for CREATE CHANGE STREAM TableName; case (#7514) (fc5fd86)
  • spanner: Correcting the proto field Id for field data_boost_enabled (00fff3a)

1.45.1 (2023-04-21)

Bug Fixes
  • spanner/spannertest: Send transaction id in result metadata (#7809) (e3bbd5f)
  • spanner: Context timeout should be wrapped correctly (#7744) (f8e22f6)

Java

Changes for google-cloud-spanner

6.38.1 (2023-03-29)

Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.6.0 (#2352) (19175ce)

6.38.2 (2023-04-01)

Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.15.0 (#2356) (e4c001a)
  • Update dependency com.google.cloud:google-cloud-trace to v2.14.0 (#2357) (dbb8e66)

6.39.0 (2023-04-11)

Features
  • Capture stack trace for session checkout is now optional (#2350) (6b6427a)

6.40.0 (2023-04-14)

Features
Performance Improvements
Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.7.0 (#2377) (40402af)
  • Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.21 (#2379) (ae7262d)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.21 (#2380) (0cb159e)

6.40.1 (2023-04-17)

Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.16.0 (#2383) (5d5c33a)
  • Update dependency com.google.cloud:google-cloud-trace to v2.15.0 (#2384) (6b4ce1f)

Node.js

Changes for @google-cloud/spanner

6.8.0 (2023-04-06)

Features
Bug Fixes
  • Begin transaction foes not handle error (#1833) (6ecd366)
  • Correct the proto field Id for field data_boost_enabled (#1827) (7f6d4cc)
  • Logic for retrying specifiied internal errors (#1822) (f915bd1), closes #1808

Python

Changes for google-cloud-spanner

3.30.0 (2023-03-28)

Features

3.31.0 (2023-04-12)

Features
  • Add databoost enabled property for batch transactions (#892) (ffb3915)
Bug Fixes

April 10, 2023

Cloud Spanner integration with Data Catalog is now available in Preview in the europe-central2 region.

For more information, see Manage resources using Data Catalog.

March 31, 2023

Cloud Spanner integration with Data Catalog is now available in Preview. Data Catalog is a fully managed, scalable metadata management service within Dataplex. It automatically catalogs metadata about Cloud Spanner instances, databases, tables, columns, and views. For Preview, integration with Data Catalog is not available in the europe-central2 region.

For more information, see Manage resources using Data Catalog.

March 30, 2023

You can create Cloud Spanner regional instances in Doha, Qatar (me-central1).

March 27, 2023

A monthly digest of client library updates from across the Cloud SDK.

Java

Changes for google-cloud-spanner

6.37.0 (2023-03-03)

Features
Bug Fixes
Dependencies
  • Update dependency com.google.api.grpc:proto-google-cloud-spanner-executor-v1 to v1.3.0 (#2306) (8372250)
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.13.0 (#2311) (6ba613b)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.4.0 (#2312) (266c49c)
  • Update dependency com.google.cloud:google-cloud-trace to v2.12.0 (#2313) (e5f76c6)
  • Update dependency org.json:json to v20230227 (#2310) (badcc14)

6.38.0 (2023-03-20)

Features
  • Add option to wait on session pool creation (#2329) (ff17244)
  • Add PartitionedUpdate support to executor (#2228) (2c8ecf6)
Bug Fixes
  • Correct the proto field Id for field data_boost_enabled (#2328) (6159d7e)
  • Update executeCloudBatchDmlUpdates. (#2326) (27ef53c)
Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.14.0 (#2333) (9c81109)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.5.0 (#2335) (5eac2be)
  • Update dependency com.google.cloud:google-cloud-trace to v2.13.0 (#2334) (c461ba0)

Python

Changes for google-cloud-spanner

3.28.0 (2023-02-28)

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

3.29.0 (2023-03-23)

Features
  • Add new fields for Serverless analytics (#906) (2a5a636)
Bug Fixes
  • Correct the proto field ID for field data_boost_enabled (#915) (428aa1e)
Documentation
  • Fix formatting of request arg in docstring (#918) (c022bf8)

March 23, 2023

You can create Cloud Spanner regional instances in Turin, Italy (europe-west12).

March 21, 2023

The following functions and expressions have been added to the GoogleSQL dialect:

March 20, 2023

You can now use Google Cloud tags to group and organize your Cloud Spanner instances, and to condition Identity and Access Management (IAM) policies based on whether an instance has a specific tag. For more information, see Control access and organize instances with tags.

March 17, 2023

Support for the GoogleSQL-dialect THEN RETURN clause and the PostgreSQL-dialect RETURNING clause is now generally available. For more information, see THEN RETURN and RETURNING.

The following functions have been added to the GoogleSQL dialect:

March 09, 2023

Cloud Spanner fine-grained access control is now generally available. Fine-grained access control combines the benefits of Identity and Access Management (IAM) with traditional SQL role-based access control. For more information, see About fine-grained access control.

March 03, 2023

Added support for the JSONB array data type in the PostgreSQL dialect. For more information, see Work with JSONB data.

March 01, 2023

Change streams are now supported for PostgreSQL-dialect databases.

February 27, 2023

A monthly digest of client library updates from across the Cloud SDK.

Java

Changes for google-cloud-spanner

6.36.0 (2023-02-08)

Features
  • Support UNRECOGNIZED types + decode BYTES columns lazily (#2219) (fc721c4)
Bug Fixes
Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.11.0 (#2262) (d566613)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.2.0 (#2264) (b5fdbc0)
  • Update dependency com.google.cloud:google-cloud-trace to v2.10.0 (#2263) (96f0c81)

6.36.1 (2023-02-21)

Bug Fixes
  • Prevent illegal negative timeout values into thread sleep() method while retrying exceptions in unit tests. (#2268) (ce66098)
Dependencies
  • Update dependency com.google.api.grpc:proto-google-cloud-spanner-executor-v1 to v1.2.0 (#2256) (f0ca86a)
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.12.0 (#2284) (0be701a)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.3.0 (#2285) (bb5d5c6)
  • Update dependency com.google.cloud:google-cloud-trace to v2.11.0 (#2286) (3c80932)
  • Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.20 (#2280) (685d1ea)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.20 (#2281) (f2aabc2)

Node.js

Changes for @google-cloud/spanner

6.7.1 (2023-01-23)

Bug Fixes

6.7.2 (2023-02-17)

Bug Fixes
  • Tests emit empty metadata before emitting unspecified error (14ef031)

Go

Changes for spanner/admin/database/apiv1

1.44.0 (2023-02-01)

Features
  • spanner/spansql: Add support for ALTER INDEX statement (#7287) (fbe1bd4)
  • spanner/spansql: Add support for managing the optimizer statistics package (#7283) (e528221)
  • spanner: Add support for Optimistic Concurrency Control (#7332) (48ba16f)

Python

Changes for google-cloud-spanner

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)

The new System insights dashboard displays metrics and scorecards for the resources that your instance or database uses and helps you get a high-level view of your system's performance. For more information, see Monitor instances with system insights.

February 16, 2023

The Cloud Spanner regional endpoints feature has been moved to a future release. It is not currently available.

February 13, 2023

As of today, the list compute price for the following 9-replica Spanner multi-region configurations has been reduced: nam-eur-asia1 and nam-eur-asia3. For more details, see Cloud Spanner pricing.

February 09, 2023

The Google Cloud console for Spanner now displays the status and progress of copy backup long-running operations that you have initiated in the console. The operation is visible for 7 days.

February 07, 2023

Cloud Spanner now autocompletes and validates the syntax of your DDL statements when you use the Google Cloud console to write DDL statements for your PostgreSQL-dialect databases.

February 06, 2023

Cloud Spanner now supports regional endpoints. You can use regional endpoints if your data location must be restricted and controlled to comply with regulatory requirements.

January 31, 2023

Table sizes statistics are now generally available. They help you get insights into the size of individual tables in your database. For more information, see Table sizes statistics.

January 30, 2023

A monthly digest of client library updates from across the Cloud SDK.

Node.js

Changes for @google-cloud/spanner

6.7.0 (2023-01-17)

Features

Go

Changes for spanner/admin/database/apiv1

1.43.0 (2023-01-19)

Features
  • spanner/spansql: Add support for change stream value_capture_type option (#7201) (27b3398)
  • spanner/spansql: Support default_leader database option (#7187) (88adaa2)
  • spanner: Add REST client (06a54a1)
  • spanner: Inline begin transaction for ReadWriteTransactions (#7149) (2ce3606)
Bug Fixes
  • spanner: Fix integration tests data race (#7229) (a741024)

Java

Changes for google-cloud-spanner

6.35.0 (2023-01-12)

Features
  • Add support for new cloud client test framework in google-cloud-spanner-executor (#2217) (d75ebc1)
  • spanner: Add samples for fine grained access control (#2172) (77969e3)
Bug Fixes
Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.8.0 (#2192) (fe7e755)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.1 (#2222) (7d3bcca)
  • Update dependency com.google.cloud:google-cloud-trace to v2.7.0 (#2193) (da2b924)
  • Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.19 (#2180) (43b54e9)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.19 (#2181) (b42eb38)

6.35.1 (2023-01-18)

Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.9.0 (#2230) (717f70f)
  • Update dependency com.google.cloud:google-cloud-trace to v2.8.0 (#2231) (557ea16)
  • Update dependency org.graalvm.sdk:graal-sdk to v22.3.1 (#2238) (d5f5237)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.9.2 (#2223) (3278f91)

6.35.2 (2023-01-24)

Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.10.0 (#2249) (d18780e)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.2 (#2246) (1adaf7c)
  • Update dependency com.google.cloud:google-cloud-trace to v2.9.0 (#2250) (3cd5ab0)

Python

Changes for google-cloud-spanner

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)

December 22, 2022

The new Cloud Spanner Kafka connector publishes change streams records to Kafka for application integration and event triggering. For more information, see Build change streams connections to Kafka.

December 19, 2022

You can now use the ALTER INDEX statement to add columns into an index or drop non-key columns. For more information, see Alter an index.

December 14, 2022

Cloud Spanner now offers the Cloud Spanner change streams to Pub/Sub Dataflow template, which streams Cloud Spanner data change records and writes them into Pub/Sub topics.

You can now create a custom instance configuration and add optional read-only replicas to your custom instance configurations to scale reads and support low latency stale reads. For more information, see Regional and multi-region configurations.

December 12, 2022

Support for moving a Cloud Spanner instance is now generally available. You can request to move your Spanner instance from any instance configuration to any other instance configuration, including between regional and multi-region configurations. For more information, see Move an instance.

An update to Spanner change streams provides two new data capture types for change records:

  • NEW_VALUES mode captures only new values in non-key columns, and no old values. Keys are always captured.
  • NEW_ROW mode captures the full new row, including columns that are not included in updates. No old values are captured.

Note that existing change streams remain set to OLD_AND_NEW_VALUES.

December 06, 2022

We identified an issue in how we calculate the Total Database Storage metric in multi-regional Spanner instances. This metric is used to calculate the charges for Spanner database storage.

Database storage is currently incorrectly reported lower than it actually is in multi-regional configurations, resulting in undercharging for database storage. We communicated a Service Announcement in October and started rolling out this change to pricing on December 1, 2022. Depending on your configuration, your Total Database Storage could increase by up to 25%.

For the majority of impacted customers, the impact on your total bill will be less than 0.5%. For those affected, you will notice an increase in database storage charges that reflect this corrected metric.

We waived the under-billed amount for all past billing cycles. Please note that this issue only affects multi-region configurations of Spanner. It does not affect regional configurations of Spanner. Additionally, the Total Backup Storage metric is not affected by this issue, and has always been reported correctly.

For more information, see Database storage prices.

December 05, 2022

New SQL syntax, RETURNING in the PostgreSQL dialect and THEN RETURN in Google Standard SQL, selects and returns data from rows that were just updated as part of a DML statement. This is especially useful for getting values from default or generated columns and can reduce latency over equivalent multi-statement transactions. The preview supports the Java, JDBC, Python, and Go Spanner clients as well as PostgreSQL drivers that connect through PGAdapter.

December 02, 2022

The number of concurrent database restore operations per instance that Cloud Spanner supports has increased from five to ten. For more information, see Backup and restore limits.

November 15, 2022

Time to live (TTL) is now supported in PostgreSQL-dialect databases. With TTL, you can reduce storage costs, improve query performance, and simplify data retention by automatically removing unneeded data based on user-defined policies.

Added support for the JSONB data type in the Cloud Spanner PostgreSQL dialect. For more information, see Work with JSONB data.

November 08, 2022

Cloud Spanner now supports cross-region and cross-project backup use cases. You can copy a backup of your database from one instance to another instance in a different region or project to provide additional data protection and compliance capabilities.

November 07, 2022

A weekly digest of client library updates from across the Cloud SDK.

Go

Changes for spanner/admin/database/apiv1

1.40.0 (2022-11-03)

Features
  • Expose logger in ClientConfig (#6958) (bd85442), refs #6957
  • Update result_set.proto to return undeclared parameters in ExecuteSql API (de4e16a)
  • Update transaction.proto to include different lock modes (caf4afa)

Java

Changes for google-cloud-spanner

6.4.4-sp.7 (2022-11-02)

Dependencies

November 03, 2022

Support for the NHibernate ORM is now generally available, enabling you to use Cloud Spanner as a backend database for the NHibernate framework. For more information, see NHibernate Dialect for Cloud Spanner.

October 31, 2022

A weekly digest of client library updates from across the Cloud SDK.

Java

Changes for google-cloud-spanner

6.32.0 (2022-10-27)

Features
  • Enable client to server compression (#2117) (50f8425)
  • Increase default number of channels when gRPC channel pool is enabled (#1997) (44f27fc)
  • Update result_set.proto to return undeclared parameters in ExecuteSql API (#2101) (826eb93)
Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.6.0 (#2125) (7d86fe4)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.5 (#2122) (308a65c)
  • Update dependency com.google.cloud:google-cloud-trace to v2.5.0 (#2126) (5167928)
  • Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.16 (#2119) (b2d27e8)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.16 (#2120) (151cf77)
  • Update dependency org.graalvm.sdk:graal-sdk to v22.3.0 (#2116) (9d6930b)

Node.js

Changes for @google-cloud/spanner

6.4.0 (2022-10-27)

Features
  • Update result_set.proto to return undeclared parameters in ExecuteSql API (eaa445e)
  • Update transaction.proto to include different lock modes (#1723) (eaa445e)

October 24, 2022

A weekly digest of client library updates from across the Cloud SDK.

Node.js

Changes for @google-cloud/spanner

6.3.0 (2022-10-03)

Bug Fixes
  • deps: Update dependency @google-cloud/precise-date to v3 (#1676) (3f20ec4)
  • Do not import the whole google-gax from proto JS (#1553) (#1700) (f9c2640)
  • Update google-gax to v3.3.0 (f9c2640)

October 19, 2022

The number of concurrent database restore operations per instance that Cloud Spanner supports has increased from one to five. For more information, see Backup and restore limits.

October 18, 2022

The following new generally available features help you identify and troubleshoot high latencies in specific databases:

October 17, 2022

A weekly digest of client library updates from across the Cloud SDK.

Java

Changes for google-cloud-spanner

6.23.4 (2022-10-12)

Dependencies

Python

Changes for google-cloud-spanner

3.22.2 (2022-10-10)

Bug Fixes

October 11, 2022

Spanner Vertex AI integration is now available in public preview. You can now enhance your Spanner applications with machine learning capabilities by using Google Standard SQL. For more information, see About Spanner Vertex AI integration.

October 10, 2022

A weekly digest of client library updates from across the Cloud SDK.

Java

Changes for google-cloud-spanner

6.31.2 (2022-10-05)

Bug Fixes
  • Update protobuf to v3.21.7 (ac71008)

6.31.1 (2022-10-03)

Dependencies
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 (#2090) (8f46938)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.14 (#2031) (c5e9ba1)

Python

Changes for google-cloud-spanner

3.22.1 (2022-10-04)

Bug Fixes
Documentation
  • samples: Add samples for CMMR phase 2 (4282340)

October 03, 2022

A weekly digest of client library updates from across the Cloud SDK.

Java

Changes for google-cloud-spanner

6.31.0 (2022-09-29)

Dependencies
  • Update dependency com.google.cloud:google-cloud-trace to v2.3.4 (#2027) (14890ed)
  • Update dependency com.google.cloud:google-cloud-trace to v2.3.5 (#2083) (cef4e0a)
  • Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.14 (#2030) (04b59ff)
  • Update dependency org.json:json to v20220924 (#2035) (a26a14a)

Python

Changes for google-cloud-spanner

3.22.0 (2022-09-26)

Features
  • Add reason, domain, metadata & details fields in Custom Exceptions to provide additional error info (#804) (2a74060)

September 28, 2022

The following SPANNER_SYS statistical tables have been enhanced with new columns:

September 27, 2022

The number of mutations per commit that Cloud Spanner supports has increased from 20,000 to 40,000. For more information, see Quotas and limits.

The ARRAY_SLICE function is now available to use in Google Standard SQL. This function returns an ARRAY containing zero or more consecutive elements from an input array.

September 26, 2022

A weekly digest of client library updates from across the Cloud SDK.

Node.js

Changes for @google-cloud/spanner

6.2.0 (2022-09-16)

Bug Fixes
  • Allow passing gax instance to client constructor (#1698) (588c1a2)
  • deps: Use grpc-gcp v1.0.0 (#1710) (12eab9d)
  • Move runtime dependencies from dev dependencies to dependencies (#1704) (b2c1c0f)
  • Preserve default values in x-goog-request-params header (#1711) (f1ae513)

Go

Changes for spanner/admin/database/apiv1

1.39.0 (2022-09-21)

Features
  • spanner/spannersql: Add backticks when name contains a hypen (#6621) (e88ca66)
  • spanner/spansql: Add support for create, alter, and drop change streams (#6669) (cc4620a)
  • spanner: Retry spanner transactions and mutations when RST_STREAM error is returned (#6699) (1b56cd0)
Bug Fixes
  • spanner: Destroy session when client is closing (#6700) (a1ce541)
  • spanner: Spanner sessions will be cleaned up from the backend (#6679) (c27097e)

Java

Changes for google-cloud-spanner

6.30.2 (2022-09-21)

Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.4.5 (#2022) (0536962)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.9.1 (#2023) (3fb4235)

6.30.1 (2022-09-20)

Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.4.4 (#2014) (9cebad4)
  • Update dependency com.google.cloud:google-cloud-trace to v2.3.3 (#2004) (54f9095)

September 15, 2022

Fine grained access control for Spanner is now available in public preview. Fine-grained access control lets you secure your Spanner databases at the table and column level by using new RDBMS-style roles and GRANT/REVOKE SQL statements. With fine-grained access control, you can protect your transactional data and ensure that the right controls are in place when granting access to data. For more information, see About fine-grained access control.

The Spanner Golang database/sql driver is now generally available. Add the driver to your application to enable the use of the database/sql package with Spanner. For more information, see the Spanner blog and the package documentation.

September 13, 2022

You can create Cloud Spanner regional instances in Tel Aviv, Israel (me-west1).

September 09, 2022

Query Optimizer version 5 is generally available, and is the default optimizer version.

September 08, 2022

Cloud Spanner free trial instances are now generally available. With a free trial instance, you can learn and explore Spanner for 90 days at no cost. You can create Google Standard SQL or PostgreSQL-dialect databases and store up to 10 GB of data, with the option to upgrade at any time. For more information, see About Cloud Spanner free trial instances.

August 17, 2022

The DISABLE_INLINE hint is now available to use in a Google Standard SQL function call. This allows a function to be computed once instead of each time another part of a query references it.

July 25, 2022

Query Optimizer version 5 is generally available. Version 4 remains the default optimizer version in production.

July 14, 2022

You can now view aggregated Cloud Spanner statistics related to transactions, reads, queries, and lock contentions in GA in Cloud Monitoring.

June 30, 2022

The ANALYZE DDL command allows administrators to manually update the query statistics package that the optimizer uses to build query execution plans. This complements the existing automatic updates to provide faster feedback cycles when data, queries, or indexes change frequently.

June 29, 2022

Query insights is now generally available. Query Insights helps you visually detect and identify query performance issues for Cloud Spanner databases. You can also dig deeper and analyse the query details to know the root cause of these issues.

To learn more, see Detect query performance issues with Query Insights.

June 23, 2022

The PostgreSQL interface is now generally available, making the capabilities of Cloud Spanner accessible from the PostgreSQL ecosystem. It includes a core subset of the PostgreSQL SQL dialect, support for the psql command-line tool, native language clients, and integration into existing Google tools. For more information, see PostgreSQL interface.

June 10, 2022

Commit timestamps enable a Cloud Spanner optimization that can reduce query I/O when retrieving data written after a particular time.

June 07, 2022

You can create Cloud Spanner regional instances in Dallas (us-south1).

May 31, 2022

Granular instance sizing is now generally available. You can now create production instances of fewer than 1000 processing units. To learn more, see Compute capacity, nodes and processing units.

May 27, 2022

Cloud Spanner change streams capture and stream out inserts, updates, and deletes in near real-time—useful for analytics, archiving, and triggering downstream application workflows.

May 24, 2022

You can create Cloud Spanner regional instances in Columbus (us-east5).

May 10, 2022

You can create Cloud Spanner regional instances in Madrid (europe-southwest1).

May 03, 2022

You can create Cloud Spanner regional instances in Paris (europe-west9).

Query Optimizer version 4 is generally available, and is the default optimizer version.

April 20, 2022

Cloud Spanner regional instances can now be created in Milan (europe-west8).

April 14, 2022

You can now define a default value for a non-key table column when creating or altering a table. Using the DEFAULT keyword, a schema author can provide a fallback for a column when an insert statement or mutation doesn't explicitly specify a value.

A new three-continent, nine-replica multi-region instance configuration is available for Cloud Spanner: nam-eur-asia3 (Iowa/South Carolina/Belgium/Netherlands/Taiwan/Oklahoma).

April 05, 2022

Cloud Spanner now allows you to export a subset of your database tables to Google Cloud Storage as Avro files.

March 25, 2022

All instances with a compute capacity of at least one node (1,000 processing units) now have a data storage allotment of 4 TB per node, an increase from 2 TB per node. Relatedly, instances smaller than one node now have a data storage allotment of 409.6 GB for every 100 processing units.

March 22, 2022

The data type of the COLUMN_DEFAULT column in the information schema COLUMNS table has changed from BYTES to STRING. This aligns better with industry standards and enables future improvements to Cloud Spanner.

March 10, 2022

Cloud Spanner now offers committed use discounts. You can get significantly discounted prices in exchange for your commitment to use Cloud Spanner compute resources continuously for a year or longer.

March 08, 2022

You can now see and manage the views of your Cloud Spanner databases from the Google Cloud Console. To do so, visit a database's Overview page, and then click the Views tab.

March 03, 2022

You can now view aggregated Cloud Spanner statistics related to transactions, reads, queries, and lock contentions in Preview in Cloud Monitoring. Additionally, the retention period for these metrics at one-minute intervals has been increased from six hours to six weeks.

March 01, 2022

A new multi-region instance configuration is now available in North America - nam13 (Iowa/Oklahoma/Salt Lake City).

Released Query Optimizer version 4. Version 3 remains the default optimizer version in production.

February 11, 2022

Cloud Spanner now optimizes the way it processes groups of similar statements in DML batches, significantly improving the speed at which it performs batched data writes under certain conditions.

February 08, 2022

Query statistics now cover DML statements, including inserts, updates, and deletes.

February 07, 2022

Cloud Spanner's CPU Utilization metrics now provide grouping by all task priorities: low, medium, and high.

Relatedly, Cloud Spanner's monitoring console now lets you view the CPU utilization of your instance by operation type, filtered by task priority.

January 25, 2022

Starting no sooner than February 23, 2022, the data type of the COLUMN_DEFAULT column in the information schema's COLUMNS table will change from BYTES to STRING. This aligns better with industry standards, and enables future improvements to Cloud Spanner.

November 16, 2021

Cloud Spanner regional instances can now be created in Santiago (southamerica-west1).

November 04, 2021

Time to live (TTL) is generally available. TTL reduces storage costs, improves query performance, and simplifies data retention by automatically removing unneeded data based on user-defined policies.

October 29, 2021

The django-spanner plugin is now available, enabling you to use Cloud Spanner as a backend database for the Django Web framework. For more information, see Django ORM with Cloud Spanner.

October 27, 2021

When performing a CSV export, you may now use the spannerSnapshotTime option to export a specific past version of your data.

October 13, 2021

You can now assign request tags and transaction tags in your application code to easily troubleshoot query performance, transaction latency, and lock contentions by correlating introspection statistics to application code.

October 12, 2021

The PostgreSQL interface is available in Preview, making the capabilities of Spanner accessible from the PostgreSQL ecosystem. The release supports a subset of the PostgreSQL SQL dialect, including core data types, functions, and operators. Applications can connect using updated Spanner drivers for JDBC, Java, Go, and Python. Starting initially with psql, community tools can connect using PGAdapter, a sidecar proxy that implements the PostgreSQL wire protocol. Sign up for the preview today.

October 06, 2021

You can now specify the statistics package for the query optimizer to use, to ensure predictability in your query plans.

September 24, 2021

Query Optimizer version 3 is now the default optimizer version in production.

August 31, 2021

The R2DBC driver for Cloud Spanner is available in Preview. This driver lets you connect to Cloud Spanner from fully reactive applications.

August 30, 2021

In the Cloud Console, a database's Query page now supports multiple query tabs so you no longer have to clear one query to create and run another. Additionally, you can enter multiple query and DML statements in a single query tab. When you do so, the Results and Explanation subtabs let you choose which statement's results or query plan you want to view. See A tour of the query editor for details.

Added support for changing the leader region location of a Cloud Spanner database.

Added support for the JSON data type. For more information, see Working with JSON data.

August 20, 2021

Cloud Spanner now creates dedicated backup jobs to take backups instead of using an instance's server resources. As a result, backup time is reduced and backup operations do not affect instance performance.

Views are now supported in Cloud Spanner databases. Use views to provide logical data-modeling to applications, to centralize query definitions and simplify maintenance, and to ensure stability of query definitions across schema changes. Learn more.

August 17, 2021

Released Query Optimizer version 3. Query Optimizer v3 is currently set to off by default in production.

August 04, 2021

Cloud Spanner now has an end-to-end latency guide. This guide describes the high-level components involved in a Cloud Spanner API request, and explains how to extract, capture, and visualize latencies associated with these components to know the source of the latencies.

August 03, 2021

Cloud Spanner regional instances can now be created in Toronto (northamerica-northeast2).

Added support for changing instance configuration (Preview).

July 21, 2021

Time to live (TTL) is now available in public preview. This feature lets database administrators periodically delete unneeded data from Cloud Spanner tables, and so decrease storage and backup costs and potentially increase query performance. To use this feature, a database owner defines a row deletion policy on a table schema.

July 20, 2021

Granular instance sizing is now available in public preview. Historically, the most granular unit for provisioning compute capacity on Spanner has been the node. To provide more granular control, we are introducing Processing Units (PUs); one Spanner node is equal to 1,000 PUs. You can now provision in batches of 100 PUs, and get a proportionate amount of compute and storage resources. Learn more.

July 19, 2021

Key Visualizer for Cloud Spanner is now available. Key Visualizer is an interactive monitoring tool to analyze usage patterns in Spanner databases. It reveals trends and outliers in important performance and resource metrics.

July 08, 2021

The NUMERIC data type is now supported as a valid key column type, so you can now use NUMERIC type columns when specifying primary keys, foreign keys, and secondary indexes.

June 30, 2021

Cloud Spanner now supports Cloud External Key Manager (Cloud EKM) when using customer-managed encryption keys. Cloud EKM also provides Key Access Justification to give you more visibility into key access requests.

June 29, 2021

Cloud Spanner regional instances can now be created in Delhi (asia-south2).

June 21, 2021

Cloud Spanner regional instances can now be created in Melbourne (australia-southeast2).

June 15, 2021

The SQL mathematical functions EXP, LN, LOG, LOG10 and SQRT now directly support NUMERIC data as input. You no longer need to cast NUMERIC data to FLOAT64 data before passing it as input to these functions.

June 11, 2021

You can now find common queries for monitoring and troubleshooting on the Query page in the Cloud Console. This page now has query templates to help you to access these introspection system tables: Query Stats, Read Stats, Transaction Stats, Lock Stats, and Oldest active queries.

June 04, 2021

We are replacing the Insert a row and Edit a row data forms in the Cloud Console with pre-populated DML query templates on the Query page. These templates provide you more flexibility when adding and editing data. Learn More

May 27, 2021

We've enhanced the experience for creating, updating, and deleting schemas in the Cloud Console. On a database's Overview page you'll now find a Write DDL link to the DDL editor where you can perform all these activities.

April 13, 2021

Transaction statistics now includes information about commit retries to help users debug performance issues caused by transaction aborts.

April 06, 2021

You can now track the progress of long-running index backfill operations through the gcloud command line tool, REST API, and RPC API. For more information, see Checking the progress of a secondary index backfill.

March 31, 2021

You can now use Customer-Managed Encryption Keys (CMEK) to protect databases in Cloud Spanner. CMEK in Cloud Spanner is now generally available. For more information, see CMEK.

You can now optionally specify the priority of data requests. For more information, see CPU utilization and task priority.

The maximum number of JOIN statements allowed in a query has increased from 15 to 20. Query limits.

March 24, 2021

Cloud Spanner regional instances can now be created in Warsaw (europe-central2).

March 17, 2021

The Cloud Console query page has been updated with a revamped query editor, which now offers improved autocomplete, prevalidation of your query, formatting options, and the ability to run a selection from your query. This update also includes a new query plan visualizer. For a tour of these features and to learn more, see Tuning a query using the query plan visualizer.

March 11, 2021

Cloud Spanner provides a new metric, CPU Utilization by operation types, which breaks down CPU usage by user-initiated operations. For more information, see CPU utilization metrics.

March 03, 2021

Cloud Spanner now supports point-in-time recovery (PITR), which lets you recover data from a specific point in time in the past.

March 01, 2021

You can now optionally receive the mutation count for a transaction in the commit response to optimize the transactions while staying within the mutation count limit. For more information, see Retrieving commit statistics for a transaction.

February 08, 2021

The Cloud Spanner Console now displays database storage utilization and warns you if you are approaching the recommended limit. For more information, see storage utilization metrics.

January 15, 2021

You can now run SQL queries to retrieve lock statistics to investigate lock conflicts in your database.

January 14, 2021

Query statistics now includes information about queries that failed, queries that timed out, and queries that were canceled by the user.

December 17, 2020

A new multi-region instance configuration is now available in Europe - eur6 (Netherlands/Frankfurt/Zurich).

A new multi-region instance configuration is now available in North America - nam12 (Iowa/Northern Virginia/Oregon/Oklahoma).

December 07, 2020

Cloud Spanner supports a new statement hint, LOCK_SCANNED_RANGES, allowing you to request an exclusive lock on a set of ranges scanned by a transaction.

November 09, 2020

A new multi-region instance configuration is now available in North America - nam8 (Los Angeles/Oregon/Salt Lake City).

October 29, 2020

The following updates for Cloud Spanner SQL are now available:

October 23, 2020

A new multi-region instance configuration is now available in North America - nam7 (Iowa/North Virginia/Oklahoma).

October 15, 2020

A new multi-region instance configuration is now available in North America - nam9 (North Virginia/Iowa/South Carolina/Oregon).

October 13, 2020

CHECK constraints is now generally available, allowing you to define a boolean expression on the columns of a table and require that all rows in the table satisfy the expression. For more information, see Creating and managing check constraints.

Generated columns support is now generally available, allowing you to define columns that are computed from other columns in a row. For more information, see Creating and managing generated columns.

October 08, 2020

The following updates to Cloud Spanner standard SQL are now available :

September 28, 2020

September 09, 2020

Cloud Spanner introduces a new introspection tool that provides insights into queries that are currently running in your database. Use Oldest Active Queries to analyze what queries are running and how they are impacting database performance characteristics.

August 20, 2020

A new multi-region instance configuration is now available in North America - nam11 (Iowa/South Carolina).

August 06, 2020

A new multi-region instance configuration is now available in North America - nam10 (Iowa/Salt Lake).

July 30, 2020

The Cloud Spanner emulator is now generally available, enabling you to develop and test applications locally. For more information, see Using the Cloud Spanner Emulator.

July 15, 2020

You can now run SQL queries to retrieve read statistics for your database over recent one-minute, 10-minute, and one-hour time periods.

June 08, 2020

A second multi-region instance configuration is now available in Europe - eur5 (London/Belgium).

A multi-region instance configuration is now available in Asia - asia1 (Tokyo/Osaka).

Cloud Spanner regional instances can now be created in Jakarta (asia-southeast2).

June 03, 2020

Cloud Spanner SQL now supports the following statistical aggregate functions - STDDEV, VARIANCE. For more information, see Statistical Aggregate Functions.

May 18, 2020

You can now run SQL queries to retrieve transaction statistics for your database over recent one-minute, 10-minute, and one-hour time periods.

April 20, 2020

Cloud Spanner regional instances can now be created in Las Vegas (us-west4).

April 17, 2020

Cloud Spanner Backup and Restore is now generally available, enabling you to create backups of Cloud Spanner databases on demand, and restore them. For more information, see Backup and Restore.

Query Optimizer Versioning is now generally available, enabling you to select which version of the optimizer to use for your database, application or query. For more information, see Query optimizer.

April 01, 2020

A beta version of the Cloud Spanner emulator is now available, enabling you to develop and test Cloud Spanner applications locally. For more information, see Using the Cloud Spanner Emulator.

March 19, 2020

The open-source C++ client library for Cloud Spanner is now available. To get started using C++ with Cloud Spanner, see this tutorial.

March 05, 2020

Foreign keys is now generally available. For more information, see Foreign keys overview.

February 24, 2020

Cloud Spanner regional instances can now be created in Salt Lake City (us-west3).

January 24, 2020

Cloud Spanner regional instances can now be created in Seoul (asia-northeast3).

December 18, 2019

Cloud Spanner regional instances can now be created in Frankfurt (europe-west3).

November 25, 2019

SQL queries now support the WITH clause. This clause lets you bind the results of subqueries to temporary tables which makes it easier to structure complex queries and optimize them for a faster execution time.

October 16, 2019

If you would like to use Hibernate ORM with Cloud Spanner, we now provide a guide to help you connect Hibernate ORM to Cloud Spanner.

September 25, 2019

All Cloud Spanner instances, including 1-node and 2-node instances, are now covered under the Service Level Agreement (SLA). Cloud Spanner now supports 99.99% monthly uptime percentage for all regional instances and 99.999% monthly uptime percentage for all multi-region instances under the Cloud Spanner SLA, regardless of instance size.

August 09, 2019

The Google Cloud Platform Console no longer provides a chart that shows the stacked throughput, by region, for instances with multi-region configurations. Instead, you can use the chart that shows total throughput for all regions. Learn more about monitoring with the GCP Console.

August 07, 2019

An open-source JDBC driver for Cloud Spanner is now available. This open-source driver enables Java applications to access Cloud Spanner through the Java Database Connectivity (JDBC) API.

July 31, 2019

Cloud Spanner regional instances can now be created in São Paulo (southamerica-east1).

June 26, 2019

You can now import and export Cloud Spanner data in CSV format. You can use this feature to copy CSV data between Cloud Spanner and traditional relational database management systems, in combination with tools such as the mysqldump tool for MySQL, the COPY statement for PostgreSQL, or the bcp tool for Microsoft SQL Server.

If you write your applications in Java with the Spring Framework, we now provide a guide to help you add Spring Data Cloud Spanner to your application. Spring Data Cloud Spanner can make it easier and more efficient to work with Cloud Spanner.

June 21, 2019

For SQL queries, Cloud Spanner now automatically uses any secondary indexes that are likely to make the query more efficient.

If you notice a performance regression in an existing query, follow these troubleshooting steps, and get support if you cannot resolve the issue.

May 15, 2019

The Google Cloud Platform Console and the Stackdriver Monitoring console now provide latency charts for Cloud Spanner. Use these charts to help you troubleshoot performance issues.

April 30, 2019

The Google Cloud Platform Console and the Stackdriver Monitoring console now provide CPU utilization charts for additional CPU utilization metrics. You can also set up alerts in Stackdriver Monitoring to track these metrics.

April 18, 2019

Cloud Spanner regional instances can now be created in Osaka (asia-northeast2).

March 14, 2019

Cloud Spanner now allows you to send multiple DML statements in one transaction using batch DML.

March 11, 2019

Cloud Spanner regional instances can now be created in Zürich (europe-west6).

February 01, 2019

January 17, 2019

Cloud Spanner regional instances can now be created in London (europe-west2).

Cloud Spanner regional instances can now be created in Sydney (australia-southeast1).

January 11, 2019

December 06, 2018

Announced general availability of the Java client library for Cloud Spanner.

November 26, 2018

Cloud Spanner regional instances can now be created in Hong Kong (asia-east2).

November 13, 2018

The GCP Console now displays query statistics, as measured by CPU usage, for Cloud Spanner queries over recent one-minute, 10-minute, one-hour, and one-day time periods. You can also run SQL queries over the SPANNER_SYS tables to retrieve recent query statistics.

October 29, 2018

Cloud Spanner multi-region instance configurations can now be created in Europe (eur3).

October 26, 2018

The gcloud command-line tool includes beta support for inserting, updating, and deleting table rows using Partitioned DML.

October 22, 2018

Cloud Spanner multi-region instance configurations can now be created in a second multi-region instance configuration in North America (nam6).

October 10, 2018

Cloud Spanner now supports Data Manipulation Language (DML) statements, including Partitioned DML.

August 17, 2018

You can now use the REST API or the gcloud command-line tool to export and import Cloud Spanner databases.

July 12, 2018

Cloud Spanner now supports exporting and importing databases using the GCP Console.

July 10, 2018

Cloud Spanner regional instances can now be created in Los Angeles (us-west2).

June 11, 2018

Cloud Spanner regional instances can now be created in Finland (europe-north1).

June 06, 2018

Published new and updated documentation for designing and updating schemas:

May 10, 2018

Cloud Spanner regional instances can now be created in Singapore (asia-southeast1).

April 26, 2018

Cloud Spanner regional instances can now be created in Oregon (us-west1).

Cloud Spanner regional instances can now be created in South Carolina (us-east1).

April 24, 2018

The gcloud command-line tool includes beta support for inserting, updating, and deleting rows in a table.

March 28, 2018

Cloud Spanner now supports the commit timestamp column option that you can use to automatically write the commit timestamp of a transaction into a column.

March 15, 2018

Cloud Spanner regional instances can now be created in the Netherlands (europe-west4).

March 02, 2018

Cloud Spanner now supports reading and querying data in parallel with multiple workers using the client libraries for Node.js and Ruby.

February 27, 2018

Cloud Spanner now supports reading and querying data in parallel with multiple workers using the client libraries for C#, Go, Java, and PHP.

Cloud Spanner regional instances can now be created in Montréal (northamerica-northeast1).

February 20, 2018

Cloud Spanner now supports both Admin Activity and Data Access audit logs as a part of Stackdriver Logging.

January 31, 2018

Announced general availability of IAM custom roles for Cloud Spanner.

January 18, 2018

Cloud Spanner regional instances can now be created in Northern Virginia (us-east4) and Mumbai (asia-south1).

November 14, 2017

Cloud Spanner multi-region instance configurations are now available. Multi-region instances can now be created in one continent (nam3) or three continents (nam-eur-asia1).

June 15, 2017

Cloud Spanner regional instances can now be created in Tokyo (asia-northeast1).

May 16, 2017

Announced general availability of the Cloud Spanner API.

February 14, 2017

Initial Beta release of Cloud Spanner API.

The version of the gcloud command-line tool that supports Cloud Spanner is being rolled out. It is expected to be completely available by February 16, 2017.

The Cloud Spanner UI in the Google Cloud Platform Console is being rolled out and will be available shortly.