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.

August 10, 2026

Feature

Dynamic channel pooling (DCP) for gRPC channels in the Spanner Go and Java client libraries is generally available (GA).

DCP prevents performance issues from under-provisioned or over-provisioned channels and reduces configuration overhead. DCP is disabled by default.

For more information, see Configure the number of sessions and gRPC channels in the pools.

July 28, 2026

Feature

Spanner supports creating tables without defining primary keys. When you create a table without a primary key, Spanner creates a hidden rowid column that serves as the primary key. For more information, see Create a table without defining a primary key.

July 06, 2026

Feature

You can use Gemini in Spanner Studio to fix errors in your SQL queries. When you run a query that contains an error, you can click Fix to view a line-by-line comparison of your query and a recommended correction, along with an explanation of the change. This feature is available in Preview.

June 23, 2026

Feature

Spanner supports direct connectivity. When enabled, your application traffic is routed directly to Spanner servers, bypassing the Google Front End (GFE) servers. This can reduce your overall latency. Direct connectivity is generally available (GA).

June 15, 2026

Feature

May 27, 2026

Feature

Spanner Graph supports a suite of graph algorithms covering use cases such as fraud detection, entity resolution, and recommendations. You can invoke graph algorithms as built-in function calls in Spanner Graph queries. You can save your output to Cloud Storage or Spanner. This feature is available in Preview.

May 18, 2026

Feature

You can optimize Spanner Graph query performance by using factorized execution. If a graph pattern traversal generates duplicate intermediate results, add the @{factorize_mode} hint to the pattern traversal or at the query level to optimize the query.

For more information, see Use factorized execution to optimize queries.

May 15, 2026

Feature

Spanner Studio supports query parameters, which let you bind literal values to a templated SQL statement at query time in the Google Cloud console. For more information, see query parameters.

May 14, 2026

Feature

Spanner supports the FACTORIZED_MODE join hint. You can control which sides of a join to factorize (deduplicate) before executing the join by using the FACTORIZE_LEFT, FACTORIZE_RIGHT, or FACTORIZE_BOTH hint values. For more information, see Factorized mode.

Announcement

The Spanner change streams default retention period has been increased from 1 day to 7 days. This change affects both new and existing change streams that don't have a retention period explicitly set. You can always specify the retention period through create change stream or alter change stream DDL statements to override the default.

Feature

You can populate new PostgreSQL dialect databases in an existing Spanner instance from sample datasets that help you explore Spanner capabilities.

For more information, see Create and manage databases.

May 04, 2026

Feature

Spanner vector index and approximate nearest neighbor (ANN) distance functions are generally available (GA) for PostgreSQL databases.

April 21, 2026

Feature

Spanner full-text search supports custom dictionaries to create custom synonym mappings. You can use custom dictionaries with the SEARCH, SCORE, and SNIPPET functions.

April 20, 2026

Feature

The Spanner remote MCP server is generally available (GA). The Spanner remote MCP server lets you interact with Spanner instances from LLMs, AI applications, and AI-enabled development platforms.

Feature

You can use the Database Insights remote MCP server to analyze Spanner's performance and system metrics. This feature is generally available (GA).

Feature

You can now use Spanner Studio to visually create and manage a Spanner Graph schema. Visual modeling simplifies graph design by enabling you to map nodes and edges through an intuitive interface instead of creating manual DDL statements. This feature is available in Preview.

April 17, 2026

Feature

Repeatable read isolation is generally available. You can use it to reduce latency and transaction failure rates for workloads that have many reads contending with fewer writes. For more information, see Repeatable read isolation.

Feature

Spanner supports Gemini Cloud Assist investigation capabilities. You can create, run, and edit Gemini Cloud Assist investigations only if you have a Premium support contract.

For more information, see monitor and troubleshoot your Spanner instance with AI assistance.

Feature

Columnar engine for Spanner is now generally available (GA). Columnar engine is a storage technique used with analytical queries to make scans up to 200 times faster on live operational data without affecting transaction workloads. This release enables support for Columnar Engine in databases that use the Postgres interface.

For more information, see the Columnar engine for Spanner overview.

April 13, 2026

Feature

Spanner supports importing data from Cloud SQL for MySQL. This feature lets you migrate the schema and perform a one-time bulk data load to evaluate Spanner for your use case. For more information, see Import from Cloud SQL to Spanner.

This feature is generally available.

April 06, 2026

Feature

The QueryData tool lets you to query the data in your database using conversational language and build data agents. For more information, see QueryData tool overview. This feature is available in (Preview).

The preview release increases the accuracy of SQL generation with value search queries which match values and their context within a database. Value search queries trigger automatically.

March 30, 2026

Feature

Spanner offers conversational analytics, which lets users query their operational data using natural language. This feature is powered by the Conversational Analytics API, which can help you translate complex human dialog into precise database queries to provide actionable insights. This feature is in Preview. For more information, see Conversational analytics for Spanner overview.

Feature

You can create BigQuery non-incremental materialized views over Spanner data to improve query performance by periodically caching results. This feature is generally available (GA).

Feature

You can use Cloud resource connections with EXPORT DATA statements to reverse ETL (extract, transform, load) BigQuery data to Spanner. This feature is generally available (GA).

March 25, 2026

Feature

The Spark Spanner connector supports writing a Spark Dataframe to a Spanner table using the Spark data source API. For more information, see Use the Spark Spanner connector.

March 19, 2026

Feature

Spanner now offers AI functions, as a part of machine learning functions, that help you perform semantic operations using Large Language Models (LLMs) in SQL to classify, evaluate, and rank your data:

  • AI.CLASSIFY: Classify a natural language input into user-defined categories.
  • AI.IF: Evaluate a condition described in natural language.
  • AI.SCORE: Rate natural language input and assign it a score.

March 10, 2026

Feature

Spanner supports the optimistic concurrency control mode. Optimistic concurrency control is suitable for transactional workloads with low read-write contention. It assumes that conflicts in transactions are rare. Reads and queries within a read-write transaction proceed without acquiring locks. For more information, see Concurrency control.

March 04, 2026

March 03, 2026

Feature

Spanner supports the ON CONFLICT clause for GoogleSQL INSERT statements to handle unique constraint violations. For more information, see ON CONFLICT DO NOTHING and ON CONFLICT DO UPDATE.

February 27, 2026

Feature

Spanner supports using the pending commit timestamp function as a default value and an ON UPDATE expression for column definitions. For more information, see the GoogleSQL ON UPDATE clause and the PostgreSQL ON UPDATE clause.

February 26, 2026

Feature

Spanner provides JSON string versions of the following statistics columns for PostgreSQL-dialect databases:

You can use these columns to retrieve statistics in JSON format from the SPANNER_SYS tables.

February 25, 2026

Feature

Spanner supports the following:

Feature

Spanner supports the following managed autoscaler features:

For more information, see Managed autoscaler.

February 24, 2026

Feature

Spanner provides UNSPLITTABLE_REASONS in hotspot insights and split statistics views to detect when splits can't be split further. Unsplittable reasons can help you identify schema anti-patterns that require intervention. For more information, see Find hotspots in your database and Split statistics.

This feature is generally available (GA).

February 17, 2026

Deprecated

Control of MCP use with organization policies is deprecated. After March 17, 2026, organization policies that use the gcp.managed.allowedMCPServices constraint won't work, and you can control MCP use with IAM deny policies.

For more information about controlling MCP use, see Control MCP use with IAM.

Change

After March 17, 2026, when you enable Spanner, the Spanner MCP server is automatically enabled.

Announcement

New best practices are available for securing generative AI agents using Model Context Protocol (MCP) with Google Cloud databases. This guide covers key security measures like least privilege, native database controls, and secure agent design to help you build safer AI applications. For more information, see Best practices for securing agent interactions with Model Context Protocol.

This feature is in Preview.

February 10, 2026

Feature

You can use the Spanner remote MCP server to interact with Spanner instances and databases from agentic AI applications such as Gemini CLI, agent mode in Gemini Code Assist, or Claude.ai.

This feature is in Preview.

February 09, 2026

Feature

You can right-click a node in a Spanner Graph query visualization to access options like expanding or collapsing adjacent nodes, highlighting or hiding nodes, and viewing only a node's neighbors.

For more information, see Work with visualizations.

February 02, 2026

Feature

You can create and host remote functions in Cloud Run and call them from Spanner queries using the GoogleSQL dialect. This feature is in Preview.

January 30, 2026

Feature

Spanner supports the UUID data type for both GoogleSQL and PostgreSQL-dialect databases. This data type stores universally unique identifiers (UUIDs) as 128-bit values.

You can use the GoogleSQL NEW_UUID() function or the PostgreSQL gen_random_uuid() to function to create UUID values.

For more information, see Use a universally unique identifier (UUID).

January 28, 2026

Feature

Spanner supports the following compression functions:

These functions use the Zstandard (Zstd) lossless data compression algorithm to compress and decompress STRING or BYTES values. For more information, see Compression functions.

January 26, 2026

Feature

Columnar engine for Spanner is now in Public Preview. Columnar engine is a storage technique used with analytical queries to speed up scans up to 200 times faster on live operational data without affecting transaction workloads. In databases or tables enabled with columnar engine, this release:

  • Supports the ability to execute columnar queries automatically and perform faster columnar scans using vectorized execution.
  • Provides a new major compaction API to accelerate the conversion of non-columnar data into columnar data.

For more information, see the Columnar engine for Spanner overview.

January 20, 2026

Feature

You can create Spanner regional instance configurations in Bangkok, Thailand (asia-southeast3). For more information, see Google Cloud locations and Spanner pricing.

January 13, 2026

Feature

Several updates have been made to full-text search:

January 05, 2026

Feature

You can use SQL views to create a graph. For requirements, considerations, and the benefits of using SQL views to create a graph, see Overview of graphs created from SQL views. To learn how to create a graph from views, see Create a property graph from SQL views.

December 18, 2025

Feature

The GoogleSQL function ELEMENT_DEFINITION_NAME is available. ELEMENT_DEFINITION_NAME returns the name of the graph element table underlying a graph element.

December 17, 2025

Feature

You can build data agents that interact with the data in your database using conversational language. Use these data agents as tools to empower your applications. For more information, see Data agents overview. This feature is available in Preview, and access to it requires a sign-up.

December 12, 2025

Feature

Spanner supports the PostgreSQL generate_series() function. You can use this function to create a sequence of numbers. For more information, see Set returning functions.

December 11, 2025

Feature

Spanner Data Boost includes a the Data Boost concurrent requests in milli-operations per second per region quota, which applies fine-grained control over how multiple concurrent requests for your project share Data Boost resources. Instead of counting 1 request against 1 unit of quota under the existing concurrency quota regime, Data Boost splits a request at a granularity of 1/1000, allowing for a greater number of concurrent requests to make progress. For more information, see Quotas and limits.

Feature

Spanner Graph supports using the ANY CHEAPEST path search prefix in a query to return the path with the lowest total compute cost. For more information, see Path search prefix in the Spanner Graph Language reference.

December 10, 2025

Feature

Spanner supports the following new columns in the SPANNER_SYS oldest active queries table:

  • CLIENT_IP_ADDRESS
  • API_CLIENT_HEADER
  • USER_AGENT_HEADER
  • SERVER_REGION
  • PRIORITY
  • TRANSACTION_TYPE

You can also view these columns in the Spanner query insights page on the Google Cloud console. For more information, see Monitor active queries.

December 03, 2025

Change

String values in Spanner Studio query results are enclosed in double quotes, providing a visual cue to differentiate string values from other data types. This enhancement is for display purposes only and doesn't affect how data is exported or accessed.

November 20, 2025

Feature

Query optimizer version 8 is the default version for Spanner.

November 14, 2025

Feature

The GoogleSQL function IS_FIRST is available for graph queries. IS_FIRST returns true if a row is in the first k rows (1-based) within a window. You can use IS_FIRST in graph queries to limit traversed edges to improve query performance. You can also use IS_FIRST to sample intermediate nodes to optimize multi-hop queries.

November 11, 2025

Feature

Spanner Studio added support for several export options for your query results. You can export to a CSV or JSON file, Google Sheets, or copy the results to a clipboard. For more information, see Create, modify, and query your data.

November 10, 2025

Feature

Spanner automatically provides recommendations to apply schema design best practices to your databases. You can view these schema issue recommendations on the Spanner Studio page for your database. For more information, see View schema design best practice recommendations. This feature is in Preview.

October 31, 2025

Libraries

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

Java

Changes for google-cloud-spanner

6.102.1 (2025-10-23)

Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.63.0 (c1a8238)
  • Do a quick check if the application runs on Google Cloud (#4163) (b9d7daf)
  • Migrate away from GoogleCredentials.fromStream() usages (#4151) (94d0474)
Dependencies
  • Update actions/checkout action to v5 (#4158) (b32ebcf)
  • Update actions/checkout action to v5 (#4161) (02a17c6)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.53.0 (#4178) (24fe194)
  • Update dependency net.bytebuddy:byte-buddy to v1.17.8 (#4154) (c911381)
  • Update dependency net.bytebuddy:byte-buddy-agent to v1.17.8 (#4155) (3075df7)
  • Update googleapis/sdk-platform-java action to v2.63.0 (#4179) (5f48191)
Documentation

6.102.0 (2025-10-08)

Features
  • Add connection property for gRPC interceptor provider (#4149) (deb8dff)
  • Support statement_timeout in connection url (#4103) (542c6aa)
Bug Fixes
  • Automatically set default_sequence_kind for CREATE SEQUENCE (#4105) (3beea6a)
  • deps: Update the Java code generator (gapic-generator-java) to 2.62.3 (7047a3a)
Dependencies
  • Update actions/checkout action to v5 (#4069) (4c88eb9)
  • Update actions/checkout action to v5 (#4106) (14ebdb3)
  • Update actions/setup-java action to v5 (#4071) (e23134a)
  • Update all dependencies (#4099) (b262edc)
  • Update dependency com.google.api.grpc:grpc-google-cloud-monitoring-v3 to v3.77.0 (#4117) (2451ca2)
  • Update dependency com.google.api.grpc:proto-google-cloud-monitoring-v3 to v3.77.0 (#4143) (6c9dc26)
  • Update dependency com.google.api.grpc:proto-google-cloud-trace-v1 to v2.76.0 (#4144) (d566a42)
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.77.0 (#4145) (8917c05)
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.77.0 (#4146) (4ebea1a)
  • Update dependency com.google.cloud:google-cloud-trace to v2.76.0 (#4147) (4b1d4af)
  • Update dependency com.google.cloud:google-cloud-trace to v2.76.0 (#4148) (8f91a89)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.52.3 (#4107) (8a8a042)
  • Update dependency org.json:json to v20250517 (#3881) (5658c83)
  • Update googleapis/sdk-platform-java action to v2.62.3 (#4108) (65913ec)

Node.js

Changes for @google-cloud/spanner

8.2.2 (2025-10-07)

Bug Fixes

Python

Changes for google-cloud-spanner

3.59.0 (2025-10-18)

Features
  • spanner: Add lazy decode to partitioned query (#1411) (a09961b)
Bug Fixes
  • spanner: Resolve TypeError in metrics resource detection (#1446) (7266686)
Documentation
  • Add snippet for Repeatable Read configuration at client and transaction (#1326) (58e2406)

October 29, 2025

Feature

Named schemas are supported in Spanner Graph. For more information, see Spanner Graph schema overview.

October 21, 2025

Feature

Schema object drop protection is generally available. This feature protects schema objects such as tables, indexes, and columns from accidental deletion.

October 20, 2025

Feature

You can use the GoogleSQL ML.PREDICT function to convert your natural language query text into an embedding and perform approximate nearest neighbors (ANN) vector search.

October 02, 2025

Feature

You can use repeatable read isolation (in Preview) to reduce latency and transaction abort rates for workloads that have many reads contending with fewer writes. For more information, see Repeatable read isolation.

October 01, 2025

Feature

The Spanner CLI is generally available. Bundled with Google Cloud CLI, you can use the Spanner command-line interface to open an interactive session or automate SQL executions from the shell or an input file.

September 30, 2025

Libraries

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

Go

Changes for spanner/admin/database/apiv1

1.86.0 (2025-09-26)

Features
  • spanner: Support "readOnly" column tag parsing for Go struct operations (#12895) (003abca)
Bug Fixes

1.85.0 (2025-08-28)

Features
  • spanner: Enable multiplex sessions by default for all operations (#12734) (0491ba6)
Performance Improvements
  • spanner: Improve mutationProto allocations and performance (#12740) (2a4add5)

1.85.1 (2025-09-12)

Bug Fixes
  • spanner: Disable afe_connectivity_error_count metric (#12866) (baab714)
Documentation
  • spanner: A comment for enum Kind is changed (51583bd)
  • spanner: A comment for enum Priority is changed (51583bd)
  • spanner: A comment for enum value LOCK_HINT_EXCLUSIVE in enum LockHint is changed (51583bd)
  • spanner: A comment for enum value LOCK_HINT_UNSPECIFIED in enum LockHint is changed (51583bd)
  • spanner: A comment for enum value ORDER_BY_PRIMARY_KEY in enum OrderBy is changed (51583bd)
  • spanner: A comment for enum value ORDER_BY_UNSPECIFIED in enum OrderBy is changed (51583bd)
  • spanner: A comment for enum value PROFILE in enum QueryMode is changed (51583bd)
  • spanner: A comment for enum value SERIALIZABLE in enum IsolationLevel is changed (51583bd)
  • spanner: A comment for field approximate_last_use_time in message .google.spanner.v1.Session is changed (51583bd)
  • spanner: A comment for field auto_failover_disabled in message .google.spanner.v1.DirectedReadOptions is changed (51583bd)
  • spanner: A comment for field columns in message .google.spanner.v1.Mutation is changed (51583bd)
  • spanner: A comment for field data_boost_enabled in message .google.spanner.v1.ExecuteSqlRequest is changed (51583bd)
  • spanner: A comment for field data_boost_enabled in message .google.spanner.v1.ReadRequest is changed (51583bd)
  • spanner: A comment for field exclude_replicas in message .google.spanner.v1.DirectedReadOptions is changed (51583bd)
  • spanner: A comment for field exclude_txn_from_change_streams in message .google.spanner.v1.BatchWriteRequest is changed (51583bd)
  • spanner: A comment for field include_replicas in message .google.spanner.v1.DirectedReadOptions is changed (51583bd)
  • spanner: A comment for field index in message .google.spanner.v1.PlanNode is changed (51583bd)
  • spanner: A comment for field insert_or_update in message .google.spanner.v1.Mutation is changed (51583bd)
  • spanner: A comment for field key_set in message .google.spanner.v1.Mutation is changed (51583bd)
  • spanner: A comment for field key_set in message .google.spanner.v1.PartitionReadRequest is changed (51583bd)
  • spanner: A comment for field key_set in message .google.spanner.v1.ReadRequest is changed (51583bd)
  • spanner: A comment for field kind in message .google.spanner.v1.PlanNode is changed (51583bd)
  • spanner: A comment for field last_statement in message .google.spanner.v1.ExecuteSqlRequest is changed (51583bd)
  • spanner: A comment for field last_statements in message .google.spanner.v1.ExecuteBatchDmlRequest is changed (51583bd)
  • spanner: A comment for field limit in message .google.spanner.v1.ReadRequest is changed (51583bd)
  • spanner: A comment for field location in message .google.spanner.v1.DirectedReadOptions is changed (51583bd)
  • spanner: A comment for field max_commit_delay in message .google.spanner.v1.CommitRequest is changed (51583bd)
  • spanner: A comment for field max_partitions in message .google.spanner.v1.PartitionOptions is changed (51583bd)
  • spanner: A comment for field multiplexed in message .google.spanner.v1.Session is changed (51583bd)
  • spanner: A comment for field mutation_key in message .google.spanner.v1.BeginTransactionRequest is changed (51583bd)
  • spanner: A comment for field optimizer_statistics_package in message .google.spanner.v1.ExecuteSqlRequest is changed (51583bd)
  • spanner: A comment for field optimizer_version in message .google.spanner.v1.ExecuteSqlRequest is changed (51583bd)
  • spanner: A comment for field order_by in message .google.spanner.v1.ReadRequest is changed (51583bd)
  • spanner: A comment for field param_types in message .google.spanner.v1.ExecuteBatchDmlRequest is changed (51583bd)
  • spanner: A comment for field param_types in message .google.spanner.v1.ExecuteSqlRequest is changed (51583bd)
  • spanner: A comment for field param_types in message .google.spanner.v1.PartitionQueryRequest is changed (51583bd)
  • spanner: A comment for field params in message .google.spanner.v1.ExecuteBatchDmlRequest is changed (51583bd)
  • spanner: A comment for field params in message .google.spanner.v1.ExecuteSqlRequest is changed (51583bd)
  • spanner: A comment for field params in message .google.spanner.v1.PartitionQueryRequest is changed (51583bd)
  • spanner: A comment for field partition_size_bytes in message .google.spanner.v1.PartitionOptions is changed (51583bd)
  • spanner: A comment for field partition_token in message .google.spanner.v1.ExecuteSqlRequest is changed (51583bd)
  • spanner: A comment for field partition_token in message .google.spanner.v1.Partition is changed (51583bd)
  • spanner: A comment for field partition_token in message .google.spanner.v1.ReadRequest is changed (51583bd)
  • spanner: A comment for field plan_nodes in message .google.spanner.v1.QueryPlan is changed (51583bd)
  • spanner: A comment for field precommit_token in message .google.spanner.v1.CommitRequest is changed (51583bd)
  • spanner: A comment for field precommit_token in message .google.spanner.v1.ExecuteBatchDmlResponse is changed (51583bd)
  • spanner: A comment for field ranges in message .google.spanner.v1.KeySet is changed (51583bd)
  • spanner: A comment for field replace in message .google.spanner.v1.Mutation is changed (51583bd)
  • spanner: A comment for field request_options in message .google.spanner.v1.BeginTransactionRequest is changed (51583bd)
  • spanner: A comment for field request_tag in message .google.spanner.v1.RequestOptions is changed (51583bd)
  • spanner: A comment for field return_commit_stats in message .google.spanner.v1.CommitRequest is changed (51583bd)
  • spanner: A comment for field seqno in message .google.spanner.v1.ExecuteBatchDmlRequest is changed (51583bd)
  • spanner: A comment for field seqno in message .google.spanner.v1.ExecuteSqlRequest is changed (51583bd)
  • spanner: A comment for field session_count in message .google.spanner.v1.BatchCreateSessionsRequest is changed (51583bd)
  • spanner: A comment for field session_template in message .google.spanner.v1.BatchCreateSessionsRequest is changed (51583bd)
  • spanner: A comment for field short_representation in message .google.spanner.v1.PlanNode is changed (51583bd)
  • spanner: A comment for field single_use_transaction in message .google.spanner.v1.CommitRequest is changed (51583bd)
  • spanner: A comment for field sql in message .google.spanner.v1.PartitionQueryRequest is changed (51583bd)
  • spanner: A comment for field transaction in message .google.spanner.v1.ExecuteSqlRequest is changed (51583bd)
  • spanner: A comment for field transaction in message .google.spanner.v1.PartitionQueryRequest is changed (51583bd)
  • spanner: A comment for field transaction_tag in message .google.spanner.v1.RequestOptions is changed (51583bd)
  • spanner: A comment for field values in message .google.spanner.v1.Mutation is changed (51583bd)
  • spanner: A comment for field variable in message .google.spanner.v1.PlanNode is changed (51583bd)
  • spanner: A comment for message DirectedReadOptions is changed (51583bd)
  • spanner: A comment for message DirectedReadOptions is changed (51583bd)
  • spanner: A comment for message DirectedReadOptions is changed (51583bd)
  • spanner: A comment for message Mutation is changed (51583bd)
  • spanner: A comment for message PartitionOptions is changed (51583bd)
  • spanner: A comment for message PlanNode is changed (51583bd)
  • spanner: A comment for method BatchWrite in service Spanner is changed (51583bd)
  • spanner: A comment for method Commit in service Spanner is changed (51583bd)
  • spanner: A comment for method CreateSession in service Spanner is changed (51583bd)
  • spanner: A comment for method DeleteSession in service Spanner is changed (51583bd)
  • spanner: A comment for method ExecuteSql in service Spanner is changed (51583bd)
  • spanner: A comment for method ExecuteStreamingSql in service Spanner is changed (51583bd)
  • spanner: A comment for method GetSession in service Spanner is changed (51583bd)
  • spanner: A comment for method PartitionQuery in service Spanner is changed (51583bd)
  • spanner: A comment for method PartitionRead in service Spanner is changed (51583bd)
  • spanner: A comment for method Read in service Spanner is changed (51583bd)
  • spanner: A comment for method Rollback in service Spanner is changed (51583bd)

Java

Changes for google-cloud-spanner

6.99.0 (2025-08-26)

Features
  • Support read lock mode for R/W transactions (#4010) (7d752d6)
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.62.0 (52c68db)
  • GetCommitResponse() should return error if tx has not committed (#4021) (a2c179f)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.52.0 (#4024) (7e3294f)

6.100.0 (2025-09-11)

Features
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.62.1 (e9773a7)
  • Disable afe_connectivity_error_count metric (#4041) (f89c1c0)
  • Skip session delete in case of multiplexed sessions (#4029) (8bcb09d)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.52.1 (#4034) (13bfa7c)
Documentation
  • A comment for field ranges in message .google.spanner.v1.KeySet is changed (e9773a7)

6.101.1 (2025-09-26)

Bug Fixes
  • Potential NullPointerException in LocalConnectionChecker (#4092) (3b9f597)

6.101.0 (2025-09-26)

Features
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.62.2 (8d6cbf6)
  • Potential NullPointerException in Value#hashCode (#4046) (74abb34)
  • Recalculate remaining statement timeout after retry (#4053) (5e26596)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.52.2 (#4057) (d782aff)

Node.js

Changes for @google-cloud/spanner

8.2.0 (2025-08-26)

Features
  • spanner: Add support for multiplexed session for r/w transactions (#2351) (6a9f1a2)
  • spanner: Support setting read lock mode (#2388) (bd66f61)
Bug Fixes
  • deps: Add uuid to dependencies (#2376) (0b2060b)
  • deps: Update dependency @grpc/proto-loader to ^0.8.0 (#2354) (75dc4da)
  • deps: Update dependency google-gax to v5.0.1 (#2362) (9223470)
  • Provide option to disable built in metrics (#2380) (b378e2e)
  • Race condition among transactions when running parallely (#2369) (f8b6f63)

8.2.1 (2025-09-12)

Bug Fixes
  • deps: Update dependency google-gax to v5.0.3 (#2371) (8a175e2)
  • Disable afe_connectivity_error_count metric (af72d70)

Python

Changes for google-cloud-spanner

3.58.0 (2025-09-10)

Features
Dependencies
  • Remove Python 3.7 and 3.8 as supported runtimes (#1395) (fc93792)

September 29, 2025

Feature

You can create BigQuery non-incremental materialized views over Spanner data to improve query performance by periodically caching results. This feature is in Preview.

September 25, 2025

Feature

The Cassandra interface for Spanner is generally available. The Cassandra interface lets you take advantage of Spanner's fully managed, scalable, and highly available infrastructure using familiar Cassandra tools and syntax. For more information, see Cassandra interface, Migrate from Cassandra to Spanner, and Connect to Spanner using the Cassandra interface.

September 23, 2025

Feature

You can use read lease regions to reduce latency for strong reads in multi-region or dual-region instances. Read leases use designated non-leader, read-write or read-only regions to serve strong reads locally, eliminating the network round trip to the leader region that is typically required. This feature is generally available (GA).

Feature

You can use the dedicated Gemini CLI extension for Spanner to execute SQL statements and query your Spanner instance using natural language controls.

September 22, 2025

Feature

You can run federated queries against PostgreSQL dialect databases in Spanner using BigQuery external datasets using GoogleSQL; this includes cross-region federated queries. This feature is generally available (GA).

September 17, 2025

Feature

Spanner Graph support of schemaless schemas is generally available (GA). For more information, see Manage schemaless data with Spanner Graph.

September 03, 2025

Feature

You can import your own data into a Spanner database by using a CSV file, a MySQL dump file, or a PostgreSQL dump file.

Additionally, you can populate new databases in an existing Spanner instance from sample datasets that help you explore Spanner capabilities such as its relational model, full-text search, vector search, or Spanner Graph.

For more information, see Create and manage databases.

August 29, 2025

Libraries

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

Go

Changes for spanner/admin/database/apiv1

1.84.0 (2025-08-05)

Features
  • spanner/adapter: Add last field in AdaptMessageResponse for internal optimization usage (c574e28)
  • spanner/admin/database: Proto changes for an internal api (eeb4b1f)
  • spanner: A new field snapshot_timestamp is added to message .google.spanner.v1.CommitResponse (ac4970b)
  • spanner: Add Google Cloud standard otel attributes (#11652) (f59fcff)
Bug Fixes
  • spanner: Context cancel in traces in case of skipping trailers (#12635) (509dc90)
  • spanner: Enforce only one resource header (#12618) (4e04b7e)
  • spanner: Fix blind retry for ResourceExhausted (#12523) (f9b6e88)
  • spanner: Remove stream wrapper for direct path check (#12622) (88a36cd)
Documentation
  • spanner: A comment for enum value OPTIMISTIC in enum ReadLockMode is changed (ac4970b)
  • spanner: A comment for enum value PESSIMISTIC in enum ReadLockMode is changed (ac4970b)
  • spanner: A comment for enum value READ_LOCK_MODE_UNSPECIFIED in enum ReadLockMode is changed (ac4970b)
  • spanner: A comment for field commit_stats in message .google.spanner.v1.CommitResponse is changed (ac4970b)
  • spanner: A comment for field exclude_txn_from_change_streams in message .google.spanner.v1.TransactionOptions is changed (ac4970b)
  • spanner: A comment for field multiplexed_session_previous_transaction_id in message .google.spanner.v1.TransactionOptions is changed (ac4970b)
  • spanner: A comment for field precommit_token in message .google.spanner.v1.CommitResponse is changed (ac4970b)
  • spanner: A comment for message .google.spanner.v1.MultiplexedSessionPrecommitToken is changed (ac4970b)
  • spanner: A comment for message .google.spanner.v1.TransactionOptions is changed (ac4970b)

1.84.1 (2025-08-06)

Features
Miscellaneous Chores

DO NOT USE This version is retracted due to https://github.com/googleapis/google-cloud-go/issues/12659, use version >=v1.84.1

Java

Changes for google-cloud-spanner

6.98.0 (2025-07-31)

Features
  • Proto changes for an internal api (675e90b)
  • spanner: A new field snapshot_timestamp is added to message .google.spanner.v1.CommitResponse (675e90b)
  • Support Exemplar (#3997) (fcf0a01)
  • Use multiplex sessions for RW and Partition Ops (#3996) (a882204)
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.60.2 (675e90b)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.50.2 (#4004) (986c0e0)

6.98.1 (2025-08-11)

Bug Fixes
  • Add missing span.end calls for AsyncTransactionManager (#4012) (1a4adb4)
  • deps: Update the Java code generator (gapic-generator-java) to 2.61.0 (8156ef3)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.51.0 (#4013) (4e90c29)

Node.js

Changes for @google-cloud/spanner

8.1.0 (2025-07-28)

Features
  • Add Custom OpenTelemetry Exporter in for Service Metrics (#2272) (610d1b9)
  • Add methods from gax to cache proto root and process custom error details (#2330) (1b3931a)
  • Add metrics tracers (#2319) (192bf2b)
  • Add support for AFE latency metrics (#2348) (0666f05)
  • Add throughput_mode to UpdateDatabaseDdlRequest to be used by Spanner Migration Tool. See https://github.com/GoogleCloudPlatform/spanner-migration-tool (#2304) (a29af56)
  • Operation, Attempt, and GFE metrics (#2328) (646e6ea)
  • Proto changes for an internal api (#2356) (380e770)
  • spanner: A new field snapshot_timestamp is added to message .google.spanner.v1.CommitResponse (#2350) (0875cd8)
  • spanner: Add new change_stream.proto (#2315) (57d67be)
  • spanner: Add tpc support (#2333) (a381cab)
  • Track precommit token in r/w apis(multiplexed session) (#2312) (3676bfa)
Bug Fixes
Performance Improvements
  • Skip gRPC trailers for StreamingRead & ExecuteStreamingSql (#2313) (8bd0781)

Python

Changes for google-cloud-spanner

3.57.0 (2025-08-14)

Features
  • Support configuring logger in dbapi kwargs (#1400) (ffa5c9e)

August 25, 2025

Feature

You can terminate multiple active queries in your Spanner instance. Active queries are long-running queries that might affect the performance of your instance. Monitoring these queries can help you identify causes of instance latency and high CPU usage. Terminating queries might help free up resources and reduce the load on your instance.

For more information, see Monitor active queries.

August 14, 2025

Feature

You can use cross region federated queries to query Spanner tables from regions other than the source BigQuery region. These cross region queries incur additional Spanner network egress charges. This feature is generally available (GA).

August 13, 2025

Feature

Spanner offers a predefined library of over 80 MySQL functions that you can install in a database. These functions let you perform operations that are common in the MySQL environments directly with Spanner. They can help reduce the changes required when migrating workloads from MySQL to Spanner.

These functions are packaged as user-defined functions that can be installed from an open-source DDL script hosted on GitHub. For more information, see Install MySQL functions in Spanner.

August 05, 2025

Feature

Columnar engine for Spanner is in Preview. Columnar engine is a storage technique used with analytics queries to speed up scans. Spanner columnar engine accelerates analytical query performance on live operational data by up to 200 times without affecting transaction workloads. This eliminates the need for ETL into separate data warehouses while maintaining strong consistency. For more information, see the Columnar engine for Spanner overview.

August 01, 2025

Feature

When you create the free trial instance using the Google Cloud console, Spanner creates and preloads it with a sample database for an ecommerce store. You can use the free trial instance to explore the dataset and learn about Spanner capabilities with pre-loaded queries.

For more information, see Spanner free trial instances.

July 31, 2025

Feature
Libraries

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

Java

Changes for google-cloud-spanner

6.96.1 (2025-06-30)

Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.59.0 (2836042)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.50.0 (#3925) (1372bbd)

6.97.0 (2025-07-10)

Features
Bug Fixes

6.97.1 (2025-07-15)

Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.50.1 (#3992) (69ffd72)
  • Update googleapis/sdk-platform-java action to v2.60.1 (#3926) (7001b7f)

Python

Changes for google-cloud-spanner

3.56.0 (2025-07-24)

Features
  • Add support for multiplexed sessions - read/write (#1389) (ce3f230)
  • Add support for multiplexed sessions (#1383) (21f5028)
  • Default enable multiplex session for all operations unless explicitly set to false (#1394) (651ca9c)
  • spanner: Add new change_stream.proto (#1382) (ca6255e)
Performance Improvements
  • Skip gRPC trailers for StreamingRead & ExecuteStreamingSql (#1385) (cb25de4)

July 14, 2025

Feature

Spanner Data Boost supports data stored on hard disk drives (HDD). This feature is generally available (GA).

July 01, 2025

Change

The performance of the ANY and the ANY SHORTEST algorithms have been improved. These algorithms are used to find Spanner Graph paths. For more information, see ANY and ANY SHORTEST paths.

June 30, 2025

Feature

Spanner supports the following new client-side metrics to the Cloud Spanner API frontend (AFE) and Google frontend (GFE) for Java and Go applications:

  • AFE connectivity error count
  • AFE latencies
  • GFE connectivity error count
  • GFE latencies

These metrics can be used with server-side metrics to enable faster troubleshooting of performance and latency issues. For more information, see Client-side metrics descriptions.

Feature

To troubleshoot or understand your Spanner queries better, you can download and save your query execution plan as a JSON file. You can use the content of this file to see a visualization of the query execution plan in Spanner Studio. For more information, see Take a tour of the query plan visualizer.

Libraries

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

Go

Changes for spanner/admin/database/apiv1

1.83.0 (2025-06-27)

Features
  • spanner/spansql: Add support for TOKENIZE_JSON. (#12338) (72225a5)
  • spanner/spansql: Support EXISTS in query parsing (#12439) (f5cb67b)
  • spanner: Add new change_stream.proto (40b60a4)
  • spanner: Add option for how to call BeginTransaction (#12436) (2cba13b)
  • spanner: Wrap proto mutation (#12497) (e655889)
Bug Fixes

Java

Changes for google-cloud-spanner

6.95.0 (2025-06-05)

Features
Bug Fixes
Dependencies
  • Update dependency io.opentelemetry:opentelemetry-bom to v1.50.0 (#3887) (94b879c)

6.95.1 (2025-06-06)

Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.49.0 (#3909) (3de8502)
  • Update googleapis/sdk-platform-java action to v2.59.0 (#3910) (aed8bd6)

6.96.0 (2025-06-27)

Features
  • Allow JDBC to configure directpath for connection (#3929) (d754f1f)
  • Support getOrNull and getOrDefault in Struct (#3914) (1dc5a3e)
  • Use multiplexed sessions for read-only transactions (#3917) (37fdc27)
Bug Fixes
  • Allow zero durations to be set for connections (#3916) (43ea4fa)
Documentation
  • Add snippet for Repeatable Read configuration at client and transaction (#3908) (ff3d212)
  • Update SpannerSample.java to align with best practices (#3625) (7bfc62d)

June 24, 2025

Feature

You can directly connect and interact with your Spanner database using the Spanner CLI, an interactive shell for Spanner that is built into the Google Cloud CLI. You can use the Spanner CLI to start an interactive session and automate SQL executions from the shell or an input file. This feature is available in Preview. For more information, see Spanner CLI quickstart.

June 20, 2025

Feature

A free trial creation workflow is available that makes it easier to start your Spanner free trial. With a free trial instance, you can learn and explore Spanner for 90 days at no cost. You can create relational (GoogleSQL and PostgreSQL) databases and deploy NoSQL models (Spanner Graph, vector search, and full-text search) in a single, fully managed database. For more information, see Spanner free trial instances overview.

June 11, 2025

Feature

Column operations statistics are generally available. They help you get insights into and monitor the usage of columns in your database. For more information, see Column operations statistics.

June 02, 2025

Feature
Libraries

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

Go

Changes for spanner/admin/database/apiv1

1.81.0 (2025-05-09)

Features
  • spanner/spansql: Add support for DROP SEARCH INDEX and ALTER SEARCH INDEX (#11961) (952cd7f)
Bug Fixes
  • spanner: Row mismatch in SelectAll using custom type (#12222) (ce6a23a)

1.81.1 (2025-05-15)

Features
  • spanner: Add support of AFE and GRPC metrics in client-side metrics (#12067) (7b77038)

1.82.0 (2025-05-20)

Features
  • spanner/admin/database: Add throughput_mode to UpdateDatabaseDdlRequest to be used by Spanner Migration Tool. See https (#12287) (2a9d8ee)

Java

Changes for google-cloud-spanner

6.92.0 (2025-04-29)

Features
  • [Internal] client-side metrics for afe latency and connectivity error (#3819) (a8dba0a)
  • Support begin with AbortedException for manager interface (#3835) (5783116)
  • Add throughput_mode to UpdateDatabaseDdlRequest to be used by Spanner Migration Tool. See https://github.com/GoogleCloudPlatform/spanner-migration-tool (3070f1d)
  • Enable AFE and gRPC metrics for DP (#3852) (203baae)
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.56.2 (11bfd90)
  • deps: Update the Java code generator (gapic-generator-java) to 2.58.0 (3070f1d)
  • Remove trailing semicolons in DDL (#3879) (ca3a67d)
  • Change server timing duration attribute to float as per w3c (#3851) (da8dd8d)
  • deps: Update the Java code generator (gapic-generator-java) to 2.57.0 (23b985c)
  • Non-ASCII Unicode characters in code (#3844) (85a0820)
  • Only close and return sessions once (#3846) (32b2373)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.46.2 (#3836) (2ee7f97)

6.93.0 (2025-05-09)

  • Update dependency com.google.cloud:sdk-platform-java-config to v3.48.0 (#3869) (afa17f7)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.48.0 (#3880) (f3b00b6)
  • Update dependency com.google.cloud.opentelemetry:exporter-metrics to v0.34.0 (#3861) (676b14f)
  • Update dependency commons-io:commons-io to v2.19.0 (#3863) (80a6af8)
  • Update dependency io.opentelemetry:opentelemetry-bom to v1.50.0 (#3865) (ae63050)
  • Update googleapis/sdk-platform-java action to v2.58.0 (#3870) (d1e45fa)
  • Update opentelemetry.version to v1.50.0 (#3866) (f7e09b8)
Documentation
  • Add samples for unnamed (positional) parameters (#3849) (035cadd)

Node.js

Changes for @google-cloud/spanner

8.0.0 (2025-05-12)

⚠ BREAKING CHANGES
  • remove the arrify package (#2292)
  • migrate to Node 18 (#2271)
Features
  • Add promise based signatures for createQueryPartitions (#2284) (255d8a6)
  • Add promise based signatures on createReadPartitions (#2300) (7b8a1f7)
  • Support promise based signatures for execute method (#2301) (bb857e1)
Bug Fixes
  • deps: Update dependency @google-cloud/kms to v5 (#2289) (1ccb505)
  • deps: Update dependency @google-cloud/precise-date to v5 (#2290) (44f7575)
  • deps: Update dependency big.js to v7 (#2286) (0911297)
Miscellaneous Chores

Python

Changes for google-cloud-spanner

3.54.0 (2025-04-28)

Features
Bug Fixes
  • Improve client-side regex statement parser (#1328) (b3c259d)

3.55.0 (2025-05-28)

Features
  • Add a last field in the PartialResultSet (d532d57)
  • Add support for multiplexed sessions (#1381) (97d7268)
  • Add throughput_mode to UpdateDatabaseDdlRequest to be used by Spanner Migration Tool. See https://github.com/GoogleCloudPlatform/spanner-migration-tool (d532d57)
  • Support fine-grained permissions database roles in connect (#1338) (064d9dc)
Bug Fixes
  • E2E tracing metadata append issue (#1357) (3943885)
  • Pass through kwargs in dbapi connect (#1368) (aae8d61)
  • Remove setup.cfg configuration for creating universal wheels (#1324) (e064474)
Documentation
  • A comment for field chunked_value in message .google.spanner.v1.PartialResultSet is changed (d532d57)
  • A comment for field precommit_token in message .google.spanner.v1.PartialResultSet is changed (d532d57)
  • A comment for field precommit_token in message .google.spanner.v1.ResultSet is changed (d532d57)
  • A comment for field query_plan in message .google.spanner.v1.ResultSetStats is changed (d532d57)
  • A comment for field row_count_lower_bound in message .google.spanner.v1.ResultSetStats is changed (d532d57)
  • A comment for field row_type in message .google.spanner.v1.ResultSetMetadata is changed (d532d57)
  • A comment for field rows in message .google.spanner.v1.ResultSet is changed (d532d57)
  • A comment for field stats in message .google.spanner.v1.PartialResultSet is changed (d532d57)
  • A comment for field stats in message .google.spanner.v1.ResultSet is changed (d532d57)
  • A comment for field values in message .google.spanner.v1.PartialResultSet is changed (d532d57)
  • A comment for message ResultSetMetadata is changed (d532d57)
  • A comment for message ResultSetStats is changed (d532d57)
  • Fix markdown formatting in transactions page (#1377) (de322f8)

May 27, 2025

Feature

Spanner supports cross regional federated queries from BigQuery, which lets BigQuery users query Spanner tables from regions other than their BigQuery region. Users don't incur any Spanner network egress charges during the preview period. This feature is in Preview.

May 26, 2025

Feature

Spanner enables efficient backup copying for incremental backups. When you copy an incremental backup, Spanner also copies all older backups in the chain needed to restore the backup. If the destination instance already contains a backup chain that ends with an older backup from the same source chain, Spanner avoids creating redundant copies to save storage and network costs. Spanner copies only the incremental backup and any older backups not present in the destination chain, and appends them to the existing chain.

While Spanner attempts to avoid redundant copies, in rare situations, Spanner might need to copy all the older backups in the chain, even if previously copied backups already exist in the destination instance.

For more information, see Incremental backups.

May 15, 2025

Feature

You can create a pre-filtered vector index that indexes only rows in your database that match a specific filter condition. Using a pre-filtered vector index improves both the performance and recall of approximate nearest neighbor (ANN) searchers by restricting the search to only apply to rows that satisfy the filtering condition. For more information, see Filter a vector index.

May 13, 2025

Feature

Spanner supports the INTERVAL data type in GoogleSQL and PostgreSQL, which represents a duration or an amount of time.

For more information, see Interval functions in GoogleSQL and PostgreSQL data types.

Feature

Spanner supports the SPLIT_SUBSTR() GoogleSQL function, which splits an input string using a delimiter and returns a substring composed of a specific number of segments, starting from a given segment index.

Spanner also supports the following GoogleSQL aliases:

May 01, 2025

Feature

Spanner Graph lets you model schemaless data with a dynamic label and properties. For more information, see Manage schemaless data with Spanner Graph.

April 30, 2025

Libraries

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

Go

Changes for spanner/admin/database/apiv1

1.79.0 (2025-04-08)

Features

0.1.0 (2025-04-15)

Bug Fixes
  • spanner/benchmarks: Update google.golang.org/api to 0.229.0 (3319672)

1.80.0 (2025-04-23)

Features
Bug Fixes
  • spanner/benchmarks: Update google.golang.org/api to 0.229.0 (3319672)
  • spanner/test/opentelemetry/test: Update google.golang.org/api to 0.229.0 (3319672)
  • spanner: Retry INTERNAL retriable auth error (#12034) (65c7461)
  • spanner: Update google.golang.org/api to 0.229.0 (3319672)
Performance Improvements
  • spanner: Skip gRPC trailers for StreamingRead & ExecuteStreamingSql (#11854) (10dc8b7)

Java

Changes for google-cloud-spanner

6.90.0 (2025-03-31)

Features
  • Add default_isolation_level connection property (#3702) (9472d23)
  • Adds support for Interval datatype in Java client (#3416) (8be8f5e)
  • Integration test for End to End tracing (#3691) (bf1a07a)
  • Specify isolation level per transaction (#3704) (868f30f)
  • Support PostgreSQL isolation level statements (#3706) (dda2e1d)

6.91.0 (2025-04-17)

Features
  • [Internal] open telemetry built in metrics for GRPC (#3709) (cd76c73)
  • Add java sample for the pre-splitting feature (#3713) (e97b92e)
  • Add TransactionMutationLimitExceededException as cause to SpannerBatchUpdateException (#3723) (4cf5261)
  • Built in metrics for afe latency and connectivity error (#3724) (e13a2f9)
  • Support unnamed parameters (#3820) (1afd815)
Bug Fixes
  • Add default implementations for Interval methods in AbstractStructReader (#3722) (97f4544)
  • Set transaction isolation level had no effect (#3718) (b382999)
Performance Improvements
  • Cache the key used for OTEL traces and metrics (#3814) (c5a2045)
  • Optimize parsing in Connection API (#3800) (a2780ed)
  • Qualify statements without removing comments (#3810) (d358cb9)
  • Remove all calls to getSqlWithoutComments (#3822) (0e1e14c)

6.91.1 (2025-04-21)

Bug Fixes
  • SkipHint in the internal parser skipped too much (#3827) (fbf7b4c)

Node.js

Changes for @google-cloud/spanner

7.20.0 (2025-04-11)

Features
  • Add support for Interval (#2192) (8c886cb)
  • debugging: Implement x-goog-spanner-request-id propagation per request (#2205) (e42caea)
  • spanner: Add support for snapshot isolation (#2245) (b60a683)
  • spanner: Support for Multiplexed Session Partitioned Ops (#2252) (e7ce471)

7.21.0 (2025-04-15)

Features
Bug Fixes
  • Adding span attributes for request tag and transaction tag (#2236) (3f69dad)
Feature

The enhance_query option on the SEARCH, SCORE, and SNIPPET functions provides automatic synonym matching and spell correction of single words, by default. Previously, if you provided a single word as the search string it likely didn't return any matches and required a phrase with context to perform the enhanced search.

April 28, 2025

Feature

Manually adding split points to your Spanner database is generally available. Spanner automatically splits, or partitions, data in response to traffic changes to spread load across all available resources in an instance. For large, anticipated traffic changes, such as for a product launch, you can pre-split the database with split boundaries that represent future traffic. This warmup can yield significant performance benefits for large scaling events.

For more information about configuring split points for your database, see Pre-splitting overview.

April 24, 2025

Feature

Spanner lets you use the INTERLEAVE IN clause to colocate child rows with parent rows without enforcing the parent-child relationship. When you use INTERLEAVE IN (without the PARENT option), you can insert child rows before inserting the parent row. You can also delete the parent row without affecting the child rows. For more information, see Create interleaved tables and Indexes and interleaving.

April 14, 2025

Feature

End-to-end tracing is generally available (GA). Spanner supports end-to-end tracing, along with client-side tracing in the Node.js and Python client libraries, in addition to Java and Go. For more information, see Trace collection overview.

April 09, 2025

Feature

You can use Gemini assistance to help you use system insights to optimize and troubleshoot Spanner resources. For more information, see Optimize and troubleshoot with Gemini assistance.

Feature

Spanner offers Cassandra compatibility with API support and migration tools allowing seamless lift-and-shift migrations of Cassandra applications. For more information, see Migrate from Cassandra to Spanner.

April 04, 2025

Feature

Spanner includes the PARAMETER_DEFAULT column in the INFORMATION_SCHEMA.PARAMETERS table. This column returns the default value of change stream read functions parameters.

April 03, 2025

Feature

In Spanner Graph you can view a visualization of graph elements returned by a Spanner Graph query and of a Spanner Graph schema. A graph query visualization helps you understand the query results by revealing patterns, dependencies, and anomalies in the returned graph elements. A graph schema visualization helps you understand how the nodes and edges in a schema are related. For more information, see Work with Spanner Graph visualizations.

March 31, 2025

Feature

Spanner supports the following GoogleSQL JSON mutator functions:

  • JSON_ARRAY_APPEND()
  • JSON_ARRAY_INSERT()
  • JSON_REMOVE()
  • JSON_SET()
  • JSON_STRIP_NULLS()

Spanner supports the following PostgreSQL JSONB mutator functions:

  • jsonb_insert()
  • jsonb_set()
  • jsonb_set_lax()
  • jsonb_strip_nulls()

Spanner also supports the following PostgreSQL JSONB operators:

  • concat: jsonb || jsonb -> jsonb
  • delete: jsonb - text -> jsonb

For more information, see JSON functions in GoogleSQL and Supported PostgreSQL functions.

Feature

The GoogleSQL JSON_KEYS and PostgreSQL json_object_keys functions, which extract unique JSON keys from a JSON expression, are generally available.

Feature

JSON search indexes are generally available in Spanner. This extension of Spanner's full-text index capabilities accelerates many JSON document queries, even without prior knowledge of the documents' structure. You can create search indexes over any JSON document stored in a JSON column. The JSON_CONTAINS function in GoogleSQL and the @> and <@ operators in PostgreSQL can use search indexes to determine if one document structure is contained in another. Search indexing supports JSON types in GoogleSQL-dialect databases and JSONB in PostgreSQL-dialect databases. For more information, see JSON search indexes.

Libraries

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

Go

Changes for spanner/admin/database/apiv1

1.77.0 (2025-03-03)

Features
  • spanner: A new enum IsolationLevel is added (#11624) (2c4fb44)
  • spanner: A new field isolation_level is added to message .google.spanner.v1.TransactionOptions (2c4fb44)
  • spanner: Add a last field in the PartialResultSet (#11645) (794ecf7)
  • spanner: Add option for LastStatement in transaction (#11638) (d662a45)
Bug Fixes
  • spanner: Avoid desructive context augmentation that dropped all headers (#11659) (594732d)
Documentation
  • spanner: A comment for enum value OPTIMISTIC in enum ReadLockMode is changed (2c4fb44)
  • spanner: A comment for enum value PESSIMISTIC in enum ReadLockMode is changed (2c4fb44)
  • spanner: A comment for enum value READ_LOCK_MODE_UNSPECIFIED in enum ReadLockMode is changed (2c4fb44)
  • spanner: A comment for field chunked_value in message .google.spanner.v1.PartialResultSet is changed (794ecf7)
  • spanner: A comment for field precommit_token in message .google.spanner.v1.PartialResultSet is changed (794ecf7)
  • spanner: A comment for field precommit_token in message .google.spanner.v1.ResultSet is changed (794ecf7)
  • spanner: A comment for field query_plan in message .google.spanner.v1.ResultSetStats is changed (794ecf7)
  • spanner: A comment for field row_count_lower_bound in message .google.spanner.v1.ResultSetStats is changed (794ecf7)
  • spanner: A comment for field row_type in message .google.spanner.v1.ResultSetMetadata is changed (794ecf7)
  • spanner: A comment for field rows in message .google.spanner.v1.ResultSet is changed (794ecf7)
  • spanner: A comment for field stats in message .google.spanner.v1.PartialResultSet is changed (794ecf7)
  • spanner: A comment for field stats in message .google.spanner.v1.ResultSet is changed (794ecf7)
  • spanner: A comment for field values in message .google.spanner.v1.PartialResultSet is changed (794ecf7)
  • spanner: A comment for message ResultSetMetadata is changed (794ecf7)
  • spanner: A comment for message ResultSetStats is changed (794ecf7)

1.78.0 (2025-03-24)

Features
  • spanner/spansql: Add support for tokenlist and create search index (#11522) (cd894f8)
  • spanner: Support multiplexed sessions for ReadWriteStmtBasedTransaction (#11852) (528d9dd)
Bug Fixes
  • spanner/test/opentelemetry/test: Update golang.org/x/net to 0.37.0 (1144978)
  • spanner: Revert the ALTS bound token enablement (#11799) (68cfb38)
  • spanner: Update golang.org/x/net to 0.37.0 (1144978)

Java

Changes for google-cloud-spanner

6.88.0 (2025-02-27)

Features
  • Add a last field in the PartialResultSet (7c714be)
  • Automatically set default sequence kind in JDBC and PGAdapter (#3658) (e8abf33)
  • Default authentication support for external hosts (#3656) (ace11d5)
  • spanner: A new enum IsolationLevel is added (3fd33ba)
  • spanner: Add instance partitions field in backup proto (3fd33ba)
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.54.0 (57497ad)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.44.0 (#3665) (3543548)

6.89.0 (2025-03-20)

Features
  • Enable ALTS hard bound token in DirectPath (#3645) (42cc961)
  • Next release from main branch is 6.89.0 (#3669) (7a8a29b)
  • Support isolation level REPEATABLE_READ for R/W transactions (#3670) (e62f5ab)
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.55.1 (b959f4c)
  • Revert the ALTS bound token enablement (#3679) (183c1f0)
Performance Improvements
  • Get database dialect using multiplexed session (#3684) (f641a40)
  • Skip gRPC trailers for StreamingRead & ExecuteStreamingSql (#3661) (bd4b1f5)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.45.1 (#3689) (67188df)

Node.js

Changes for @google-cloud/spanner

7.19.0 (2025-02-26)

Features
  • Add AddSplitPoints API (e4d389a)
  • Paging changes for bigquery (e4d389a)
  • spanner: A new enum IsolationLevel is added (#2225) (e4d389a)
  • spanner: A new field isolation_level is added to message .google.spanner.v1.TransactionOptions (e4d389a)
  • spanner: Add instance partitions field in backup proto (e4d389a)
  • spanner: Add support for Multiplexed Session for Read Only Tran… (#2214) (3a7a51b)
  • x-goog-spanner-request-id: Add bases (#2211) (0008038)
Bug Fixes
  • Add x-goog-request params to headers for LRO-polling methods (e4d389a)
  • Error from fill method should not be emitted (#2233) (2cc44cf), closes #2103
  • Finalize fixing typings for headers in generator (e4d389a)
  • Fix typings for headers in generator (e4d389a)
  • Remove extra protos in ESM & capture ESM in headers (e4d389a)
  • Rollback with no id (#2231) (a6919b1), closes #2103

7.19.1 (2025-03-13)

Bug Fixes
  • CreateQueryPartition with query params (91f5afd)

Python

Changes for google-cloud-spanner

3.53.0 (2025-03-12)

Features
  • Add AddSplitPoints API (7a5afba)
  • Add Attempt, Operation and GFE Metrics (#1302) (fb21d9a)
  • Add REST Interceptors which support reading metadata (7a5afba)
  • Add support for opt-in debug logging (7a5afba)
  • Add support for reading selective GAPIC generation methods from service YAML (7a5afba)
  • Add the last statement option to ExecuteSqlRequest and ExecuteBatchDmlRequest (7a5afba)
  • Add UUID in Spanner TypeCode enum (7a5afba)
  • End to end tracing (#1315) (aa5d0e6)
  • Exposing FreeInstanceAvailability in InstanceConfig (7a5afba)
  • Exposing FreeInstanceMetadata in Instance configuration (to define the metadata related to FREE instance type) (7a5afba)
  • Exposing InstanceType in Instance configuration (to define PROVISIONED or FREE spanner instance) (7a5afba)
  • Exposing QuorumType in InstanceConfig (7a5afba)
  • Exposing storage_limit_per_processing_unit in InstanceConfig (7a5afba)
  • Snapshot isolation (#1318) (992fcae)
  • spanner: A new enum IsolationLevel is added (#1224) (7a5afba)
Bug Fixes
  • Allow Protobuf 6.x (#1320) (1faab91)
  • Cleanup after metric integration test (#1322) (d7cf8b9)
  • deps: Require grpc-google-iam-v1>=0.14.0 (7a5afba)
  • Fix typing issue with gRPC metadata when key ends in -bin (7a5afba)
Performance Improvements
Documentation
  • A comment for enum DefaultBackupScheduleType is changed (7a5afba)
  • A comment for enum value AUTOMATIC in enum DefaultBackupScheduleType is changed (7a5afba)
  • A comment for enum value GOOGLE_MANAGED in enum Type is changed (7a5afba)
  • A comment for enum value NONE in enum DefaultBackupScheduleType is changed (7a5afba)
  • A comment for enum value USER_MANAGED in enum Type is changed (7a5afba)
  • A comment for field base_config in message .google.spanner.admin.instance.v1.InstanceConfig is changed (7a5afba)
  • A comment for field default_backup_schedule_type in message .google.spanner.admin.instance.v1.Instance is changed (7a5afba)
  • A comment for field filter in message .google.spanner.admin.instance.v1.ListInstanceConfigOperationsRequest is changed (7a5afba)
  • A comment for field filter in message .google.spanner.admin.instance.v1.ListInstancePartitionOperationsRequest is changed (7a5afba)
  • A comment for field instance_config in message .google.spanner.admin.instance.v1.CreateInstanceConfigRequest is changed (7a5afba)
  • A comment for field instance_partition_deadline in message .google.spanner.admin.instance.v1.ListInstancePartitionOperationsRequest is changed (7a5afba)
  • A comment for field location in message .google.spanner.admin.instance.v1.ReplicaInfo is changed (7a5afba)
  • A comment for field node_count in message .google.spanner.admin.instance.v1.Instance is changed (7a5afba)
  • A comment for field node_count in message .google.spanner.admin.instance.v1.InstancePartition is changed (7a5afba)
  • A comment for field operations in message .google.spanner.admin.instance.v1.ListInstanceConfigOperationsResponse is changed (7a5afba)
  • A comment for field operations in message .google.spanner.admin.instance.v1.ListInstancePartitionOperationsResponse is changed (7a5afba)
  • A comment for field optional_replicas in message .google.spanner.admin.instance.v1.InstanceConfig is changed (7a5afba)
  • A comment for field parent in message .google.spanner.admin.instance.v1.ListInstancePartitionsRequest is changed (7a5afba)
  • A comment for field processing_units in message .google.spanner.admin.instance.v1.Instance is changed (7a5afba)
  • A comment for field processing_units in message .google.spanner.admin.instance.v1.InstancePartition is changed (7a5afba)
  • A comment for field referencing_backups in message .google.spanner.admin.instance.v1.InstancePartition is changed (7a5afba)
  • A comment for field replicas in message .google.spanner.admin.instance.v1.InstanceConfig is changed (7a5afba)
  • A comment for field storage_utilization_percent in message .google.spanner.admin.instance.v1.AutoscalingConfig is changed (7a5afba)
  • A comment for field unreachable in message .google.spanner.admin.instance.v1.ListInstancePartitionsResponse is changed (7a5afba)
  • A comment for message CreateInstanceConfigRequest is changed (7a5afba)
  • A comment for message DeleteInstanceConfigRequest is changed (7a5afba)
  • A comment for message UpdateInstanceConfigRequest is changed (7a5afba)
  • A comment for method CreateInstance in service InstanceAdmin is changed (7a5afba)
  • A comment for method CreateInstanceConfig in service InstanceAdmin is changed (7a5afba)
  • A comment for method CreateInstancePartition in service InstanceAdmin is changed (7a5afba)
  • A comment for method ListInstanceConfigOperations in service InstanceAdmin is changed (7a5afba)
  • A comment for method ListInstanceConfigs in service InstanceAdmin is changed (7a5afba)
  • A comment for method ListInstancePartitionOperations in service InstanceAdmin is changed (7a5afba)
  • A comment for method MoveInstance in service InstanceAdmin is changed (7a5afba)
  • A comment for method UpdateInstance in service InstanceAdmin is changed (7a5afba)
  • A comment for method UpdateInstanceConfig in service InstanceAdmin is changed (7a5afba)
  • A comment for method UpdateInstancePartition in service InstanceAdmin is changed (7a5afba)
  • Fix typo timzeone -> timezone (7a5afba)

March 28, 2025

Feature

Spanner vector index and approximate nearest neighbor (ANN) distance functions in the GoogleSQL-dialect are Generally Available. If you have a table with a large amount of vector data, you can use a vector index to accelerate similarity searches and nearest neighbor queries. Spanner also supports the following:

  • ALTER VECTOR INDEX DDL syntax
  • Import and export databases that use ANN
  • Use the STORING clause to store a copy of a column in the vector index to accelerate queries that filter by those columns
  • Use ANN in instances smaller than one node or 1000 processing units

For more information, see Find approximate nearest neighbors, create vector indexes, and query vector embeddings.

Feature

Spanner ANN indexes are supported in Langchain. For more information, see LangChain Quickstart for Spanner.

March 27, 2025

Feature

You can save and manage your SQL scripts in Spanner Studio. This feature is in preview. For more information, see Saved queries overview.

March 18, 2025

Feature

The default time zone of your Spanner databases can be set. For more information, see Set the default time zone of a database. This feature is generally available (GA).

March 17, 2025

Feature

You can create an external dataset in BigQuery that links to an existing database in Spanner. This feature is generally available (GA).

March 10, 2025

Feature

Tiered storage is Generally Available in Spanner. Tiered storage is a fully-managed feature that lets you store your data across solid-state drives (SSD) or hard disk drives (HDD). Using tiered storage lets you take advantage of both SSD storage, which supports the high performance of active data, and HDD storage, which supports infrequent data access at a lower cost. For more information, see Tiered storage.

Feature

The following LangChain solutions can be used with Spanner Graph:

  • Graph store for Spanner: Use to retrieve and store nodes and edges from a graph database. For more information, see Graph store for Spanner.
  • Graph QA chain for Spanner: Uses a graph to answer questions. For more information, see Graph QA chain for Spanner.

March 04, 2025

Feature

You can create Spanner regional instance configurations in Stockholm, Sweden (europe-north2). For more information, see Google Cloud locations and Spanner pricing.

Feature

The following multi-region instance configuration is available in Europe - eur7 (Milan/Frankfurt/Turin).

February 28, 2025

Feature

Full-text search is generally available for PostgreSQL-dialect databases.

Libraries

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

Go

Changes for spanner/admin/database/apiv1

1.74.0 (2025-01-24)

Features
  • spanner/admin/instance: Exposing FreeInstanceAvailability in InstanceConfig (4254053)
  • spanner/admin/instance: Exposing FreeInstanceMetadata in Instance configuration (to define the metadata related to FREE instance type) (4254053)
  • spanner/admin/instance: Exposing InstanceType in Instance configuration (to define PROVISIONED or FREE spanner instance) (4254053)
  • spanner/admin/instance: Exposing QuorumType in InstanceConfig (4254053)
  • spanner/admin/instance: Exposing storage_limit_per_processing_unit in InstanceConfig (4254053)
  • spanner: Add the last statement option to ExecuteSqlRequest and ExecuteBatchDmlRequest (8dedb87)
  • spanner: Add UUID in Spanner TypeCode enum (46fc993)
  • spanner: Implement generation and propagation of "x-goog-spanner-request-id" Header (#11048) (10960c1)
Bug Fixes
  • spanner/spansql: PROTO BUNDLE and protobuf type parsing fixes (#11279) (b1ca714)
  • spanner/test/opentelemetry/test: Update golang.org/x/net to v0.33.0 (e9b0b69)
  • spanner: ReadWriteStmtBasedTransaction would not remember options for retries (#11443) (7d8f0c5)
  • spanner: Support setting monitoring host via env and override any endpoint override from spanner options with default one (#11141) (3d61545)
  • spanner: Update golang.org/x/net to v0.33.0 (e9b0b69)
Documentation
  • spanner/admin/database: Fix typo timzeone -> timezone (a694e11)
  • spanner/admin/instance: A comment for enum DefaultBackupScheduleType is changed (4254053)
  • spanner/admin/instance: A comment for enum value AUTOMATIC in enum DefaultBackupScheduleType is changed (4254053)
  • spanner/admin/instance: A comment for enum value GOOGLE_MANAGED in enum Type is changed (4254053)
  • spanner/admin/instance: A comment for enum value NONE in enum DefaultBackupScheduleType is changed (4254053)
  • spanner/admin/instance: A comment for enum value USER_MANAGED in enum Type is changed (4254053)
  • spanner/admin/instance: A comment for field base_config in message .google.spanner.admin.instance.v1.InstanceConfig is changed (4254053)
  • spanner/admin/instance: A comment for field default_backup_schedule_type in message .google.spanner.admin.instance.v1.Instance is changed (4254053)
  • spanner/admin/instance: A comment for field filter in message .google.spanner.admin.instance.v1.ListInstanceConfigOperationsRequest is changed (4254053)
  • spanner/admin/instance: A comment for field filter in message .google.spanner.admin.instance.v1.ListInstancePartitionOperationsRequest is changed (4254053)
  • spanner/admin/instance: A comment for field instance_config in message .google.spanner.admin.instance.v1.CreateInstanceConfigRequest is changed (4254053)
  • spanner/admin/instance: A comment for field instance_partition_deadline in message .google.spanner.admin.instance.v1.ListInstancePartitionOperationsRequest is changed (4254053)
  • spanner/admin/instance: A comment for field location in message .google.spanner.admin.instance.v1.ReplicaInfo is changed (4254053)
  • spanner/admin/instance: A comment for field node_count in message .google.spanner.admin.instance.v1.Instance is changed (4254053)
  • spanner/admin/instance: A comment for field node_count in message .google.spanner.admin.instance.v1.InstancePartition is changed (4254053)
  • spanner/admin/instance: A comment for field operations in message .google.spanner.admin.instance.v1.ListInstanceConfigOperationsResponse is changed (4254053)
  • spanner/admin/instance: A comment for field operations in message .google.spanner.admin.instance.v1.ListInstancePartitionOperationsResponse is changed (4254053)
  • spanner/admin/instance: A comment for field optional_replicas in message .google.spanner.admin.instance.v1.InstanceConfig is changed (4254053)
  • spanner/admin/instance: A comment for field parent in message .google.spanner.admin.instance.v1.ListInstancePartitionsRequest is changed (4254053)
  • spanner/admin/instance: A comment for field processing_units in message .google.spanner.admin.instance.v1.Instance is changed (4254053)
  • spanner/admin/instance: A comment for field processing_units in message .google.spanner.admin.instance.v1.InstancePartition is changed (4254053)
  • spanner/admin/instance: A comment for field referencing_backups in message .google.spanner.admin.instance.v1.InstancePartition is changed (4254053)
  • spanner/admin/instance: A comment for field replicas in message .google.spanner.admin.instance.v1.InstanceConfig is changed (4254053)
  • spanner/admin/instance: A comment for field storage_utilization_percent in message .google.spanner.admin.instance.v1.AutoscalingConfig is changed (4254053)
  • spanner/admin/instance: A comment for field unreachable in message .google.spanner.admin.instance.v1.ListInstancePartitionsResponse is changed (4254053)
  • spanner/admin/instance: A comment for message CreateInstanceConfigRequest is changed (4254053)
  • spanner/admin/instance: A comment for message DeleteInstanceConfigRequest is changed (4254053)
  • spanner/admin/instance: A comment for message UpdateInstanceConfigRequest is changed (4254053)
  • spanner/admin/instance: A comment for method CreateInstance in service InstanceAdmin is changed (4254053)
  • spanner/admin/instance: A comment for method CreateInstanceConfig in service InstanceAdmin is changed (4254053)
  • spanner/admin/instance: A comment for method CreateInstancePartition in service InstanceAdmin is changed (4254053)
  • spanner/admin/instance: A comment for method ListInstanceConfigOperations in service InstanceAdmin is changed (4254053)
  • spanner/admin/instance: A comment for method ListInstanceConfigs in service InstanceAdmin is changed (4254053)
  • spanner/admin/instance: A comment for method ListInstancePartitionOperations in service InstanceAdmin is changed (4254053)
  • spanner/admin/instance: A comment for method MoveInstance in service InstanceAdmin is changed (4254053)
  • spanner/admin/instance: A comment for method UpdateInstance in service InstanceAdmin is changed (4254053)
  • spanner/admin/instance: A comment for method UpdateInstanceConfig in service InstanceAdmin is changed (4254053)
  • spanner/admin/instance: A comment for method UpdateInstancePartition in service InstanceAdmin is changed (4254053)

1.75.0 (2025-02-02)

Features
  • spanner/admin/database: Add AddSplitPoints API (59fe58a)
Bug Fixes
  • spanner: Inject "x-goog-spanner-request-id" into outgoing client context (#11544) (a8f16ef), refs #11543

1.76.0 (2025-02-20)

DO NOT USE This version is retracted due to https://github.com/googleapis/google-cloud-go/issues/11630, use version >=v1.76.1

Features
  • spanner/admin/database: Add instance partitions field in backup proto (c6a6dc7)
  • spanner: Support multiplexed session for read-write transactions & partition ops (#11615) (4b40201)
Performance Improvements

1.76.1 (2025-02-21)

Bug Fixes
  • spanner: Multiplexed_session_previous_transaction_id is not supported in the request for a non multiplexed session (#11626) (a940bef)

Java

Changes for google-cloud-spanner

6.86.0 (2025-01-31)

Features
  • Add sample for asymmetric autoscaling instances (#3562) (3584b81)
  • Support graph and pipe queries in Connection API (#3586) (71c3063)
Bug Fixes
  • Always add instance-id for built-in metrics (#3612) (705b627)
  • deps: Update the Java code generator (gapic-generator-java) to 2.51.1 (3e27251)
  • deps: Update the Java code generator (gapic-generator-java) to 2.52.0 (bf69673)
  • spanner: Moved mTLSContext configurator from builder to construtor (#3605) (ac7c30b)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.42.0 (#3616) (2ea59f0)
  • Update dependency io.opentelemetry:opentelemetry-bom to v1.46.0 (#3530) (d505850)
Documentation
  • Clarify how async updates can overtake each other (#3581) (1be250f)
  • Fix typo timzeone -> timezone (bf69673)
  • Fixed parameter arguments for AbstractResultSet's Listener's on TransactionMetadata doc (#3602) (1f143a4)
  • samples: Add samples and tests for change streams transaction exclusion (#3098) (1f81600)

6.87.0 (2025-02-20)

Features
  • Add AddSplitPoints API (a5ebcd3)
  • Add option for multiplexed sessions with partitioned operations (#3635) (dc89b4d)
  • Add option to indicate that a statement is the last in a transaction (#3647) (b04ea80)
  • Adding gfe_latencies metric to built-in metrics (#3490) (314dadc)
  • spanner: Support multiplexed session for read-write transactions (#3608) (bda78ed)
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.53.0 (20a3d0d)
  • spanner: End spans for read-write methods (#3629) (4a1f99c)
  • spanner: Release resources in TransactionManager (#3638) (e0a3e5b)
Dependencies
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.43.0 (#3642) (c12968a)

Node.js

Changes for @google-cloud/spanner

7.18.0 (2025-01-29)

Features
  • Add gcp client attributes for Opentelemetry traces (#2215) (d2ff046)

7.18.1 (2025-02-05)

Bug Fixes

Python

Changes for google-cloud-spanner

3.52.0 (2025-02-19)

Features
  • Add additional opentelemetry span events for session pool (a6811af)
  • Add Google Cloud standard otel attributes for python client (#1308) (0839f98)
  • Add updated span events + trace more methods (#1259) (ad69c48)
  • MetricsTracer implementation (#1291) (8fbde6b)
  • Support GRAPH and pipe syntax in dbapi (#1285) (959bb9c)
  • Support transaction and request tags in dbapi (#1262) (ee9662f)
  • x-goog-spanner-request-id: Introduce AtomicCounter (#1275) (f2483e1)
Bug Fixes
  • Retry UNAVAILABLE errors for streaming RPCs (#1278) (ab31078), closes #1150
  • tracing: Ensure nesting of Transaction.begin under commit + fix suggestions from feature review (#1287) (d9ee75a)
  • tracing: Only set span.status=OK if UNSET (#1248) (1d393fe), closes #1246
  • Update retry strategy for mutation calls to handle aborted transactions (#1279) (0887eb4)

February 20, 2025

Feature

The Java and Go clients for Spanner implement multiplexed sessions. This allows all requests to be concurrently sent over a single session, thus eliminating the requirement that you define the minimum and maximum session count. Instead, you can use any number of requests to the configured gRPC channels. This approach eliminates the possibility of session leaks and reduces the occurrences of Transaction outcome unknown errors. You must set an environment variable in your client to opt in to this feature. For more information, see Multiplexed sessions.

February 11, 2025

Feature

Managed autoscaler is Generally Available.

Managed autoscaler also supports the ability to scale read-only replicas independently from read-write replicas. By setting the compute capacity limits and CPU utilization targets, you can configure the managed autoscaler for all replicas of an instance or independently scale read-only replicas. For more information, see Asymmetric read-only autoscaling.

February 10, 2025

Feature

Custom organization policies are generally available for Spanner. For more information, see Add a custom organization policy.

February 05, 2025

Feature

Informational foreign keys are available in Spanner. Informational foreign keys don't enforce referential integrity and are used to declare the intended logical data model for query optimization. Enforced foreign keys, which enforce referential integrity, are also available.

Informational foreign keys are supported by GoogleSQL only. Enforced foreign keys are supported by GoogleSQL and PostgreSQL.

For more information, see the following:

January 31, 2025

Libraries

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

Java

Changes for google-cloud-spanner

6.85.0 (2025-01-10)

Features
  • Add gcp client attributes in OpenTelemetry traces (#3595) (7893f24)
  • Add LockHint feature (#3588) (326442b)
  • spanner: MTLS setup for spanner external host clients (#3574) (f8dd152)
Dependencies
  • Update dependency com.google.api.grpc:proto-google-cloud-monitoring-v3 to v3.56.0 (#3563) (e4d0b0f)
  • Update dependency com.google.api.grpc:proto-google-cloud-monitoring-v3 to v3.57.0 (#3592) (a7542da)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.41.1 (#3589) (2cd4238)
  • Update dependency com.google.cloud.opentelemetry:exporter-trace to v0.33.0 (#3455) (70649dc)
  • Update dependency com.google.re2j:re2j to v1.8 (#3594) (0f2013d)
  • Update googleapis/sdk-platform-java action to v2.51.1 (#3591) (3daa1a0)

Node.js

Changes for @google-cloud/spanner

7.17.0 (2024-12-27)

Known Issues

This release inadvertently introduced an issue where OpenTelemetry Trace context Global Propagators are default set to W3CTraceContextPropagator. For more details, refer to issue #2208

A fix for this issue has been included in version 7.17.1

Features
  • Add the last statement option to ExecuteSqlRequest and ExecuteBatchDmlRequest (#2196) (223f167)
  • Enable e2e tracing (#2202) (3cc257e)
Bug Fixes

7.17.1 (2025-01-03)

Bug Fixes

January 30, 2025

Feature

The Spanner index advisor is Generally Available in GoogleSQL and PostgreSQL-dialect databases. The index advisor analyzes your queries to recommend new indexes or changes to existing indexes to improve the performance of your queries. For more information, see Use the Spanner index advisor.

Feature

Spanner supports SERIAL and AUTO_INCREMENT DDL syntax. SERIAL is available in PostgreSQL-dialect databases and AUTO_INCREMENT is available in GoogleSQL. They streamline the ability to generate IDENTITY columns as primary keys. For more information, see SERIAL and AUTO_INCREMENT.

January 28, 2025

Feature

You can downgrade your Spanner instance to a lower-tier edition. For more information, see Downgrade the edition.

January 27, 2025

Feature

Spanner supports the SELECT…FOR UPDATE query syntax in GoogleSQL and PostgreSQL-dialect databases. When you use the SELECT query to scan a table, add a FOR UPDATE clause to enable exclusive locks on the scanned data in order to reduce aborts for workloads that operate on the same data concurrently. This is similar to the LOCK_SCANNED_RANGES hint (GoogleSQL and PostgreSQL). For more information, see Use SELECT…FOR UPDATE.

January 15, 2025

Feature

Spanner supports query statistics for previously executed partitioned data manipulation language (partitioned DML) statements. For more information, see Query statistics.

January 10, 2025

Feature

Monitor and troubleshoot queries that are running in your Spanner instance. Active queries are long-running queries that might affect the performance of your instance. Monitoring these queries can help you identify causes of instance latency and high CPU usage. For more information, see Monitor active queries.

December 30, 2024

Libraries

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

Java

Changes for google-cloud-spanner

6.82.0 (2024-12-04)

Features
  • Add option for retrying DML as PDML (#3480) (b545557)
  • Add the last statement option to ExecuteSqlRequest and ExecuteBatchDmlRequest (76ab801)
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.50.0 (76ab801)
  • Shutdown built in metrics meter provider (#3518) (c935e2e)
  • spanner: GetEdition() is returning null for Instance (#3496) (77cb585)
Dependencies
  • Update dependency commons-io:commons-io to v2.18.0 (#3492) (5c8b3ad)
Documentation

6.83.0 (2024-12-13)

Features
  • Add Metrics host for built in metrics (#3519) (4ed455a)
  • Add opt-in for using multiplexed sessions for blind writes (#3540) (216f53e)
  • Add UUID in Spanner TypeCode enum (41f83dc)
  • Introduce java.time variables and methods (#3495) (8a7d533)
  • spanner: Support multiplexed session for Partitioned operations (#3231) (4501a3e)
  • Support 'set local' for retry_aborts_internally (#3532) (331942f)
Bug Fixes
  • deps: Update the Java code generator (gapic-generator-java) to 2.51.0 (41f83dc)
Dependencies

Python

Changes for google-cloud-spanner

3.51.0 (2024-12-05)

Features
  • Add connection variable for ignoring transaction warnings (#1249) (eeb7836)
  • spanner: Implement custom tracer_provider injection for opentelemetry traces (#1229) (6869ed6)
  • Support float32 parameters in dbapi (#1245) (829b799)
Bug Fixes
  • Allow setting connection.read_only to same value (#1247) (5e8ca94)
  • Allow setting staleness to same value in tx (#1253) (a214885)
  • Dbapi raised AttributeError with [] as arguments (#1257) (758bf48)
Performance Improvements
Documentation
  • samples: Add samples for Cloud Spanner Default Backup Schedules (#1238) (054a186)

December 12, 2024

Feature

Spanner supports IDENTITY columns. IDENTITY columns lets you generate unique integer values for key and non-key columns, and aligns with the ANSI standard. For more information, see IDENTITY columns.

December 02, 2024

Announcement
Feature

A predefined Identity and Access Management (IAM) role is available that lets you query a Spanner database using Data Boost. For more information, see details about the Spanner Database Reader with Data Boost IAM role and Run federated queries with Data Boost.

November 29, 2024

Libraries

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

Go

Changes for spanner/admin/database/apiv1

1.71.0 (2024-11-01)

Features
  • spanner/admin/instance: Add support for Cloud Spanner Default Backup Schedules (706ecb2)
  • spanner: Client built in metrics (#10998) (d81a1a7)
Bug Fixes
  • spanner/test/opentelemetry/test: Update google.golang.org/api to v0.203.0 (8bb87d5)
  • spanner/test/opentelemetry/test: WARNING: On approximately Dec 1, 2024, an update to Protobuf will change service registration function signatures to use an interface instead of a concrete type in generated .pb.go files. This change is expected to affect very few if any users of this client library. For more information, see https://togithub.com/googleapis/google-cloud-go/issues/11020. (2b8ca4b)
  • spanner: Attempt latency for streaming call should capture the total latency till decoding of protos (#11039) (255c6bf)
  • spanner: Decode PROTO to custom type variant of base type (#11007) (5e363a3)
  • spanner: Update google.golang.org/api to v0.203.0 (8bb87d5)
  • spanner: WARNING: On approximately Dec 1, 2024, an update to Protobuf will change service registration function signatures to use an interface instead of a concrete type in generated .pb.go files. This change is expected to affect very few if any users of this client library. For more information, see https://togithub.com/googleapis/google-cloud-go/issues/11020. (2b8ca4b)

1.72.0 (2024-11-07)

Features
  • spanner/spansql: Add support for protobuf column types & Proto bundles (#10945) (91c6f0f), refs #10944
Bug Fixes
  • spanner: Skip exporting metrics if attempt or operation is not captured. (#11095) (1d074b5)

1.73.0 (2024-11-14)

Features
  • spanner: Add ResetForRetry method for stmt-based transactions (#10956) (02c191c)
Bug Fixes
  • spanner: Add safecheck to avoid deadlock when creating multiplex session (#11131) (8ee5d05)
  • spanner: Allow non default service account only when direct path is enabled (#11046) (4250788)
  • spanner: Use spanner options when initializing monitoring exporter (#11109) (81413f3)

Java

Changes for google-cloud-spanner

6.80.1 (2024-10-28)

Dependencies
  • Update googleapis/sdk-platform-java action to v2.49.0 (#3430) (beb788c)
  • Update sdk platform java dependencies (#3431) (eef03e9)

6.81.0 (2024-11-01)

Features
Dependencies
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.54.0 (#3439) (cdec63f)

6.81.1 (2024-11-11)

Bug Fixes
  • Client built in metrics. Skip export if instance id is null (#3447) (8b2e5ef)
  • spanner: Avoid blocking thread in AsyncResultSet (#3446) (7c82f1c)
Dependencies
  • Update dependency com.google.api.grpc:proto-google-cloud-monitoring-v3 to v3.54.0 (#3437) (7e28326)
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.54.0 (#3438) (fa18894)
  • Update dependency com.google.cloud:google-cloud-trace to v2.53.0 (#3440) (314eeb8)
  • Update dependency io.opentelemetry:opentelemetry-bom to v1.44.1 (#3452) (6518eea)
  • Update opentelemetry.version to v1.44.1 (#3451) (d9b0271)
Documentation
  • Update samples' README.md to ensure given (#3420) (663a974)

6.81.2 (2024-11-20)

Bug Fixes
Dependencies
  • Update dependency com.google.api.grpc:proto-google-cloud-monitoring-v3 to v3.55.0 (#3482) (bf350b0)
  • Update dependency com.google.api.grpc:proto-google-cloud-trace-v1 to v2.53.0 (#3454) (8729b30)
  • Update dependency com.google.cloud:google-cloud-trace to v2.53.0 (#3464) (a507e4c)
  • Update dependency com.google.cloud:google-cloud-trace to v2.54.0 (#3488) (1d1fecf)
  • Update googleapis/sdk-platform-java action to v2.50.0 (#3475) (e992f18)
  • Update sdk platform java dependencies (#3476) (acb6446)

Node.js

Changes for @google-cloud/spanner

7.15.0 (2024-10-30)

Features
  • (observability, samples): add tracing end-to-end sample (#2130) (66d99e8)
  • (observability) add spans for BatchTransaction and Table (#2115) (d51aae9), closes #2114
  • (observability) Add support for OpenTelemetry traces and allow observability options to be passed. (#2131) (5237e11), closes #2079
  • (observability) propagate database name for every span generated to aid in quick debugging (#2155) (0342e74)
  • (observability) trace Database.batchCreateSessions + SessionPool.createSessions (#2145) (f489c94)
  • (observability): trace Database.runPartitionedUpdate (#2176) (701e226), closes #2079
  • (observability): trace Database.runTransactionAsync (#2167) (d0fe178), closes #207
  • Allow multiple KMS keys to create CMEK database/backup (#2099) (51bc8a7)
  • observability: Fix bugs found from product review + negative cases (#2158) (cbc86fa)
  • observability: Trace Database methods (#2119) (1f06871), closes #2114
  • observability: Trace Database.batchWriteAtLeastOnce (#2157) (2a19ef1), closes #2079
  • observability: Trace Transaction (#2122) (a464bdb), closes #2114
Bug Fixes

7.16.0 (2024-11-09)

Features
  • spanner: Add support for Cloud Spanner Default Backup Schedules (#2135) (19f137c)
Bug Fixes
  • deps: Update dependency google-gax to v4.4.1 (#2100) (2e94bcd)

Python

Changes for google-cloud-spanner

3.50.0 (2024-11-11)

Features
  • spanner: Add support for Cloud Spanner Default Backup Schedules (45d4517)
Bug Fixes
  • Add PROTO in streaming chunks (#1213) (43c190b)
  • Pass through route-to-leader option in dbapi (#1223) (ec6c204)
  • Pin nox version in requirements.in for devcontainer. (#1215) (41604fe)
Documentation
  • Allow multiple KMS keys to create CMEK database/backup (68551c2)

3.50.1 (2024-11-14)

Bug Fixes

November 25, 2024

Feature

Default backup schedules are available and automatically enabled for all new instances. You can enable or disable default backup schedules in an instance when creating the instance or by editing the instance later. You can also let default backup schedules for new databases in existing instances. You can edit or delete the default backup schedule once it's created.

When enabled, Spanner creates a default backup schedule for every new database created in the instance. The default backup schedule creates a full backup every 24 hours. These backups have a retention period of 7 days.

For more information, see Default backup schedules.

November 19, 2024

Feature

Spanner supports the ALL_DIFFERENT graph predicate in GoogleSQL-dialect databases. You can use this predicate to see if the graph elements in a list are mutually distinct.

November 18, 2024

Feature

You can create Spanner regional instance configurations in Querétaro, Mexico (northamerica-south1). For more information, see Google Cloud locations and Spanner pricing.

November 05, 2024

Feature

Spanner supports client-side metrics for Java and Go applications. These metrics can be used with server-side metrics for faster troubleshooting of performance and latency issues.

These metrics are included in the latest Spanner client libraries for the following languages:

  • Java in version 6.81.0 and later
  • Go in version 1.71.0 and later

For more information, see View and manage client-side metrics.

October 31, 2024

Libraries

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

Go

Changes for spanner/admin/database/apiv1

1.69.0 (2024-10-03)

Features
  • spanner: Add x-goog-spanner-end-to-end-tracing header for requests to Spanner (#10241) (7f61cd5)
Bug Fixes
Performance Improvements
  • spanner: Use passthrough with emulator endpoint (#10947) (9e964dd)

1.70.0 (2024-10-14)

Features
  • spanner/admin/instance: Define ReplicaComputeCapacity and AsymmetricAutoscalingOption (78d8513)
  • spanner: Add INTERVAL API (78d8513)
  • spanner: Add new QueryMode enum values (WITH_STATS, WITH_PLAN_AND_STATS) (78d8513)
Documentation
  • spanner/admin/instance: A comment for field node_count in message spanner.admin.instance.v1.Instance is changed (78d8513)
  • spanner/admin/instance: A comment for field processing_units in message spanner.admin.instance.v1.Instance is changed (78d8513)
  • spanner: Update comment for PROFILE QueryMode (78d8513)

Java

Changes for google-cloud-spanner

6.77.0 (2024-10-02)

Features
Dependencies
  • Update dependency com.google.api.grpc:proto-google-cloud-monitoring-v3 to v3.52.0 (#3291) (9241063)
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.52.0 (#3292) (da27a19)
  • Update dependency com.google.cloud:google-cloud-monitoring to v3.52.0 (#3293) (c6dbdb2)
  • Update dependency com.google.cloud:google-cloud-trace to v2.51.0 (#3294) (