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
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
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
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
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
You can publish a Spanner conversational analytics agent in Gemini Enterprise. This feature is in Preview.
May 27, 2026
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
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
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
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.
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.
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
Spanner vector index and approximate nearest neighbor (ANN) distance functions are generally available (GA) for PostgreSQL databases.
April 21, 2026
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
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.
You can use the Database Insights remote MCP server to analyze Spanner's performance and system metrics. This feature is generally available (GA).
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
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.
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.
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
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
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
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.
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).
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
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
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
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
You can use continuous queries to stream BigQuery data to Spanner in real time. This feature is generally available (GA).
March 03, 2026
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
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
Spanner provides JSON string versions of the following statistics columns for PostgreSQL-dialect databases:
TOTAL_LATENCY_DISTRIBUTION_JSON_STRINGin Transaction statisticsOPERATIONS_BY_TABLE_JSON_STRINGin Transaction statisticsLATENCY_DISTRIBUTION_JSON_STRINGin Query statisticsSAMPLE_LOCK_REQUESTS_JSON_STRINGin Lock statistics
You can use these columns to retrieve statistics in JSON format from the
SPANNER_SYS tables.
February 25, 2026
Spanner supports the following:
- Monitor the usage of Enterprise edition and Enterprise Plus edition features in your Spanner instance.
- Downgrade the instance's edition using the Google Cloud console.
- Verify edition compatibility when restoring from a backup. If the database uses higher-tier features, you must restore the backup to a destination instance that uses the same or a higher-tier edition.
- Set custom edition constraints within your organization policies, limiting the edition of your instance that your users can create.
Spanner supports the following managed autoscaler features:
- Autoscaling based on total CPU utilization target. When an instance's total CPU utilization exceeds or falls below the target that you have set, Spanner adds or removes compute capacity.
- Autoscaling for instance partitions (in Preview).
For more information, see Managed autoscaler.
February 24, 2026
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
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.
After March 17, 2026, when you enable Spanner, the Spanner MCP server is automatically enabled.
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
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
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
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
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
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
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
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
Several updates have been made to full-text search:
- Named schemas support full-text search.
- Spanner search indexes can
accelerate pattern matching expressions
such as
LIKE,STARTS_WITH, andENDS_WITHfor pattern matching, andREGEXP_CONTAINSfor regular expression matching. TOKENIZE_FULLTEXThas an argument for removing diacritics.SEARCHandSCOREuse this if the data was tokenized with this option.TOKENIZE_SUBSTRINGsupports emojis.
January 05, 2026
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
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
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
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
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.
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
Spanner supports the following new columns in the SPANNER_SYS
oldest active queries
table:
CLIENT_IP_ADDRESSAPI_CLIENT_HEADERUSER_AGENT_HEADERSERVER_REGIONPRIORITYTRANSACTION_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
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
Query optimizer version 8 is the default version for Spanner.
November 14, 2025
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
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
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
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
Bug Fixes
Documentation
October 29, 2025
Named schemas are supported in Spanner Graph. For more information, see Spanner Graph schema overview.
October 21, 2025
Schema object drop protection is generally available. This feature protects schema objects such as tables, indexes, and columns from accidental deletion.
October 20, 2025
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
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
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
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
Bug Fixes
1.85.0 (2025-08-28)
Features
Performance Improvements
1.85.1 (2025-09-12)
Bug Fixes
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
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
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
Documentation
- A comment for field
rangesin message.google.spanner.v1.KeySetis changed (e9773a7)
6.101.1 (2025-09-26)
Bug Fixes
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
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
Python
Changes for google-cloud-spanner
3.58.0 (2025-09-10)
Features
Dependencies
September 29, 2025
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
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
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).
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
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
Spanner Graph support of schemaless schemas is generally available (GA). For more information, see Manage schemaless data with Spanner Graph.
September 03, 2025
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
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_timestampis 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
OPTIMISTICin enumReadLockModeis changed (ac4970b) - spanner: A comment for enum value
PESSIMISTICin enumReadLockModeis changed (ac4970b) - spanner: A comment for enum value
READ_LOCK_MODE_UNSPECIFIEDin enumReadLockModeis changed (ac4970b) - spanner: A comment for field
commit_statsin message.google.spanner.v1.CommitResponseis changed (ac4970b) - spanner: A comment for field
exclude_txn_from_change_streamsin message.google.spanner.v1.TransactionOptionsis changed (ac4970b) - spanner: A comment for field
multiplexed_session_previous_transaction_idin message.google.spanner.v1.TransactionOptionsis changed (ac4970b) - spanner: A comment for field
precommit_tokenin message.google.spanner.v1.CommitResponseis changed (ac4970b) - spanner: A comment for message
.google.spanner.v1.MultiplexedSessionPrecommitTokenis changed (ac4970b) - spanner: A comment for message
.google.spanner.v1.TransactionOptionsis 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_timestampis 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
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
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_timestampis 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
- Docs-test (#2297) (61c571c)
- Ensure context propagation works in Node.js 22 with async/await (#2326) (e8cdbed)
- Pass the Span correctly (#2332) (edaee77)
- System test against emulator (#2339) (2a6af4c)
- Unhandled exceptions from gax (#2338) (6428bcd)
Performance Improvements
Python
Changes for google-cloud-spanner
3.57.0 (2025-08-14)
Features
August 25, 2025
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
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
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
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
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
You can use continuous queries to export BigQuery data into Spanner in real time. This feature is in preview.
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
6.97.0 (2025-07-10)
Features
Bug Fixes
- Drop max message size (#3987) (3eee899)
- Return non-empty metadata for DataBoost queries (#3936) (79c0684)
6.97.1 (2025-07-15)
Dependencies
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
July 14, 2025
Spanner Data Boost supports data stored on hard disk drives (HDD). This feature is generally available (GA).
July 01, 2025
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
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.
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.
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
- Enable ALTS hard bound token in DirectPath (#3904) (2b0f2ff)
- Enable grpc and afe metrics (#3896) (706f794)
- Last statement sample (#3830) (2f62816)
- spanner: Add new change_stream.proto (f385698)
Bug Fixes
Dependencies
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
Documentation
June 24, 2025
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
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
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
BigQuery supports using Spanner external datasets with authorized views, authorized routines, and cloud resource connections. This feature is generally available (GA).
A monthly digest of client library updates from across the Google Cloud SDK.