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)