What's new in the YugabyteDB v2026.1 STS release series

What follows are the release notes for all releases in the YugabyteDB v2026.1 series. Content will be added as new notable features and changes are available in the patch releases of the YugabyteDB v2026.1 series.

For an RSS feed of all release series, point your feed reader to the RSS feed for releases.

v2026.1.0.0 - June 29, 2026

Build: 2026.1.0.0-b118

Third-party licenses: YugabyteDB, YugabyteDB Anywhere

Downloads

wget https://software.yugabyte.com/releases/2026.1.0.0/yugabyte-2026.1.0.0-b118-darwin-x86_64.tar.gz
echo "$(curl -L https://software.yugabyte.com/releases/2026.1.0.0/yugabyte-2026.1.0.0-b118-darwin-x86_64-tar.gz.sha) *yugabyte-2026.1.0.0-b118-darwin-x86_64.tar.gz" | shasum --check
wget https://software.yugabyte.com/releases/2026.1.0.0/yugabyte-2026.1.0.0-b118-darwin-arm64.tar.gz
echo "$(curl -L https://software.yugabyte.com/releases/2026.1.0.0/yugabyte-2026.1.0.0-b118-darwin-arm64-tar.gz.sha) *yugabyte-2026.1.0.0-b118-darwin-arm64.tar.gz" | shasum --check
wget https://software.yugabyte.com/releases/2026.1.0.0/yugabyte-2026.1.0.0-b118-linux-x86_64.tar.gz
echo "$(curl -L https://software.yugabyte.com/releases/2026.1.0.0/yugabyte-2026.1.0.0-b118-linux-x86_64-tar.gz.sha) *yugabyte-2026.1.0.0-b118-linux-x86_64.tar.gz" | shasum --check
wget https://software.yugabyte.com/releases/2026.1.0.0/yugabyte-2026.1.0.0-b118-el8-aarch64.tar.gz
echo "$(curl -L https://software.yugabyte.com/releases/2026.1.0.0/yugabyte-2026.1.0.0-b118-el8-aarch64-tar.gz.sha) *yugabyte-2026.1.0.0-b118-el8-aarch64.tar.gz" | shasum --check
docker pull yugabytedb/yugabyte:2026.1.0.0-b118

Highlights

Support for OIDC token-based authentication for YCQL databases. YCQL database users can sign in using their JSON Web Token (JWT) as their password.

To use: Disabled by default. Set ycql_use_jwt_auth=true and configure ycql_jwt_conf on YB-TServer (with YCQL auth enabled). Create YCQL roles and use the JWT as the password. See OIDC authentication in YCQL.

Added support for emitting CDC events when table-rewrite DDL operations (DROP, TRUNCATE, ALTER TYPE, ALTER PRIMARY KEY, ADD COLUMN WITH DEFAULT) are executed on tables under replication.

To use: Enabled by default. See Streaming DDLs causing table rewrite.

Introduced a Flink connector for YugabyteDB logical replication, enabling event-driven data pipelines from YugabyteDB to Kafka, Elasticsearch, Iceberg, or data lakes via CDC.

To use: Disabled by default. Deploy a Flink cluster with postgres-cdc and JDBC connector JARs, and submit a Flink job. For detailed steps, see Get started.

Clones are point-in-time copies created in seconds regardless of database size. They share underlying storage with the source at creation and diverge only as new writes arrive. Clone from the current state or from any point within the history retention window — useful for instant data recovery, pre-change safety nets, and isolated development or test environments.

To use: Enabled by default. See Clone a database.

Added support for the PostgreSQL INHERITS clause in CREATE TABLE, allowing child tables to inherit columns and CHECK constraints from a parent table.

To use: Enabled by default. See Table inheritance.

New features

Feature
Description
TP YSQL Distributed Tracing Export YSQL query lifecycle spans (parse, plan, execute, commit, and RPC calls to tablet servers) as OpenTelemetry traces using W3C traceparent context. View waterfall traces in backends such as Jaeger, Grafana Tempo, or Honeycomb.
To use: Disabled by default. Add otel_collector_traces_endpoint to allowed_preview_flags_csv, then set otel_collector_traces_endpoint to your OTLP/HTTP collector URL (for example, http://<host>:4318/v1/traces) on all YB-TServers (restart required). Enable tracing per query with a traceparent SQL comment or the yb_dist_tracecontext configuration parameter. See YSQL Distributed Tracing.
GA Query Plan Management (QPM) QPM ensures stable and adaptable query performance by preventing plan regression and automatically detecting optimal new plans.
To use: Enabled by default. Set the yb_pg_stat_plans_track configuration parameter to top or all (default).
EA Enhanced DDL completeness Added support for previously unsupported PostgreSQL DDL constructs, reducing migration friction from PostgreSQL. New support includes ALTER ROUTINE, ALTER AGGREGATE, and the XML data type.
To use: Enabled by default.

Connection Manager

Feature
Description
GA Authentication passthrough Reduced latency using an authentication passthrough mechanism when acquiring new logical connections.
To use: By default, the passthrough is not used. Contact Yugabyte Support about whether setting the ysql_conn_mgr_use_auth_backend flag is recommended for your workload.
GA Prepared statement deallocation Added support for DEALLOCATE and CLOSE in prepared statements in Connection Manager, preventing errors when a statement is closed and re-prepared.
To use: Enabled by default.

CDC

Feature
Description
GA Synchronize snapshots YugabyteDB adds additional compatibility for pg_export_snapshot allowing for a snapshot to be isolated per session. This isolation guarantees a consistent snapshot as baseline for a specific CDC consumer.
To use: Enabled by default.
EA CDC before-image support for multi-operation transactions Added support for FULL replica identity mode when a row is modified multiple times within a single transaction.
To use: Disabled by default. Set cdc_enable_intra_transactional_before_image to true on all YB-TServers (restart required).
GA Implicit publication Newly added tables now instantly reflect in the publication, eliminating common user errors and enhancing data accuracy.
To use: Enabled by default. See Implicit publication.

Change log

View the detailed changelog

Improvements

YSQL

  • Enables transactional DDL in YSQL, allowing DDLs to run within a transaction block and interleave with DML operations, while ensuring DDL atomicity. #3109, #27616
  • Adds authentication timeouts to enhance security and reliability. #27709
  • Enables transactional DDL by default in release builds, allowing mixed DDL and DML operations within transactions. #3109
  • Deprecated the flag ysql_conn_mgr_max_phy_conn_percent and introduced new flag ysql_conn_mgr_reserve_internal_conns for reserving connections for internal operations. #28859
  • Prevents sending of YBParsePrepareErrorResponse packet for unnamed prepared statements. #29526
  • Allows ALTER TABLE ALTER COLUMN SET STORAGE without errors and logs a warning for YB tables. #29547
  • Ensures connection stickiness when using pg_replication_origin_session_setup. #29842
  • Fixes a memory leak in YSQL authentication pass-through. #29882
  • Reduces unnecessary index rebuilds during ALTER TYPE operations that don't require a table rewrite. #24007
  • Enables the use of ALTER FUNCTION in YSQL for function definition changes. #2717
  • Enables ysql_conn_mgr_pool_timeout for control connection pools. #30315
  • Enables XML data type and associated functions in YSQL. #1043
  • Deprecates old control connection password flag and enhances security by using environment variables for user and database names. #30825
  • Adds metric to track server-side connection establishment time. #28893
  • Disables yb_enable_upsert_mode with secondary indexes to prevent data inconsistencies. #27842
  • Eliminates unnecessary disk I/O by not writing the relcache init file when catalog preloading is enabled. #31837
  • Allows configuring TCP backlog size for Connection Manager with ysql_conn_mgr_socket_listen_backlog. #31824
  • Stops index backfill if the CREATE INDEX process is killed. #26918
  • Allows configuring the TTL for idle control connections, enhancing cleanup. #31959
  • Stops retrying DDL read restarts in the main PostgreSQL loop. #29701
  • Adds OpenTelemetry tracing for YSQL query lifecycle stages. #30598
  • Limits prep statement accumulation on backends with ysql_conn_mgr_max_prepared_statements. #30433
  • Adds distributed tracing for PostgreSQL's extended query protocol. #30672
  • Automatically creates indexes on id columns for Apache AGE labels, enhancing query performance. #31132
  • Automatically creates tracing spans for each RPC to enhance debugging and monitoring. #30599
  • Enhances GUC setting accuracy by forwarding the startup packet to the auth backend. #27723
  • Separates default and session-based YSQL configuration parameters into different lists for better management. #27725, #27827
  • Reduces catalog cache memory spikes during new connections by introducing a TriggerRelcacheInitConnection RPC that allows only superuser postgres to rebuild the relcache init file. #28758
  • Enables automatic catalog version increment for all DDL statements by default. #28253
  • Limits relcache init file rebuilding to internal connections only, reducing the memory spike associated with new connections. Adds debug logs to help diagnose errors when rebuilding the relcache init file. #28758
  • Allows concurrent DDL operations in YSQL when object locking is enabled, enhancing performance and usability. #27037
  • Enhances authentication passthrough, ensuring YSQL connection correctness and reducing latency. #29112
  • Automatically enables pg_dist_rag when starting TServer with enable_dist_rag_service=true. #29954
  • Introduces backoff retry logic for failed auto analyze attempts. #29437
  • Allows clients to wait for servers with the needed version to become available. #30233
  • Enables CPU limits at the database level by assigning backend processes to specific cgroups. #30165
  • Adds support for Apache AGE graph extension to enable graph database capabilities. #30056
  • Enhances protocol tracking for custom parse packets in YugabyteDB. #30848
  • Assigns YSQL Connection Manager (Odyssey) to a specified cgroup to ensure CPU isolation. #31183
  • Adds a background task to retrigger failed DDL verification tasks automatically. #31430
  • Adds OpenTelemetry tracing for SQL queries executed via the SPI path. #30945
  • pg_total_relation_size now includes index size for accurate table size reporting. #23181
  • Automatically single-quotes YSQL configuration parameter values with spaces to prevent crashes. #29808
  • Boosts efficiency by only reading necessary columns during concurrent index builds. #29906
  • Enables selective enabling of the MAGE extension via the yb_enable_mage flag. #31358
  • Updates the Python driver to support the renamed mage extension. #31361
  • Adds a new YSQL function yb_stat_auto_analyze to monitor Auto Analyze stats. #15667
  • Re-enables parallel append by default in YSQL. #28064
  • Enable or disable Query Plan Management to track YSQL statement performance using yb_pg_stat_plans_track. #28160
  • Automatically adds SAOP conditions for certain index columns to optimize merge sorts. #29076
  • Adds support for LISTEN, NOTIFY, and UNLISTEN commands in YB. #1872
  • Allows custom sort orders in index scans through SAOP merge planning. #29070
  • Automatically adds equality conditions for generated columns and indexes based on dependency. #29075
  • Enables complex index scans with custom sort orders using SAOP merge execution. #29072
  • Expands EXPLAIN (ANALYZE, DIST) output to include transaction type, enabling a more formal way to deduce transaction type. #14804
  • Adds variable bloom filter support for queries with multiple keys, enhancing efficiency during scan operations. #28439
  • Adds support for docdb_rows_returned column in pg_stat_statements to count rows returned by the storage layer. #28505
  • Removes TablespaceMap for simpler and direct data access in YSQL functions. #29028
  • Allows pushdown of stable and parameterless SQL Value Functions as storage filters. #28997
  • Adds a new test for backing up and restoring roles. #28689
  • Adds a new ysql_userid column to Active Session History to track user activity and query performance. #28565
  • Expands pg_stat_statements metrics, enabling detailed query analysis with a specific flag. #29194
  • Removes redundant checks in PgClientSession to streamline code execution. #28735
  • Cleans up YbBindSearchArray, enhancing code efficiency and preparing for future bucketized index work. #28834
  • Refactors hash permutations in PgGate to enhance memory management and support more complex query conditions. #28769
  • Removes the unused pg_client_service_util.h file. #28929
  • Enables Read Committed isolation by default in release builds. #29124
  • Enables Early Access to Query Diagnostics from 2025.2. #28959
  • Reduces noise in logs for non-geo-partitioned clusters by changing tablespace logs to VLOG. #28979
  • Increases timeout for TServer catalog version wait to 30 seconds, reducing connection time outs. #28978
  • Allows preloading of RANGEMULTIRANGE to reduce cache misses when pg_range is preloaded. #28991
  • Removes the use of tablespace_map_ in object locking, using a more robust LRU-based cache. #29028
  • Refined type conversions in index backfill code for better consistency and safety. #29038
  • Auto analyze flag now defaults based on user-set cost-based optimizer (CBO) flags, reducing bad combinations. #28944
  • Reduces peak memory usage in yb_active_session_history by filtering out rows more quickly. #29089
  • Speeds up yb_active_session_history queries by allowing time-range filtering. #28810
  • Adds four transaction-specific wait events to Active Session History for better operation tracking. #28792
  • Ensures yb_local_tablets displays current schema names after a rename. #28688
  • Changes explain plan format in query diagnostics to JSON. #29177
  • Enhances SAOP merge execution by using the optimal SAOP in scenarios with varied cardinalities. #29071
  • Reduces the need to adjust catalog versions when adding new YSQL tables. #29238
  • Adds a check to prevent autonomous DDL transactions during an active regular transaction block. #29239
  • Refactors hacky varno logic for clearer Explain output formatting. #29256
  • Removes dead code by deleting yb_fdw.c and yb_fdw.h, enhancing maintainability. #29257
  • Refactors PgClientSession to streamline read time updates via UpdateReadTime. #29310
  • Enhances debugging by logging the last DDL node tag regardless of BEGIN block presence. #29402
  • Automatically registers new error codes, preventing conflicts and serialization issues. #29482
  • Expands yb_explain_hide_non_deterministic_fields to cover additional EXPLAIN fields. #29551
  • Simplifies code by removing redundant PgDocOp::active_op_count_. #29584
  • Reduces code complexity and repeated operations in YSQL functions. #29584
  • Consolidates secondary index scan logic and streamlines class names for future enhancements. #29656
  • Enables RPC stats collection in pg_stat_statements by default. #29749
  • Adds a deprecated YSQL configuration for toggling PG snapshot management. #29763
  • Reduces PgApiImpl initialization to a single method call. #29768
  • Adds support for replication connection authentication in Auth Passthrough mode. #29113
  • Streamlines YSQL code by organizing ResultStream classes into a separate module. #29824
  • Enables ysql_yb_enable_ddl_savepoint_support as a preview feature, ensuring stability for user trials in pre-production environments. #29825
  • Extends the lifetime of fetched data in DocDB for more efficient query processing. #29702
  • Replaces ReplaceAll in libpq- with boost::algorithm::replace_all. #29887
  • Replaces outdated JsonReader with versatile JsonDocument for enhanced JSON handling. #29944
  • Reduces boilerplate code in the PgSession class for streamlined operation. #29932
  • Reduces redundant checks for recheck logic in YB index access methods. #19364
  • Adds direct JsonDocument support in FetchRow/FetchRows for seamless JSON handling. #30063
  • Stabilizes InvalMessageSanityTest by using postgres database. #29983
  • Enables creating servers of type federatedYugabyteDB. #29988
  • Enables fetching the TServer UUID directly via a new SQL function. #29990
  • Enables creation of internal objects for LISTEN/NOTIFY in yb_system database, facilitating system-wide notifications. #1872
  • Adds tracking for duplicate server key hash collisions in the connection manager. #30023
  • Enables full querying of global views on YugabyteDB using the new flag -remote_pg_query_execution_rpc_timeout_ms. #30279
  • Adds an RPC for fetching info of yb_system database tables across all DBs. #1872
  • Reduces unnecessary rechecks for hash code keys in scans. #30064
  • Adds transaction IDs to CREATE DATABASE logs for easier debugging. #30083
  • Enhances handling of CLOSE packets in YSQL to fix sequencing and resource issues. #29574
  • Enhances performance by reducing unnecessary PostgreSQL rechecks. #30097
  • Allows normal users to set yb_max_saop_merge_streams for bucket-based indexes. #30112
  • Refactors replication code to enhance LISTEN/NOTIFY, improving error handling and function availability. #1872
  • Enables index scans to return custom-sorted results using a new SAOP merge feature. #29072
  • Decouples YbctidReader and DocResultStream for better resource management. #30705
  • Identifies the specific tablet housing a row based on its primary key. #30196
  • Enables handling of ALTER ROLE commands for consistent YSQL configuration management. #30113
  • Renames key identifiers for clarity in YugabyteDB's codebase. #30626
  • Simplifies YSQL configuration by replacing three old parameters with one new test parameter. #30586
  • Streamlines YSQL index backfill processes and reduces redundancy in code execution. #30288
  • Reduces clutter in pg_stat_statements by aggregating BACKFILL INDEX entries under a single query identifier. #30203
  • Enhances error hints for scenarios where databases are dropped and recreated. #30319
  • Simplifies the PGConn interface by introducing CopyFromStdin for easier COPY FROM STDIN operations. #30240
  • Enhances function signatures by adjusting the placement of OUT arguments. #30386
  • Enables secondary indexes to return primary keys directly, bypassing main table reads. #3574
  • Renames yb_fallback_to_legacy_catalog_read_time to yb_enable_concurrent_ddl for clarity. #30419
  • Ensures configuration updates are applied to new database sessions after a SIGHUP signal. #30435
  • Adds plan_id to yb_active_session_history to help diagnose query latency issues. #30431
  • Enables distributed tracing in YSQL using OpenTelemetry SDK. #30596
  • Automatically cleans up LISTEN state when a backend crashes to prevent issues and infinite loops. #1872
  • Fixes bugs in LISTEN/NOTIFY operations and ensures correct data handling. #1872
  • Reduces RPCs during authentication by enabling prefetching for system tables. #29952, #30409
  • Enables selective DEALLOCATE for prepared statements using connection manager. #29707
  • Enables runtime updates to YSQL Connection Manager flags for enhanced configuration management. #30537
  • Simplifies handling of SKIP LOCKED in YBCLockTuple function. #30600
  • Ensures object lock release is synchronous with transaction completion to prevent stale schema issues. #30611
  • Moves TableScanDesc out of YbScanDesc to enhance table scan handling. #30664
  • Eliminates read restart errors for catalog reads by clamping the uncertainty window. #30627
  • Enables read restarts for DMLs on catalog queries, reducing errors. #30552
  • Surfaces errors when initializing LISTEN on a YugabyteDB node, ensuring clients receive error messages and clean transaction aborts. #1872
  • Enhances stability by relocating catalog snapshot switching logic to a more suitable function. #30668
  • Collects YSQL statistics for enhanced telemetry in YugabyteDB. #30781
  • Enhances control of PgSession over ExplicitRowLockBuffer for varied flushing scenarios. #30685
  • Enables ysql_yb_enable_listen_notify flag as a runtime configurable option. #1872
  • Makes ConnectionBuilder compatible with MiniYugabytedCluster in Java tests. #30692
  • Introduces flags to adjust notifications polling frequency and enhances signal handling. #1872
  • Supports extracting traceparent from SQL comments or using the yb_dist_tracecontext parameter. #30597
  • Simplifies memory context management in YSQL by generalizing helper methods. #30874
  • Eliminates the storage of query pointers in PgGlobalViewRead, enhancing safety and efficiency. #30860
  • Removes ASH metadata from PgQueryAutoAnalyzeRequestPB for cleaner RPCs. #30742
  • Removes unnecessary coupling and an obsolete field from YbctidReader and DocResultStream. #30705
  • Adds detailed connection logging for successful YSQL authentications. #29817
  • Removes unnecessary GUC name lowercasing and options parsing in Auth Passthrough mode. #29178
  • Replaces the explainrun framework with a more flexible parameterized query system. #30901
  • Adds yb_system database classification as system objects. #1872
  • Renames misleading "primary" identifiers to "key" in internal code for clarity. #30937
  • Enables faster query processing by preloading catalog lists, reducing master lookups. #30868
  • Adds version gate to yb_backup.py for with-statistics option compatibility. #30857
  • Enhances row lock management by flushing explicit locks in multiple YSQL operations. #30685
  • Ensures connections stay sticky when using LISTEN with the connection manager to prevent missed notifications. #1872
  • Optimizes debug logging performance by conditionally building strings. #29338
  • Ensures backfill queries in pg_stat_statements retain actual read times for clear indexing history. #31121
  • Terminates the slowest listener to avoid blocking notifications in a full async queue. #1872
  • Enables yb_db_admin to set backtrace_functions for improved debugging. #31217
  • Allows users to load the renamed Apache AGE extension as mage in YugabyteDB. #31299
  • Enables per-table auto-analyze settings for more tailored database optimization. #30740
  • Enhances new connection reliability by fixing relcache revalidation issues. #31309
  • Reverts client encoding source to PGC_S_DYNAMIC_DEFAULT, ensuring proper encoding settings on authentication. #30148
  • Ensures GUC updates are visible on newly authenticated clients by correctly updating control backend LCVs on SIGHUP. #31357
  • Prioritizes traceparent YSQL configuration over SQL comments for distributed tracing. #31112
  • Enables tracing for SQL queries with a traceparent comment at the end. #30946
  • Enables distributed tracing for shared memory communications between PostgreSQL and TServer. #31324
  • Prevents sending incorrect superuser status and ensures correct default settings in Auth Passthrough mode. #30148
  • Resets the readahead buffer properly when it fills up to prevent connection issues. #30148
  • Enhances forwarding of NoticeResponse packets during backend startup in YSQL. #30148
  • Removes redundant ybhnsw.ef_search GUC, simplifying configurations using standard hnsw.ef_search. #31676
  • Terminates the slowest listener to prevent queue overflow and ensure timely notifications. #31511
  • Enables predicate pushdown during index backfill, optimizing data scanning. #30263
  • Enables batched DocDB lookups for mismatched foreign key data types. #27007
  • Disables a foreign key optimization by default for type mismatches. #27007
  • Reduces flushes for NOTIFY operations by grouping INSERTs and DELETEs. #31568
  • Increases the default limit for DDL invalidation messages to 8192 to reduce costly full catalog refreshes. #31797
  • Drops replication slots on tserver restarts or decommissioning to unblock WAL cleanup. #31485
  • Enables ALTER ROLE and ALTER DATABASE settings by default for pooled connections. #31854
  • Removes support for shared catalog version mode, deprecates ysql_enable_db_catalog_version_mode flag. #28937
  • Reduces test runtime for PG wait-events by 70% by combining tests into one cluster. #31955
  • Disables parallel query for CTAS and REFRESH MATERIALIZED VIEW by default. #31670
  • Increases default yb_parallel_range_size to 16MB for better query efficiency. #32006
  • Enables automatic restoration of table statistics with ysql_dump. #28713
  • Reduces YSQL backend startup logging to only two useful lines. #29579
  • Expands extension development by including necessary YugabyteDB headers in the installation directory. #11491
  • Enables Batched Nested Loop joins on expression-based indexes. #17175, #28942
  • Enables distinguishing control backends during startup through a new packet field. #31418
  • Enables BNL joins by shifting unbatchable conditions to join filters. #31760

YCQL

  • Enables clearing the YCQL MetaData cache via the yb-ts-cli tool. #7832
  • Enhances yb-ctl status info formatting by using a dictionary. #29216
  • Enables JWT-based authentication for YCQL using external IDPs. #29860
  • Enables regular expression based identity mapping for YCQL JWT authentication. #29861
  • Enables ycql_use_jwt_auth as a preview flag to enhance JWT authentication testing in YCQL. #30276
  • Renames ycql_jwt_options to ycql_jwt_conf for familiar configuration naming. #30276
  • Handles double quotes in ycql_jwt_conf to prevent server startup failures. #30557
  • Enables production use of ycql_use_jwt_auth for OIDC authentication. #31512

DocDB

  • Changes default value of ysql_num_tablets to 1 for initial number of tablets in hash partitioned tables. #28060
  • Optimizes index scans by adaptively deciding to use next or re-seek, reducing query latency. #28616
  • Adds logging to detect and inform if scheduled tasks in the reactor run slower than expected. #24801
  • Enables detailed data and checksum dumps for tablets via new commands, aiding in consistency checks and troubleshooting. #29904
  • Reworked the load balancer to not hold CatalogManager::mutex_ for each placement run, thus improving efficiency. #29183
  • Enables log-dump to read encrypted WAL files using the master_addresses flag. #17816
  • Adds the ysql_clone_disable_connections flag to allow YSQL database connections during cloning. #29678
  • Adds "DETAIL" prefix to Master and TServer log lines for clarity. #29703
  • Automatically scales up transaction status tablets as clusters grow. #29555
  • Renames a variable to better reflect that it stores the master leader's cloud info, not the TServer's. #20231
  • Enhances the log-dump tool with packed rows support and improves error handling. #29608
  • Adds detailed logging for SST file metrics and creation events. #20880
  • Adds background checks for TServer connectivity and shares results via RPC. #30039
  • Suppresses error logs for missing files on deletion to streamline operations. #29757
  • Reduces log frequency to once per second for tablets stuck in bootstrapping. #24566
  • Enhances sst_dump to correctly handle and display RocksDB-level tombstone records. #19707
  • Defers promotion of peers from PRE_VOTER to VOTER until local bootstrap completes. #29795
  • Enhances the log-dump tool output and usage message, adds transaction ID field, and introduces a new flag no_pretty_hybrid_times. #29733
  • Logs tserver start time and PID for easier troubleshooting. #14805
  • Enhances logging for middle key selection in tablet splitting, aiding in debug and analysis. #27336
  • Enables stepping down to a preferred leader zone when removing a replica. #19884
  • Tracks and alerts on more RPC rejections due to memory pressure. #20670
  • Enables system catalog flush and compaction across all YB-Master peers. #10948
  • Adds a tablet_split_candidates metric for tracking unsplitted tablet counts. #28958
  • Adds logging for large memory allocations with stack traces. #12500
  • Adds retries to FetchData RPC to handle intermittent network issues during remote bootstrapping. #26217
  • Enables tracking of memory used by compactions in RocksDB. #26845
  • Enhances advisory lock table scalability by including all columns in the hash calculation. #30660
  • Ensures xCluster resumes from checkpoints more reliably by reusing known OpIds and reducing LookupOpId calls. #30769
  • Increases default tablet split and compaction thread limits for better performance. #29026
  • Logs now detail the reasons behind each RocksDB flush for better traceability. #25615
  • Makes placement_uuid optional in read replica tablespace creation, auto-filling it from cluster config if omitted. #31192
  • Captures origin_id from PostgreSQL sessions, enhancing CDCSDK handling of WAL records for distributed transactions. #29582
  • Prevents xCluster replication issues by ensuring new schema versions are current. #29760
  • Adds control for vector index inclusion in post-split compaction. #29378
  • Adds a flag to control automatic tablet splitting for tables with vector indexes. #29380
  • Limits TServer crashes by capping log reader memory usage in xCluster replication. #28124, #22992
  • Checks tablet limits before starting the DB cloning process. #22338
  • Enables safe activation and deactivation of the skip prefix locks feature and allows for safe upgrades. #28823
  • Allows control over the number of tasks running in parallel via the introduction of PriorityThreadPoolToken. #29151
  • Control the number of vector index compactions per tserver with new flags, offering control over chunks taken for compaction and limiting running compactions per TServer. #27601
  • Promotes object locking preview flag to a regular flag, allowing users to control the feature through the enable_object_locking_for_table_locks flag. #29317
  • Marks follower_unavailable_considered_failed_sec as a runtime flag. #30123
  • Skips replication of PUBLICATION and SUBSCRIPTION DDLs in xCluster mode. #29340
  • Fixes lock order inversion during table creation failures. #30088
  • Supports session-level object locks extending lock lifespan across transaction boundaries. #27120
  • Filters high-frequency logs to a new DETAIL_LEVEL without changing default log visibility. #30307
  • Adds infrastructure for managing cgroups in YugabyteDB. #30441
  • Enables per-database CPU resource management on tserver with new flags. #30099, #30162
  • Preserves pg stats when cloning databases, reducing manual steps. #30257
  • Enables per-database CPU limits by using dedicated thread pools for YSQL requests. #30163
  • Allows using multiple thread pools to manage CPU limits more efficiently. #30752
  • Ensures DDLs committed together on the source are applied atomically on the target. #29127
  • Enables isolated CPU usage for each database using a cgroup hierarchy. #30510
  • Enables monitoring of CPU usage and throttling metrics per cgroup for quality of service. #30125
  • Simplifies QoS cgroup hierarchy and enhances metric visibility for TServer threads. #31183
  • Supports early detection of unsupported table types in cross-cluster replication setup, enhancing error messages. #14906
  • Reduces spammy logs in CDC service, TX manager, and RocksDB operations. #29581
  • Increases yb-tserver file handling capacity on macOS by using raw POSIX file operations. #30601
  • Configure RocksDB keys delta-encoding separately for YCQL and YSQL for faster read path and space efficiency. #28862
  • Displays xCluster safe time on yb-master UI page for enhanced debugging. #28910
  • Introduces two YSQL configuration parameters to control use of tablespace-local locality, offering workaround for suboptimal performance in certain cases. #28604
  • Updates compaction logic to correctly handle and clean tombstoned reverse-mapping vector index keys. #27095
  • Reduces CPU overhead and memory allocation for filtered queries by eliminating unnecessary data transformations. #28928
  • Allows reads and writes to proceed without waiting for a full quorum acknowledgment, reducing YSQL write and read latencies. #28320
  • Disables table locks to prevent potential test failures. #28696
  • Allows tablespace-local transactions to write to tables in any contained tablespace without global promotion. #28272
  • Adds logging for long shutdown delays to aid in debugging. #28796
  • Enables direct encoding of QLValuePB to binary format for faster lookups. #28808
  • Calculates region locality on the tserver side for improved region local transactions handling. #28828
  • Introduces disk write statistics for vector compaction, which offers insights into IO across vector index libraries. #28842
  • Enhances verbose logging for xCluster to track safe time issues. #28846
  • Enables skip prefix locks by default for new installation clusters. #28894
  • Removes unused DummyANN from DocDB, streamlining code maintenance. #28911
  • Adds server-level metrics to track the number of transactions started as global, region-local, and tablespace-local. #28921
  • Standardizes thread names for the /perf endpoint to improve flamegraph clarity. #28803
  • Speeds up read and write requests by using lightweight protobufs. #29787
  • Adds latency metrics for bloom filter operations, controllable via rocksdb_collect_bloom_filter_time_metrics flag. #28617
  • Enables configuring read replicas at the tablespace level, enhancing data access flexibility. #12180
  • Now captures TCMalloc and MemTrackers stats in logs when root memtracker soft memory limit is exceeded, aiding in memory issues investigation. #29050
  • Refactored mutex acquisitions in larger clusters to mitigate contention issues. #29186
  • Enables vector index background compactions by default to control parallel execution and limit compactions per tserver. #29212
  • Ensures more balanced tablet splits by calculating the middle key from user data only. #29214
  • Blocks nextval and setval functions in automatic mode target databases for xCluster replication. #29248
  • Reenables LogReader memory limit in xCluster following resolution of TryConsume bug. #29252
  • Enhances vector index checkpoints placement for tablet splitting. #29262
  • Enhances block navigation accuracy and API access in TwoLevelIteratorState. #29281
  • Supports lightweight protobufs for enhanced performance in read/write requests. #29295
  • Enhances debugging and fixes a bug in RWCLock logging. #29309, #29364
  • Enables expression evaluation using lightweight protobufs. #29371
  • Added tablet replica SST and WAL size to master UI and sorted tablets by partition key. #29407
  • Added new /snapshots endpoint to tserver UI displaying space overhead information of snapshots, including snapshot ID, time, cumulative required space, exclusive data space, and schedule ID. #29388
  • Expands test APIs to support N-way tablet splitting with vector of split keys. #29469
  • Enhances tablet splitting APIs to support a list of child IDs and keys, still limited to 2-way splits. #29470
  • Automatically deletes vector index directories when tablets are deleted. #29447
  • Reduces unnecessary transaction aborts during DDL operations with table locks enabled. #27613
  • Prevents false deadlocks by not reusing transactions that have blocked others. #28042
  • Enables manual tablet splitting for vector indexes. #29377
  • Ensures middle key computation for splits correctly checks SST file count and size. #29627
  • Enables multi-way tablet splitting for more flexible and precise data distribution. #29471
  • Eliminates redundant logic for child tablet registration, enhancing system consistency. #29643
  • Automatically appends throttle messages to YB_LOG_EVERY_N* log outputs. #29661
  • Facilitates migration to lightweight protobufs using intermediate typedefs. #29705
  • Renames kNumSplitParts to kDefaultNumSplitParts for clarity in split parts count. #29713
  • Logs now show the distance function used by the vector index. #29804
  • Enables testing N-way tablet splits by updating key request and response protocols. #29815
  • Allows specifying the number of split children in MasterAdmin::SplitTablet RPC. #29846
  • Allows specifying a split_factor in yb-admin split_tablet for custom tablet splits. #29734
  • Logs ysql_dump output on script failure during DB cloning. #29607
  • Adds detailed metrics for vector index operations in DocDB. #30004
  • Enhances cluster management by using local consensus state instead of ListMasters RPC. #29975
  • Enhances xCluster DDL replication testing for various table rewrite scenarios. #29996
  • Sets yb_hnsw as the default backend for vector indexes. #29964
  • Displays TServer connectivity states in the Web UI. #30179
  • Enables Object Lock Manager to ignore conflicts with background transactions. #30186
  • Stores both original and pause errors in xCluster DDL for easier debugging. #30156
  • Reduces PostgreSQL's dependency on RocksDB by restructuring libraries. #30226
  • Enables ScaNN support by updating third-party libraries. #30238
  • Reduces header bloat in catalog_manager.h by cleaning up unnecessary includes. #30304
  • Allows using double flags with flag comparison validators. #30440
  • Sets namespace_id in tablet metadata for clone requests. #30548
  • Delays YSQL Connection Manager startup until lease acquisition. #29495
  • Consolidates separate block caches into one to prevent memory overrun. #30604
  • Enables block-based vector index conversion for hnswlib backends. #30720
  • Adds a metric to track ongoing tablet splits in the cluster. #30648
  • Adds support for EXPLAIN ANALYZE DEBUG in vector index queries, providing detailed metrics. #26550
  • Adds column sorting in the Master/TServer UI /threadz table. #30695
  • Displays cgroup information in the /threadz endpoint for better debugging. #30696
  • Simplifies shared memory object locking by removing the finalized field. #30755
  • Removes EnvMirror to prevent potential memory leaks. #30744
  • Removes outdated code for the UpdateTransactionStatusLocation RPC. #30584
  • Streamlines xCluster failover by making the API asynchronous and adding status persistence in SysCatalog. #30564
  • Increases the default value of FLAGS_num_advisory_locks_tablets to 3. #30823
  • Enhances xCluster UI with clickable links and color coding for easier readability. #30938
  • Sets the follower_unavailable_considered_failed_sec flag higher than leader intervals to ensure peer stability. #30969
  • Switches atomic operations in metrics to std::atomic for enhanced performance on ARM. #30974
  • Supports LOG(DETAIL) and similar macros for detailed logging. #31141
  • Adds CPU profiling access via a new icon on master and tserver utilities pages. #31152
  • Simplifies TaggedThreadPools and fixes ThreadPoolTest failures. #31198
  • Enables TabletPeer to use per-db servicer pools improving write operations. #31213
  • Ensures clones aren't made to a point before a YSQL upgrade for consistency. #28525
  • Enables database count limits when QoS is active using qos_max_db_count flag. #31205
  • Adds a /cgroups endpoint to the tserver UI to monitor cgroups. #30732
  • Enables database cloning by default in new YugabyteDB universes. #30838
  • Deprecates yb_silence_advisory_locks_not_supported_error to prevent inconsistent behaviors. #31385
  • Allows yb-ts-cli compaction commands to compact vector indexes by default. #31350
  • Displays thread names and detailed CPU statistics for leaf cgroups on the /cgroups endpoint. #31392, #31572
  • Ensures the database_name label is always included in cgroup metrics. #31664
  • Switches the default vector index backend to hnsw_lib for enhanced performance. #31757
  • Ensures pipelined async writes continue smoothly during leader changes via TabletInvoker retries. #31402
  • Displays YSQL operation lease status on the tablet servers' HTML status page. #25707
  • Enables building with GCC 15 and introduces customizable toolchain options. #31593
  • Displays distinct PostgreSQL process names in the /cgroups endpoint. #31979
  • Allows yb-admin get_table_hash to hash individual colocated tables accurately. #31952
  • Enhances yb-admin get_table_hash with key range parameters to focus on specific data segments. #31951
  • Speeds up CDCSDK tests by using the default yugabyte namespace instead of creating a new one. #31965
  • Enables error messages to display tablet and table names for Snapshot too old errors. #28841
  • Enables creating performance flamegraphs via a new endpoint /perf. #28355
  • Renames "load balancer" to "cluster balancer" for clarity and accuracy. #29554
  • Enables packaging of profiling tools and running perf during unit tests. #29866
  • Eliminates the need for continuous snapshot schedules during xCluster failover. #30389
  • Streamlines vector index configuration with a single new flag vector_index_backend. #30379
  • Adds a new unit test to ensure database cloning preserves xCluster DDL replication tables. #27930
  • Fixes index creation inconsistency by replacing catalog lease with more reliable YSQL lease. #27863
  • Updates DocumentDB extension to version 0.109-0 and merges latest changes. #30863
  • Enables building on macOS with llvm-installer clang using ./yb_build.sh set to clang21. #30035
  • Enables consistent use of HybridTime value types as compile-time constants. #32020
  • Enhances yb-admin list_tablets to display partition keys in clearer formats, matching the :9000/tablets UI. #28444

CDC

  • Reverts a commit due to a misunderstanding about the effects of failures when writing to the CDC state table. #28014
  • Automatically detects and adapts to DDL table rewrites in CDC streaming. #29675
  • Limits the number of tablets polled in GetConsistentChanges calls. #29900
  • Ensures safe upgrades for CDC with DDLs by checking cdc_enable_dynamic_schema_changes. #30355
  • Allows dynamic control of GetChanges response size in yb-client. #30780
  • Removes dependency on deprecated field for schema name in CDC records, fetching directly from pg_namespace. #28655
  • Supports streaming CDC records for specific table rewrite DDL operations. #15576
  • Allows CDC streaming from tables without a primary key using a new flag. #29423
  • Enables ysql_enable_pg_export_snapshot by default and exposes it as a YSQL configuration parameter. #27253
  • Added runtime flag to control CDC with Savepoints and Rollback feature, and introduced tests for rollback and savepoint behavior. #29773
  • Switches CDC snapshot batching to byte-based threshold for better memory management. #29850
  • Corrects test to ensure hidden tablets are deleted post-expiry, not just due to restart time adjustments. #15576
  • Reduces unnecessary iterations over the cdc_state table by removing reliance on DELETING_METADATA state for stream cleanup. #29360
  • Throws an error when pg_current_wal_lsn is called, indicating unsupported feature. #30243
  • Reduces unnecessary master load by not populating backend_xmin in pg_stat_get_activity. #29747
  • Removes the FLAGS_yb_enable_cdc_consistent_snapshot_streams flag and sets consistent snapshot streams as the default for tests. #23000
  • Enables safe upgrades for the logical replication of dynamically added tables. #27686
  • Enhances system performance by preventing unnecessary RPCs to the yb-master in pg_stat_get_activity. #29747
  • Ensures UPDATE/DELETE operations work with row filters and default replica identity. #22490
  • Ensures UPDATE and DELETE with row filters work for tables using REPLICA IDENTITY CHANGE. #22526
  • Reduces tserver log spew during YSQL logical replication. #30630
  • Adjusts CDC retention barriers for sys_catalog based on record consumption, ensuring data integrity. #26427
  • Enables streaming of tables without primary keys in logical replication by default. #29423
  • Enhances CDC tests to handle the implicit dynamic table addition mechanism effectively. #30298
  • Supports capturing before images for intra-transactional DML operations. #29209
  • Enables local RPC calls in Virtual WAL if cdc_enable_local_rpc_in_virtual_wal flag is enabled. #20946
  • Reduced logging levels in CatalogManager::FindXReplStreamsMarkedForDeletion when a table is dropped. #29637

yugabyted

  • Activates read committed isolation and cost-based optimization by default for newly started clusters. #29169
  • Enhances compatibility with Python 3.12 by updating CQLSH in third-party libraries. #30154
  • Reduces namespace pollution and enhances compilation safety by replacing SpinLockHolder macro with [[nodiscard]] attribute. #31629
  • Eliminates build errors due to overlapping macros between gutil and Abseil. #31673
  • yugabyted now stops child processes using SIGTERM to allow cleanup. #29676

Other

  • Upgrades Node.js to 22.18.0 and transitions from snowpack to vite. #29504, #29505
  • Applies CPU limits at the database level by associating PgClientSession threads with the correct database cgroup when enable_qos is true. #30511
  • Enables the SCAN Redis command for enhanced search capabilities, safely handles edge cases with empty memtables, and ensures proper error checking during tablet peer lookups to prevent fatal restart errors. #2

Bug fixes

YSQL

  • Ensures Perform requests in YSQL are processed in the order they are issued to avoid errors. #23648
  • Fixed the Connection Manager's support for replication connections, ensuring that it independently manages these connections, aligning with PostgreSQL's behavior. #28521
  • Eliminates stale hashmap entries on parse errors, enhancing protocol-level prepared statement handling. #28576
  • Allows users to preload pg_enum in ysql_catalog_preload_additional_table_list. #28757
  • Allows yb-admin ysql_catalog_version command to return per-DB Catalog Version value for a provided database. #28690
  • Prevents YSQL major upgrade failure caused by inconsistent namespace mapping during a failed upgrade attempt. #28815
  • Disallowed Batched Nested Loop joins when the inner relation is a temporary table to prevent cache lookup errors or assertion failures. #28864
  • Implemented statement timeouts and interrupt checking in pggate, providing an upper bound for query or operation time and terminating if deadline is reached. Deprecated the unused gflag pggate_rpc_timeout_secs. #28863
  • Enhanced handling of empty strings in CatalogEntityPB to prevent parsing failures during table entry deletion. #29240
  • Fixed issue where server connection gets stuck due to full server write buffer after ungraceful client disconnects. #29301
  • Implemented a fix to remove stale entries from the server's hashmap during connection manager reset phase. #29527
  • Fixed an issue where integer overflow in the new cost model could lead to negative cost estimates, resulting in poor plan choices. #29685
  • Adjusted CatalogManager::GetYsqlCatalogConfig to use catalog_version_table_in_perdb_mode_ over FLAGS_ysql_enable_db_catalog_version_mode for accurate per-db mode representation. #28690
  • Reduces CPU usage in connection manager by improving epoll_* functions and fixing syntax errors. #29827
  • Fixes quoting for unique constraints during schema restores. #29838
  • Installing pg_stat_monitor now displays a beta warning. #29321
  • Optimizes column fetching during scans by removing redundant work, enhancing performance. #29847
  • Enhances upgrade prechecks to detect pgcrypto conflicts, preventing PG15 upgrade errors. #29267
  • Removes the ysql_beta_feature_pg_stat_monitor flag for pg_stat_monitor beta warnings. #29321
  • Fixes issues with placement wildcards and leader preferences in tablespaces. #29971
  • Ensures accurate index updates in INSERT ... ON CONFLICT for partial indexes. #30104
  • Sets default pg_upgrade directory to pg_upgrade_data and allows configuration via pg_upgrade_working_dir flag. #29172
  • Ensures unique index backfills use consistent timestamps for write and read operations. #30331, #30312
  • Enhances replication connections from connection managers by not populating catalog version. #30384
  • Ensures fast path writes correctly observe recent distributed transactions. #30551
  • Automatically cleans up socket directories after a failed YSQL upgrade rollback. #30420
  • Eliminates redundant statistic updates during BACKFILL INDEX to improve performance. #30562, #30120
  • Prevents data inconsistency during index backfill by disabling in-place updates. #30653
  • Fixes memory leak when reading corrupted pg_stat_statements files. #30827
  • Sets default yb_qtext_size_limit to unlimited, preventing NULL query texts. #30775
  • Prevents server crash by validating portal existence during the extended query protocol. #29986
  • Enables on-demand building of catcache lists for improved function resolution. #31043
  • Clarifies logs related to YSQL DDL transaction verification for better user understanding. #27153
  • Handles stale transaction retries more effectively. #30895
  • Ensures connection routes are not destroyed during garbage collection if active servers exist. #31189
  • Enhances accuracy of seek and next count estimations in secondary index scans. #25564
  • Corrects inconsistencies in index scan cost calculations for better query performance. #27718, #30490
  • Ensures consistent cleanup of parallel contexts after YSQL query failures. #30040
  • Fixes a segmentation fault in stored procedures that perform ROLLBACK. #31199
  • Reduces startup queries by caching colocation status on TServer. #29647
  • Stops control connections from being marked as sticky, allowing reuse for multiple auth attempts. #31904
  • Fixes CREATE INDEX hanging issue when enable_ysql_operation_lease is set to false. #31978
  • Ensures clients don't hang indefinitely by signaling them when a server is removed. #31988
  • Allows group and others read permission on initdb log files by hardcoding the permission. #28435
  • Sets Read Committed isolation as disabled by default in release builds. #31686
  • Fixed an issue where connection manager could crash during authentication due to a double free error. #29195
  • Resolves Bind packet forwarding issue for unnamed prepared statements. #29935
  • Fixes a potential segfault when handling auth errors in Auth Passthrough mode. #29477
  • Anonymizes database names and adds callhome_ysql_interval_secs flag. #30921
  • Disables table locking and transactional DDL in the 2026.1 release. #31079, #31088
  • Fixes race conditions in concurrent parallel key range fetching. #31219
  • Forces immediate flushing of row locks in YSQL, ensuring lock acquisition before operations. #26307
  • Supports multiple analyze commits and concurrent DDL, ensuring low priority lock on pg_yb_catalog_version is retaken during subsequent transactions. #28731
  • Fixes a bug that caused yb-master to crash when executing the CREATE INDEX command outside of a transaction block with savepoint for DDL support enabled via TEST_ysql_yb_enable_ddl_savepoint_support. #28955
  • Forces loading of index expressions during index creation to prevent missed updates and potential inconsistencies. #28267
  • Prevents Postgres crash by avoiding invalidation messages during catalog refresh when prefetcher starts. #28490
  • Fixes the issue of transaction self-abort with rollback to savepoint, allowing users to rollback DDL operations without facing transaction expired/conflict error. #28956
  • Disables query layer retry of ANALYZE command to prevent potential crashes caused by dirty states. #29025
  • Automatically sets default values for dependent flags when the YSQL Cost-Based Optimizer (CBO) is enabled or disabled. #29081
  • Fixed issue where unique index data was missing for colocated databases after restore, now preserving implicit tablegroup oid. #28781
  • Eliminates an issue causing stuck rollback operations to sub-transactions with alter table. #28957
  • Eliminated potential TCP deadlock in YSQL by changing to asynchronous write in od_frontend_remote_client. #29303
  • Fixed an issue where running ALTER TYPE on a table with dependent indexes triggered double index creation, causing replication conflicts on xCluster targets. #27741
  • Now revalidates stale relcache init files efficiently without full rebuilds if catalog version changes but no other changes. #29260
  • Modified od_write function to prevent double free of mm_msg_t objects and enhanced machine_msg_free to handle NULL messages. #29398
  • Fixes race condition in ROLLBACK TO SAVEPOINT handling for DDLs. #29414
  • Updates process exit behavior on pggate heartbeat failure during initialization. #29242
  • Fixed a bug in YugabyteDB's backup and restoration process involving the mismatch of colocation_id in colocated databases. The fix preserves the original colocation_id when implicit indexes are created during the ALTER TABLE statement, ensuring that the colocation ids are consistent after restoration. #29260
  • Enhances stability during transaction rollbacks involving index and base table deletions. #29373
  • Truncate user and database names exceeding 64 characters to prevent buffer overflow during startup. #29331
  • Reduces memory usage when using legacy mode for catalog operations with a fixed pruning logic. #29612
  • Ensures replaced trigger functions are used correctly in transactions. #29424
  • Ensures that newly created or updated functions are correctly recognized and replace stale versions in YSQL. #29424
  • Fixes handling of concurrent DDL and DML operations for accurate snapshot application. #29269
  • Prevents null pointer access issues in PgClient after shutdown. #29803
  • Maintains correct message order by buffering ParameterStatus updates. #29884
  • Prevents crashes during transaction abort when an ALTER TYPE command fails with transactional DDL enabled. #29325
  • Fixes memory leaks by disabling unused queue for untracked RPCs. #29955
  • Avoids "relation already exists" error during concurrent CREATE INDEX. #29735
  • Ensures CREATE INDEX CONCURRENTLY runs smoothly by removing outdated checks. #29987
  • Reinstates missing values restoration in backups, adding logs for schema mismatches. #29960
  • Eliminates backend crashes during DDL aborts when transaction metadata is not set. #29994
  • Simplifies the PgSession::RunAsync method signature for easier future modifications. #26307
  • Ensures stats for range data types are restored after backup in YugabyteDB. #30147
  • Removes tuple locks to prevent deadlocks during concurrent ALTER TABLE. #30095
  • Prevents PostgreSQL backend crash by addressing a dangling reference issue. #30013
  • Eliminates a memory leak in YSQL's authentication process. #30275
  • Enhances secondary index scans on colocated databases to support merge sort operations. #30221
  • Fixes error handling for concurrent DDL transactions to prevent incorrect error messages. #29692
  • Preserves table statistics during backup and restore, even when secondary indexes are involved. #30151
  • Fixes inconsistency in CREATE INDEX handling with object locking enabled. #30260
  • Prevents crashes during ROLLBACK with transactional DDL and savepoints. #30661, #30348
  • Prevents premature detaching of logical connections during pipelined operations. #30515
  • Ensures catalog reads use the latest snapshot after a read restart, preventing index inconsistencies. #30260
  • Prevents server crashes during index creation with concurrent DDL enabled. #31153
  • Fixes index inconsistency issues during parallel DML and non-concurrent index creation. #30955
  • Ensures rollback to savepoint properly waits for table deletion to finish. #30924
  • Reduces memory consumption of the YSQL Connection Manager by releasing unused memory back to the OS. #31246
  • Reduces errors in updates by skipping unnecessary partition checks. #31475
  • Switches from 32-bit to 64-bit hashing to minimize prepared statement collisions. #30654
  • Enhances handling of in-flight Parse operations with a tracking queue. #30175
  • Ensures consistent entry matching in response batches during schema version mismatches. #31204
  • Ensures consistency during rollback to savepoint by correctly handling asynchronous DeleteTablet RPCs. #30721
  • Corrects tracking of parameter values in QPM for maximum execution times. #30853
  • Masks sensitive constants in QPM stored plan texts. #31049
  • Redacts sensitive execution parameters in yb_pg_stat_plans by default. #31050
  • Fixes crash during prepared statement closure by ensuring transactions are active. #31860
  • Enhances query accuracy by ensuring hash permutations stay within target tablet bounds. #31051
  • Prevents fatal errors during retries of transaction control commands in DDL operations. #30908
  • Ensures consistent read times for batches of DML operations following DDLs in a transaction. #29283
  • Resolves hangups in COPY operations by resuming client relay on receiving COPY_IN_RESPONSE. #32102
  • Fixes connection issues when dropping collections and databases in DocumentDB extension. #27698
  • Fixes an issue where the mage extension crashes during the first cypher call under UBSan. #31404
  • Prevents crashes when terminating a DDL transaction using pg_terminate_backend. #31439
  • Enables execution of DELETE and (re-)INSERT operations in a single flush for indexed JSONB columns, making updates less expensive. #27948
  • Increases default values for parallel_setup/tuple_cost to better balance YB scan node and PG node costs. #28939
  • Restores distinct error messages for kAbort and kConflict errors for clearer troubleshooting. #28157
  • Displays accurate Storage Flush Requests and Execution Time for non-buffered write operations in the EXPLAIN ANALYZE output. #26963
  • Adds synchronization wait time to prevent crashes on startup in clockbound mode. #28377
  • Introduces a new gflag ysql_yb_enable_update_reltuples_after_create_index to update reltuples for base table and index after CREATE INDEX, aligning with Postgres behavior. #25394
  • Reduces RPCs by using Index Only Scan for INSERT ...ON CONFLICT ...DO NOTHING statements. #28324
  • Ensures generated hints correctly support partitioned and child table queries. #28070
  • Preserves table locality information for deferred triggers during subtransaction rollbacks. #28725
  • Reads placement flags values directly via YBCGetGFlags instead of environment variables. #28697
  • Fixes a bug with transactional DDL not considering the yb_force_catalog_update_on_next_ddl flag, preventing crashes during transaction rollback containing an ALTER TABLE statement. #28000
  • Resolves issues in TestPgRegressPlpgsql by enabling transactional DDL, reducing the chance of crashes due to many retries when transaction rollback is performed, especially with ALTER TABLE statements. #28000
  • Introduces a new flag ysql_auth_method to select the password authentication method for YSQL, ensuring backward compatibility and avoiding user lockouts during upgrades. #28809
  • Deprecates the YSQL configuration parameter yb_make_next_ddl_statement_nonincrementing to enable incremental catalog cache refresh by default. #28765
  • Adds logic to accurately merge catalog modification aspects in nested ddls when transactional ddl is enabled. #28000, #28791
  • Fixes an error where a join condition was incorrectly pushed down in a batched nested loop, preventing crashes during planning. #28112
  • Fixes a regression bug that caused an OBJECT_NOT_FOUND error during an index alteration, ensuring smoother table modifications. #28849
  • Resets transaction read point for DML statements following a DDL execution in transactional DDL mode. #28871
  • Global DDL operations won't be aborted by concurrent (auto)ANALYZE processes in separate databases. #28877
  • Prevents dangling pointer issue in YbcFlushDebugContext by properly storing temporary strings. #28913
  • Corrects the YB_LAST_USED_OID for the yb_tablet_metadata view. #28902
  • Disables transactional ddl and object lock in pg_partman-test due to unsupported transactional ddl. #28879, #28726
  • Fixes the test PgHintTableTest.PreparedStatementHintCacheRefresh for transactional DDL, preventing crashes due to many retries when a transaction rollback contains an ALTER TABLE statement. #28000
  • Prevents regular DDL within a transaction block from being aborted by auto analyze. #28926
  • Accommodates AlmaLinux 9 glibc updates in collation unit tests without failure. #25743
  • Enables session defaults to reset correctly during transactions via new packet protocols. #28445, #20603
  • Fixes crashes during savepoint rollback for the first DDL in transactions. #29013
  • Adds a preflight check to fail upgrades if user-defined roles with the yb_ prefix exist, except yb_superuser. #28977
  • Refactors YbBindSearchArray's handling to eliminate potential bugs related to mutating is_column_bound and setting ybScan->all_ordinary_keys_bound, improving result accuracy. #29042
  • Refactored index backfill code in YSQL for improved readability and efficiency by standardizing field names and optimizing row reading process. #29052
  • Enhances error message clarity when altering the primary key index owner. #29001
  • Fixes error in REINDEX INDEX statement execution on partitioned tables with transactional DDL enabled. #29058
  • Fixes are introduced to address intra-query memory leaks during long-running write queries, reducing transient memory spikes and improving memory allocation. #29056, #29057
  • Prevents unnecessary request dispatches for out-of-bound hash permutations. #29041
  • Corrects index-only scans in unbatched INSERT...ON CONFLICT...DO NOTHING queries for multi-column indexes. #29109
  • Fixes flaky TestYbQueryDiagnosticsStatus and removes unused test resources. #27998
  • Resolves a bug that reset the query id of the walsender process to 7 from 11. #29147
  • Enhances log message clarity for AlterTable CHECK failures in PgSchemaChecker to aid debugging in PITR restore scenarios. #28535
  • Adds a backend type and libpq option to prevent analyze executions from hanging and ensure smooth CREATE INDEX operations. #29115
  • Fixed a bug that caused crashes when arrays of more than two dimensions are passed to a scalar array operation. #29188
  • Ensures hash permutations reset correctly for parallel queries on hash-distributed tables. #29198
  • Restored legacy mode costing and path creation behavior in YSQL. This is achieved by reverting BNL specific changes and negating a side effect on row count estimation introduced by boolean index fix. #29206
  • Enables yb_enable_update_reltuples_after_create_index when the Cost-Based Optimizer (CBO) is turned on using the ysql_yb_enable_cbo flag or yb_enable_cbo YSQL configuration parameter. #25394
  • Query ID calculation now excludes database OID for consistency with PostgreSQL. #29848
  • Ensures each batch has sufficient PgsqlOps/ReadReqs to avoid segmentation faults. #29343
  • Switches to SharedLock in get_ysql_db_catalog_version to prevent unnecessary blocking. #28931
  • Fixed an issue with prepared statements on temporary tables when using extended query protocol. #29292
  • Fixes vector indexes to support ysql_use_packed_row_v2 flag, preventing data corruption. #29348
  • Fixes an issue with empty IN condition lists in parallel queries. #29406
  • Limits request and response sizes in YSQL ANALYZE to avoid errors. #29288, #29289
  • Changes yb_make_all_ddl_statements_incrementing to a test YSQL configuration parameter to prevent DDL failures. #29405
  • Fixed a metadata correctness bug that caused errors when using minimal preloading with negative caching. #29485
  • Prevents database crashes by skipping cache invalidation for negative entries. #29606
  • Resolves gcc13 compiler warning by using NewTempWritableFile. #29609
  • Stabilizes testRelcacheInitConnectionStress by adjusting timeouts and reducing connections. #29552
  • Fixes "schema version mismatch" errors after savepoint rollbacks. #29538
  • Handles sync timeout more effectively during connection resets. #29173
  • Fixes binary search in ASH queries to capture all relevant samples. #29667
  • Skips tables in DELETING or DELETED state during rollback to savepoint to prevent errors. #29520
  • Fixes InsertIntoContainer template for better type handling and error messaging. #29686
  • Fixed read restart error occurring during concurrent execution of CREATE TEMP TABLE. #29704
  • Prevents crashes during process shutdown by skipping interrupt checks. #29690
  • Fixed a missing build dependency issue in the yb_pgwrapper library that caused a failure when running build with clean-postgres. #29728
  • Enhances stability by using separate YbctidReader instances for different components. #29781
  • Enhances database session shutdown by reducing wait times and avoiding potential crashes. #29756
  • Reduces redundant lock requests in YSQL, speeding up certain DDL operations. #29785
  • Ensures all read restart errors display complete debugging information in the detail message. #29762
  • Adds GFlag for GUC yb_ignore_bool_cond_for_legacy_estimate, allowing setting via GFlag before upgrading from 2.20. #29831
  • Fixes the history file usability in ysqlsh by preserving the header during truncation. #9861
  • Enables concurrent materialized view refresh without catalog version increment during upgrades. #29874
  • Fixes the shebang path in download_ybc.sh to prevent build errors. #29883
  • Ensures object lock acquisition deadlines are computed in microseconds, preventing rounding errors for sub-second timeouts. #29891
  • Ensures functions remain accurate after rolling back to a savepoint. #29881
  • Restores the mistakenly removed ysql_major_upgrade-test unit test. #29913
  • Prevents deadlocks during index creation by optimizing lock handling and analysis processes. #29720
  • Introduces separate flags to control DDL catalog bumping and negative caching. #29941
  • Fixes crashes during complex row comparisons in YSQL queries. #29942
  • Enhances error messages when dropping a table concurrently to be more informative. #28532
  • Adds yb_ycql_utils to supported extensions for YSQL major upgrades. #29973
  • Reduces cache misses by not using metrics_capture in catalog cache keys. #30030
  • Fixes metric recording to ensure all valid events are captured. #28340
  • Enhances geolocation cost estimation using cluster configuration when no tablespace is assigned. #29313
  • Fixes parallel index scans on hash indexes to handle duplicate column issues. #29021
  • Allows successful build on macOS 15.7 with Apple Clang 17. #30022
  • Renames the YSQL configuration parameter for clearer metric designation. #30069
  • Ensures all clockbound contexts synchronize at startup for consistent timing. #30033
  • Enables built-in support for Levenshtein string matching, reducing network overhead. #29299
  • Reduces read restart errors when refreshing materialized views during concurrent DMLs. #29084
  • Enables faster read operations requiring writes by using write pipelining. #30038
  • Enhances ASH visibility for index backfill master orchestration. #30338
  • Enhances ASH tracing for better monitoring of PostgreSQL backend synchronization. #30103
  • Disallows SAOP merge in parallel queries to ensure result order consistency. #30096
  • Fixes error when running parallel queries with append plans. #28920
  • Fixes the unique constraint violation for ALTER statements in transactions. #30109
  • Fixes a race condition in creating listen/notify objects. #1872
  • Ensures docdb_wait_time is now visible in pg_stat_statements for Featurebench workloads. #30194
  • Enables concurrent index creation on different tables without errors. #30114
  • Sets catalog version for ybc_heap_beginscan to ensure consistency and correctness. #30270
  • Enhances reliability in parallel query execution by embedding metric structures directly. #30126
  • Reverts a change to prevent crashes during certain table alterations. #30199
  • Enables concurrent execution of CREATE INDEX CONCURRENTLY and REFRESH MATERIALIZED VIEW without blocking. #30219
  • Fixes a bug to ensure concurrent table creation doesn't fail in YSQL. #30219
  • Prevents deadlocks during ANALYZE with concurrent DDL by using separate transactions. #30232
  • Logs call stacks in YSQL on critical errors for easier issue diagnosis. #26952
  • Ensures catalog version is sent during YbBitmapTableScan to prevent mismatches. #30250
  • Stops logging backtraces for FATAL errors due to connection limits. #30323
  • Ensures read restart errors include detailed logs during catalog version mismatches. #30343
  • Fixes data race issues during metric updates in YSQL. #30432
  • Enhances xCluster to support vector indexing, ensuring accurate replication and indexing of data post-backfill. #26679
  • Enables YbctidReader to handle SKIP LOCKED with a new locking strategy for batch reads. #23584
  • Ensures xCluster setups function correctly with concurrent DDL by using safe read points for catalog operations. #30361
  • Adds a NOTICE for index rebuilds during ALTER TYPE operations. #30416
  • Enables Query Plan Management by default, tracking all hint-generating queries. #30822
  • Eliminates read restart errors in backup and restore during concurrent DDLs. #30178
  • Fixes parallel scan issues when using yb_hash_code conditions. #30204
  • Adds logging to troubleshoot "schema version mismatch" errors in DDL transactions. #30367
  • Fixes misleading EXPLAIN text output for scans under serializable isolation. #30373
  • Enables DEBUG in auto_explain with new YSQL configuration parameter. #25067
  • Disables top-level retries for CALL or DO statements after a commit. #30459
  • Reduces unnecessary RPC calls in QPM by checking valid OIDs. #30532
  • Fixes undefined behavior in PostgreSQL code to ensure test stability. #30489
  • Resolves timeouts during concurrent index creations by ensuring correct catalog version tracking and reducing unnecessary RPC calls. #30491
  • Adds debugging logs to help identify schema version mismatches after dropping indexes. #30367
  • Enables aggregate subqueries in global views by using the extended query protocol. #30501
  • Stops storing un-normalized query strings in pg_stat_statements. #30592
  • Corrects parallel index scan rescan issues for accurate query results. #29736
  • Reduces errors in READ_COMMITTED transactions by correctly flushing row locks. #30620
  • Adds debug logs for tracking pgstat catalog version updates in PG backends. #30491
  • Prevents PostgreSQL shutdown errors by cleaning up dangling pgstat entries on replication slot drops. #30646
  • Ensures JSON format in QPM correctly includes the closing bracket. #30617
  • Increases the timeout for backend catalog version updates to 900 seconds. #30649
  • Restores default value for yb_enable_pg_stat_statements_docdb_metrics. #30655
  • Ensures SELECT queries correctly follow transactional DDLs by waiting for schema updates. #30367
  • Fixes catalog version conflicts during concurrent database operations. #29856
  • Restores the ./yb_build.sh daemons no-odyssey functionality on Linux. #30718
  • Increases sleep duration during YSQL replication slot creation to handle clock skew. #29481
  • Allows renaming the yugabyte role without impacting the notifications poller. #30722
  • Ensures consistent read values within a single SQL statement in legacy mode. #30739
  • Disables parallel workers with concurrent DDL to prevent errors. #30749
  • Fixes a memory leak in handling PGresult objects. #30765
  • Ensures planner stats only appear once in EXPLAIN JSON output. #30768
  • Automatically sets read time during parallel query execution to prevent errors. #30588
  • Ensures remote servers correctly connect to user-specified databases for global view queries. #30849
  • Fixes occasional crashes during concurrent create index tests. #30880
  • Now ensures CDC properly cleans up resources after notifications are processed. #30702
  • Renames GUC yb_max_saop_merge_streams to yb_max_merge_scan_streams for clarity. #30943
  • Enhances handling of duplicate notifications in the async queue to avoid client-side errors. #30947
  • Fixes timezone issues for expression pushdown by initializing my_exec_path correctly. #30815
  • Ensures stable parallel worker operations by using legacy catalog read mode when yb_enable_concurrent_ddl=true. #31008
  • Reduces unnecessary rechecks by folding conditions on the same column. #30525
  • Ensures updates to partitioned tables correctly check partition keys to prevent errors. #31214
  • Enhances error messages for column issues, including table identity details. #31304
  • Adjusts YSQL catalog timeouts based on heartbeat_interval_ms for reliability. #31431
  • Switches concurrent DDL to a non-runtime, cluster-wide flag for consistency. #31225
  • Resolves OID conflict by assigning new OID 8116 to graphid. #31499
  • Handles records with new action types by logging warnings, preventing process crashes. #30703
  • Enhances stability by using IndexOptInfo for index expressions, preventing crashes in yb_derive_equal_cond. #31313
  • Prevents crashes in PG backend when running empty queries with tracing enabled. #31476
  • Resolves a critical caching issue that led to "no partition for row" errors. #31272
  • Ensures consistent reads by fixing bug in read restart errors handling during UPDATE operations. #28628
  • Resolves packet forwarding race conditions in pipelined queries with a new flag. #31368
  • Adds SQL function to check OpenSSL FIPS mode and a flag to disable non-FIPS crypto. #31606
  • Prevents crashes by properly handling operation failures in the buffer. #31616
  • Now waits for index deletions during rollback to savepoint, preventing errors. #31601
  • Prevents premature DDL transaction aborts during ROLLBACK TO SAVEPOINT. #31720
  • Reduces test flakiness by adjusting max_clock_skew_usec and enabling pre-loading of catalog tables. #28628
  • Ensures consistent reporting of query execution times between PGSS and QPM. #30793
  • Handles non-retryable CDC errors by terminating relevant processes to prevent silent failures. #31484
  • Reduces connection errors with server socket closure verification in ConnMgr. #31291
  • Ensures ASH correctly attributes catalog reads to the proper query in extended protocol. #31325
  • Reduces misattribution of wait times in query monitoring by ensuring proper query ID tracking across RPC retries. #31820
  • Fixes Batched Nested Loop Join to return correct query results with correlated conditions. #31724
  • Fixes race condition error during concurrent DDL and DML operations. #31869
  • Rejects empty hint/plan texts in yb_pg_stat_plans_insert to prevent core dumps. #31922
  • Resolves false deadlock issues during CREATE INDEX operations by improving session transaction handling. #31594
  • Enables consistent foreign key checks when toggling yb_enable_fkey_batched_docdb_lookup_when_types_mismatch. #31861
  • Fixes retry logic for DROP TABLE to prevent SMgrRelation errors. #29871
  • Allows redundant columns in merge scans to prevent errors and crashes. #31984
  • Fixes OOB read errors in single-stream merge scans with duplicate IN lists. #32050
  • :YSQL:handle RelabelType in merge scan ybIsClauseEligibleSaop does not account for RelabelType nodes wrapping the LHS of SAOP clauses.This causes the planner to miss merge-scan-eligible clauses for columns with binary-compatible coercions (.varchar,which gets coerced to text).Strip the RelabelType wrapper at the three points in yb_merge_scan.c.[YSQL]Merge scan does not work on varchar columns Jira Link:Description Repro:The planner casts varchar to text.The ybIsClauseEligibleSaop function should strip RelabelType nodes from the expressions.Issue Type kind/bug ybIsClauseEligibleSaop does not account for RelabelType nodes wrapping the LHS of SAOP clauses.This causes the planner to miss merge-scan-eligible clauses for columns with binary-compatible coercions (.varchar,which gets coerced to text).Strip the RelabelType wrapper at the three points in yb_merge_scan.c. #31200
  • Enhances FK reference checks to wait during conflicts, aligning with PostgreSQL behavior. #32047
  • Enables automatic retries for CALL and DO statements under READ COMMITTED. #31924
  • Fixes the error when using the yb-ts-cli dump_tablet_data tool on YSQL tablets. #31597
  • Ensures correct logging of yb_max_pools as a number, not a boolean. #30347
  • Switches to thread-safe customertime_r in the logger to prevent data races. #28264
  • Ensures all PG wire protocol packets are fully received before processing. #32087
  • Prevents crashes during failed 'DROP TABLE IF EXISTS ...CASCADE' retries. #31248
  • Fixes memory leak in 'CREATE TABLE AS SELECT' by managing memory per-tuple, and reduces memory usage during REFRESH MATERIALIZED VIEW operations. #31962
  • Fixes bitmap scan errors where wrong primary key columns were read. #32132, #32123
  • Optimizes memory tracking for hash key permutations to prevent potential outages. #32196
  • Disables TSAN thread leak reports in Connection Manager. #30745
  • Fixes race condition in ConnMgr multi-route pooling by using an atomic counter. #30736
  • Stops memory leak reports after lock timeouts by disabling the sanitizer. #30090
  • Ensures all tablet servers are registered before initdb, preventing test failures due to startup races. #31029
  • Now handles catalog version mismatch and table existence errors more reliably. #31345
  • ysql_dump now respects the PGHOST environment variable, prioritizing the -h flag. #29976
  • Fixes a rare condition where parallel queries could leave a dangling pointer, reducing crash risks. #31895
  • Disables parallel queries for colocated tables by default. #32318
  • Ensures consistency in QPM data by locking the table during entry population. #32275

YCQL

  • Enables retrying YCQL analyze steps for OBJECT_NOT_FOUND errors to refresh cache. #29589
  • Prevents crashes by correctly handling NULL index references in YCQL queries. #29754
  • Enables batched queries in YCQL and improves ASH joins. #18047
  • Ensures YCQL truncate command waits for index tables as well. #30121
  • Ensures YCQL backfill correctly checks for newer duplicate entries. #30330
  • Enhances handling of exceptions by using toolchain libunwind. #30870

DocDB

  • Allows removal of associated intentsdb keys during tablet startup to prevent potential pileup and slower queries. #21831
  • Prevents silent data loss by failing the clone when a table is altering instead of cloning without data. #27621
  • Solves the reversed condition in the rpc_inbound_calls_failed metric, offering more metric information. #28788
  • Ensures tablet split handling on the consumer side does not cause incorrect mappings due to race conditions. #28750
  • Add a test for cloning to a time before dropping a materialized view and a column in the base table. #23740
  • Changes prevent unnecessary node crashes due to network issues during remote bootstrapping process cleanup. #28830
  • Prevents TServer process crash and unusable Postgres connections by correctly handling thread creation failure and falling back to RPC mechanism. #28968
  • Fixed deadlock in MasterSnapshotCoordinator by modifying PopulateDeleteRetainerInfoForTableDrop to pass table_info to IsTabletCoveredBySnapshot. #28679
  • Adds extra logging to track data inconsistency when durable_wal_write is set to false. #23453
  • Disables TryConsume usage by LogReader to prevent user operations from being incorrectly blocked due to a bug. #29095
  • Now only live tablet servers are contacted when updating transaction version, enabling deletion of transaction tables even if a tablet server is down. #29067
  • Reduces log replay during bootstrap by synchronizing intents DB flushed op ID with regular DB. #29184
  • Enhances rocksdb_bytes_read metric to include iterator read bytes. #26992
  • Prevents duplication of restoration requests in tablet metadata. #27183
  • Enhances error messaging for database cloning operations outside allowed timeframes. #21866
  • Ensures xCluster stability by using table_id to populate namespace_id in metadata, preventing issues from namespace renames. #29901
  • Changes error message to "Unable to find the leader" for clarity. #30000
  • Reduces latency by returning immediately after the first successful RPC in GetMasterEntryForHosts. #28844
  • Fixes transactions to default to region-based locality during upgrades involving tablespace locality support. #29645
  • Prevents data loss on followers during tablet splits by using MVCC for split operations. #30117
  • Fixes tablet split validation to handle 0x0000 as an empty key for hash partitions. #30062
  • Enhances sst_dump to correctly handle packed rows without schema information. #29729
  • Fixes automatic tablet splitting when default_time_to_live is set to 0. #29710
  • Prevents thread exhaustion on tserver during remote bootstrap failures. #26813
  • Ensures successful cloning of altered databases by managing connection permissions during the operation. #28141
  • Enhances error messages to indicate that cached errors reset only upon TServer restart. #25904
  • Ensure file safety during checkpoints by explicitly flushing key files like MANIFEST and CURRENT. #30146
  • Ensures unique index creation checks respect transaction write order correctness. #30332, #30312
  • Resets full report sequence number on tserver re-registration to avoid data inconsistencies. #30169
  • Ensures consistent data by handling write errors during shutdown properly. #30093
  • Reduces false positives during tablet splits by not reapplying transactions already in the regular database. #30334
  • Ensures xCluster replication DDL cleanup by using accurate schema names. #30529
  • Fixes batch limits in Raft followers' catch-up process. #30437
  • Correctly detects transactions aborted due to deadlocks. #30641
  • Prevents data loss during tablet splits by ensuring transactions commit correctly to child tablets. #30555
  • Ensures data integrity during compaction by safely merging updates. #30837
  • Fixes the "thread pool not ready" error during large transaction processing. #30772
  • Enhances child tablet bootstrap speed and reduces memory use by copying bootstrap state during splits. #30803
  • Avoids confusion by dynamically fetching current DB names in list_snapshot_schedules. #26274
  • Prevents tserver crashes during shutdown by improving transaction handling. #29908
  • Prevents infinite WAL segment growth during disk space issues. #31061
  • Prevents crashes during high xCluster churn by fixing null pointer issues in metrics aggregation. #31316
  • Prevents crashes on upgrade by ensuring schema version lists are properly initialized and compatible. #31533
  • Prevents cluster-wide outages by rejecting UpdateConsensus RPCs early when tablets enter a hard write stop. #30728
  • Resets has_faulty_drive status automatically when a TServer reregisters. #31332
  • Fixes a bug where scans may miss rows due to stale bloom filter pointers. #31688
  • Ensures stable data handling during partial compactions, preventing errors like "duplicate key". #28314
  • Ensures MetaCache correctly refreshes to include child tablets after a split. #31936
  • Eliminates spurious warnings when releasing xCluster DDL queue advisory locks. #31963
  • Ensures xCluster non-transactional safe-time logic only sets valid times, reducing false warnings. #31967
  • Enables ysql_dump with read-time option for consistent point-in-time backups. #20480
  • Replicates DDLs with session variables to ensure consistency across clusters. #28895
  • Allows namespace_id to be correctly copied in TableInfo constructors to prevent empty return values. #28478
  • Eliminates race conditions between snapshot creation and concurrent DDL operations. #29474
  • Enhances xCluster by ensuring indexes are replicated with associated table DDLs. #29699, #29133
  • Fixes vector index searches to return complete results post-tablet splits. #29543
  • Prevents failures in simultaneous table creations across different databases in the same replication group. #29797
  • Ensures correct syntax in CREATE INDEX statements with special options like colocation_id. #29337
  • Uses full hybrid time for xCluster DDL queue polling, enhancing replication accuracy. #30019
  • Adjusts cgroup v2 setup for system services, fixing build failures on alma9 and ubuntu22. #30609
  • Blocks nextval and setval in time travel sessions when yb_read_time is set. #30881
  • Blocks advisory lock acquisitions during time travel sessions. #30929
  • Adds a session-level advisory lock for ddl_queue_handler to prevent multiple handlers running concurrently. #27186
  • Adds a new enable_object_locking_infra flag and YSQL configuration parameter to activate table-level locks only after upgrading all nodes. Both this flag and enable_object_locking_for_table_locks must be true to activate the feature. This flag is tagged as PGC_INTERNAL preventing users from toggling it. #28875
  • Allows Parallel Query feature to work correctly with object locking by limiting object lock and finish transaction calls to the leader worker. #28878
  • Prevents fatal errors in transactions by relaxing subtransaction checks. #29023
  • Reduces pg_locks transient errors by verifying tablet leaders during lookup and increasing retry attempts. #28180
  • Fixes a TServer crash issue during hybrid scans caused by incorrect read requests from Postgres. #29347
  • Prevents race conditions during YSQL lease re-acquisition by synchronizing it with lock requests. #27829
  • Ensures batched COPY operations securely re-acquire table and index locks, reducing partial copy failures. #29327
  • Fixes bugs in Prometheus metrics scraping for tables with special characters in their names. #29351
  • Prevents shutdown errors by checking for active tasks during registry closure. #29593
  • Switched from using SIGQUIT to SIGINT to stop the PostgreSQL postmaster, preventing core dump generation at TServer startup. #29670
  • Adds transaction intent record logging for easier debugging of crashes. #14641
  • Enhances xCluster DDL replication by including schema names in relation maps. #29598
  • Ensures all tablets have updated schemas for xCluster replication, improving error handling and consistency. #28326, #28946
  • Introduces min_replay_txn_first_write_ht to address transaction data loss that occurred due to incorrect filtering of transactions on bootstrap. #29642
  • Eliminates false conflicts in fastpath object locking by replicating PostgreSQL's matrix. #29793
  • Automatically cleans up discarded checkpoints to prevent disk full issues during remote bootstraps. #29909
  • Enhances xCluster replication by skipping unnecessary tuple generation in ATRewriteTable. #29594
  • Enables hot certificate reloading for client-to-node encryption. #29631
  • Adds logging for database creation and deletion events in ysql_db_catalog_version_map. #29476
  • Allows xCluster DDL replication setup with materialized views. #29970
  • Fixes ysql_dump to correctly handle vector indexes in colocated databases. #28631
  • Prevents deadlocks by adjusting lock handling during simultaneous operations. #29476
  • Increases the RPC timeout to 1 hour for AddTableToXClusterTarget tasks. #30072
  • Prevents xCluster replication from halting when dropping an invalid index. #26633
  • Ensures consistent lock behavior across serializable transactions when toggling skip_prefix_locks. #30014
  • Prevents lock leaks by ensuring masters grant new leases instead of refreshing expired ones. #30183
  • Fixes a specific deadlock during post-split compaction on vector indexed tables. #30290
  • Prevents OID collisions by invalidating tserver cache after ImportSnapshot. #29335
  • Handles backfill requests for deleted tables without crashing. #29830
  • Ensures YCQL unique index backup and restore functions correctly without schema version errors. #29789
  • Fixes error during backward scans by checking key bounds before decoding. #30607
  • Fixes decoding issues in tables with vector indexes using packed rows v2. #30762
  • Preserves clone sequence numbers to ensure cloning idempotency after PITR operations. #30958
  • Enables reliable creation of vector indexes by fixing MetaCache handling and validation for tablet splits. #26381
  • Reduces read restart errors for autonomous DDLs by using current ht instead of safe time. #29139
  • Fixes cloning failure for sequence tables due to old snapshot errors. #31278
  • Adds use_cgroups_cpu flag to respect CPU limits in containerized environments. #29844
  • Prevents tserver crashes during shutdown with in-flight split or clone operations. #28463
  • Enhances cloning for databases with multiple colocated parent tables. #31285
  • Enables cloning operations to succeed after a PITR that hard deletes tables. #31491
  • Fixes corruption error on Master UI for vector index partitions. #27674
  • Ensures successful restore of YSQL backups with manually split base tables. #31185
  • Disables periodic retriggering of DDL verification to prevent crashes. #31815, #31430
  • Fixes a crash loop issue caused by incorrect PREPARING state of vector indexes in clones. #32031
  • Sets namespace_id in tablet metadata at creation to skip later backfill. #29982
  • Fixes TServer crash during xCluster replication after node scale-down. #30991
  • Ensures flag descriptions are clean by removing Jira links. #31136
  • Refactors background task handling for clarity and maintainability. #28787
  • Fixes a regression that allowed restoring to a time earlier than the maximum retention window, potentially causing database instability. #28699
  • Prevents yb-master crash by making MessageDifferencer thread-safe and limiting its use to debug builds. #28729
  • Allows deletion of hidden tablets during point-in-time restores that are no longer in use. #28704
  • Allows AutoAnalyze to work consistently, regardless of table level locks feature, by always acquiring the acquire_for_update_lock lock. #28783
  • Reduces Unable to find schema name for YSQL table errors and optimizes the retrieval of YSQL Table Oid. #28793, #27590
  • Eliminates shutdown deadlock in CQL service, enabling consistent and graceful server shutdown. #28438
  • Ensures transactions start with the correct locality during object lock acquisitions. #28317
  • Allows table-level locks to respect the lock_timeout setting, returning an error if lock is not obtained in time. #27677
  • Redundant finish transaction calls no longer request a new transaction when releasing object locks if a DocDB transaction doesn't exist. #28761
  • Enables "SELECT FOR KEY SHARE" to avoid crashes during cluster restart by starting each run with a clean state. #28881
  • Adjusts advisory lock release timing to prevent handler blockages during shutdown in time-sensitive builds. #28889
  • Reduces master_rpc_timeout_ms to 1.5s to lessen outages by quickly detecting dead/unavailable master nodes. #28924
  • Prevents destructor calls on partially initialized services. #28925
  • Enhances stability by handling upper bound updates correctly across all scenarios in HybridScanChoices. #28945
  • Modifies fast path transaction criteria to exclude object locking writes. #28922
  • Prevents vector index compaction failure when all vectors are filtered out during compaction. #29016
  • Excludes invalid indices from snapshots to prevent backup restore failures. #28986
  • Adds object lock auto-flag checks to YbMaybeLockMasterCatalogVersion and AcceptInvalidationMessages for upgrade safety. #29054
  • Supports successful backups during tablet splits. #29002
  • Adjusts default replication factor in ExternalMiniClusterOptions to match num_masters, potentially fixing some tests. #29098
  • Implemented root memtracker adjustment to limit deviation from TCMalloc stats, avoiding overestimation and false triggering of memory limits. #29094
  • Resolves deadlock detection issues in PgLibPqTest.PagingReadRestart by temporarily disabling it. #28891
  • Ensures DDL operations wait when DML is in progress with object locking. #29150
  • Enables object and table locking features by default in release builds for enhanced QA validation. #29224
  • Eliminates unexpected system exits when DDL transactions enter the tablet wait-queue in a colocated database with index. #29215
  • Fixes bug where ALTER TABLE statements would not roll back in case of master crash during the ALTER TABLE DDL operation. #27021
  • Ensures PG connections handle restarts correctly with object locking. #29130
  • Disables inline waiting for PG connections on cluster start with object locking. #29236
  • Adds debug logs to assist in debugging issues related to concurrent DDL execution without object locking. #29080
  • Resolved a race condition between server shutdown and tablet cleanup by moving startup tablet cleanup to a background thread and adding a check to avoid crashes if shutdown is in progress. #29022
  • Fixes a process crash that could occur during unique index checks due to incorrect functioning of DBIter's fast next mode with backward iteration. #28960
  • Ensures accurate schema during backups amid concurrent schema alterations and snapshot creations. #28766
  • Ensures yb_index_check correctly acquires object locks, preventing debug assertion failures. #29389
  • Switched from using SIGKILL to SIGQUIT and SIGINT for stopping postmaster process during lease loss and tserver shutdown respectively. #28670
  • Adjusts object locking sanity checks to transaction level granularity. #29390
  • Fixes transaction-related DFATAL issues by enabling concurrent updates. #29512
  • Ensures consistent behavior across sessions during upgrades by caching table lock flag values. #29515
  • Fixes crash when reading Postgres tables via CQL API due to incorrect null handling. #29498
  • Enhances isolation test coverage by adding partition-drop-index-locking and adjusting timeouts to align with PostgreSQL behavior. #21705
  • Disables tablet splits during table hide operations to prevent state inconsistencies and lock leaks. #29559
  • Ensures correct resetting of the wait state in the WAL appender thread. #29586
  • Ensures PostgreSQL works with node_to_node_encryption_use_client_certificates. #7335, #26138
  • Ensures vector index searches function correctly across sessions. #29445
  • Reduces TServer does not have a live lease errors for pg clients by adding retry logic. #29600
  • Automatically resets stale transaction IDs on transaction failure to prevent lock leaks. #29628
  • Disables intent filtering for bootstrap due to transaction filtering issues with use_bootstrap_intent_ht_filter set to true. #29664
  • Adds logging for RestoreSnapshotSchedule RPCs, aiding in debugging. #28707
  • Eliminates data race in VectorLSMInsertRegistryBase shutdown handling. #29745
  • Prevents potential double decrement errors in object lock state management. #29790
  • Reduces lock overflow issues by treating redundant lock requests as no-ops. #29774
  • Prevents restore failures during schema merges in backups taken during DDL operations. #29765
  • Fixes function calls to accurately interpret is_using_table_locks. #29821
  • Enables use of LTO for prof_gen builds, as issues with older compiler versions are resolved. #15093
  • Fixes hashing split keys to respect the partition's lower bound. #29888
  • Adds a null check to prevent indefinite wait states in WAL appender threads. #29586
  • Prevents fatal errors by storing status tablet data for global object lock requests. #29323
  • Fixes yb-admin corruption errors for tablet partitions by using the correct schema. #29992
  • Reduces unnecessary VI_STATS logging in pg_client_session.cc. #30070
  • Restores superclass tserver flags in PgCboDependentFlagsTest to prevent brittleness. #30077
  • Ensures PRIMARY KEY indexes process before UNIQUE indexes during ALTER operations to prevent double index creation. #30055
  • Ensures load balancer removes old read replicas when tablets move to a non-replica tablespace. #30141
  • Skips parent tablet in data dumps for colocated tables. #30220
  • Adds a tool to convert text protos to YugabyteDB binary format. #30124
  • Fixes a race condition in kPgSession transactions to better detect deadlocks. #30252
  • Improves error messages when yb-ctl timeouts occur during startup. #30278
  • Removes undefined GetAtomicFlag and SetAtomicFlag functions for better reliability. #30321
  • Ensures unique index backfill doesn't encounter SnapshotTooOld errors. #30329
  • Reverts an Abseil enablement on Mac due to failing performance tests. #30339
  • Fixes static initialization order bugs for more reliable value constructions. #30375
  • Ensures failed transactions trigger early cleanup to prevent issues. #30499
  • Relaxes namespace name checks during the cloning process to allow cloning from renamed namespaces. #30313
  • Ensures skip prefix lock mode consistency across transaction operations. #30587
  • Ensures accurate tracking of all RPC rejections due to memory pressure. #30616
  • Ensures correct replay of operations for vector indexes added or removed during tablet bootstrap. #30684
  • Escapes stack traces in /threadz to prevent HTML rendering issues. #30689
  • Ensures txn status table additions are saved correctly to prevent issues after failovers. #30652
  • Uses the pgwrapper::PqEscapeLiteral function to escape literals in clone scripts. #30694
  • Prevents object locks from becoming orphaned during PITR restoration, ensuring proper DDL operation continuity. #30639
  • Ensures yb-ctl uses Python 3 in releases to avoid failures. #30713
  • Reduces crashes by copying shared pointers locally before releasing locks during metrics aggregation. #30758
  • Fixes a bug in COPY implementation to ensure data consistency. #30782
  • Reduces false conflicts during Object Lock Manager bootstrap by sorting lock entries. #30795
  • Prevents cloning into the inconsistent "dead zone" after a PITR restore. #30794
  • Reduces spam by correcting leader stepdown logging. #30788
  • Marks the flag for selecting vector index backend as hidden and advanced. #30855
  • Fixes top-level intent key size calculation for colocated tables. #30862
  • Ensures valid leader preference settings with wildcard placements in clusters. #30821
  • Prevents TSAN race conditions by using ANNOTATE_UNPROTECTED_WRITE in tests. #30902
  • Ensures error codes are correctly set for RemoteExec RPCs in global views path. #30981
  • Fixes a crash issue when ReleaseObjectLocksGlobal RPC times out during TServer restarts. #30986
  • Fixes specific TSAN test failures by adjusting flag validators and test configurations. #31044
  • Corrects flag description display in the documentation. #31054
  • Fixes use-after-free errors in transaction RPC callbacks, enhancing stability. #29146
  • Enables ysql_dump DB clone to ignore non-existing roles using the dump-role-checks option. #26555
  • Ensures replication setup does not fail by preserving colocation_id for vector indexes during backup. #31216
  • Ensures tablet shuts down smoothly by modifying operation types and adjusting storage destruction order. #30770
  • Prevents crashes by handling cgroup initialization failures more robustly. #31425, #31443
  • Enhances database cloning with new ysql_dump options for renaming databases and owners. #31482
  • Fixes race condition issues during cgroup setup in PostgreSQL backends. #31595
  • Adds flags to configure memory reset thresholds for aggregate calculations. #31660
  • Corrects the typo in the ASH wait state code kConflictResolution_ResolveConflicts. #31902
  • Ensures arc lint works correctly by updating the linting type to flake8. #31949
  • Ensures high-priority TServer threads run in the correct SystemHighCgroup, enhancing response times and stability. #31710
  • Enables static linking for libxml2 and dependencies in LTO releases. #31851
  • Sets PostgreSQL processes to use the default TServer cgroup // instead of /. #31712
  • Adds tablet ID to MinRunningHybridTime ASH samples for better tracking. #31909
  • Enhances xCluster replication by reconnecting after a PostgreSQL restart. #31964
  • Ensures async writes during tablet splits are correctly rejected, preventing database inconsistencies. #31912
  • Adjusts pg_client_use_shared_memory flag rules based on object locking settings. #31307
  • Reverts to using glibc backtrace for stability in the 2026.1.0 release. #32197
  • Ensures all threads are correctly assigned to their designated cgroups under QoS settings. #31751
  • Reimplements libunwind for safer and more reliable stack trace collection across all builds. #31453
  • Resolved rounding errors in StopWatch by changing calculation order. #29205
  • Stops empty sample blocks from being incorrectly counted in analytic calculations. #29203
  • Ensures transactions default to region-local during upgrades when table locks are active. #30244
  • Reduces log clutter by removing repetitive connection messages. #30581
  • Stops creation of vector index block cache when RocksDB cache is disabled. #30763
  • Eliminates race conditions and crashes in YBThreadPool by ensuring worker memory safety. #28297
  • Fixes shutdown delays caused by remote bootstrap completion checks. #31255
  • Logs now show when a master marks a tserver as unresponsive. #30261

CDC

  • Ensures CDC state table entries are properly deleted when databases and streams are dropped. #23497
  • Fixed issue in PeerMessageQueue::ReadReplicatedMessagesForConsistentCDC where WAL Ops were missed due to bugs in record reading and handling of approaching deadlines. #29060
  • Adds a new yb-ts-cli command to release CDC retention barriers on specific tablets. #31187
  • Allows UPAM to update certain barriers even with "before image not found" errors. #31187
  • Ensures data consistency by correctly updating operation IDs only after quorum commits. #30181
  • Handles error propagation from CDC to client for missing footer in segments. #28592
  • Optimizes the WalSndWakeup function by returning early to prevent unnecessary spin lock acquisitions and core dump occurrences. #28379
  • Allows large transactions for unqualified tables to stream correctly, preventing the virtual WAL from getting stuck. #28744
  • Fixed issue where child tablets wrongly inherited parent tablet's checkpoint after a tablet split, causing CDC stream failures. #28840
  • Adds support to filter aborted subtransactions (rolled-back savepoints) in CDC streaming, making it consistent with the apply path. #22817
  • Fixes CDC issue with virtual WAL restart after a DDL, preventing record decoding failure. #29136
  • Fixes the issue where UPAM gets stuck for colocated tablets with indexes, ensuring continuity of CDC operations. #30067
  • Prevents SIGSEGV in CDC operations by ensuring LogReader is not null. #30174
  • Excludes sys catalog entries from active stream checks in logical replication. #30382
  • Handles multi-level tablet splits correctly in CDC operations. #30210
  • Prevents data loss in CDC by retaining rewritten colocated tables. #30521, #30167
  • Fixes CDCSDK crash on ALTER TABLE with colocated tables, ensures data streaming continuity. #30521, #30167
  • Disables cleanup of expired tables in hash range-based CDC when the flag is true. #31487
  • Prevents the PG connector crash during upgrades and rollbacks in replication scenarios. #27177
  • Prevents cleanup of expired tables in hash range-based CDC streams to avoid initialization failures. #31487
  • Stops applying the LogReader memory limit to CDC, a setting intended only for xCluster. #29066
  • Adds "Log index cache entry for op index not found" error to retryable errors in cdcsdk_virtual_wal. #29061
  • Enables CDC to distinguish between INSERT and UPDATE for packed rows using the ysql_mark_update_packed_row flag. #16682
  • Fixed error in UpdatePeersAndMetrics for Sys Catalog tablet, improving handling of pg_publication_rel and pg_class tables. #29140
  • Fixes endpoint verification failures by using DNS hostnames for local connections. #29669
  • Now deletes associated streams when a database is dropped to prevent errors. #27835
  • Enables cdc_enable_savepoint_rollback_filtering by default, enhancing CDC support. #29396
  • Reduces lingering CDC metrics after stream deletion by clearing cached entries. #30771
  • Corrects resource retention by blocking CDC state table entries for ineligible tables. #30773
  • Eliminates empty BEGIN+COMMIT pairs in multi-shard transactions after tablet splits. #30980
  • Fixes missing COMMIT in CDC stream for dropped colocated indexes. #31101
  • Reduces log spam by expiring stale entries for logical replication streams. #31235
  • Enhances CDC restart time handling to progress when there's no new data to stream. #31091
  • Preserves xrepl_origin_id in CDC messages during transaction resends. #30116
  • Prevents errors in follower masters when they become leaders by ensuring sys_catalog retention barriers are updated. #30445
  • Ensures new replication origins are visible immediately after creation. #30068
  • Reduces connector crashes during DDL operations in CDC workflows. #31784
  • Prevents data loss by disallowing CDC table rewrites on colocated tables. #31908
  • Logs a message if child tablets lack state table entries due to workflow races. #23567
  • Fixes potential use-after-free error in CDC state table post-shutdown. #15507
  • Enables enable_table_rewrite_for_cdcsdk_table by default, resolving a deadlock in DeleteTableInMemory. #32029