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

For an RSS feed of all release series, point your feed reader to the [RSS feed for releases](../index.xml).

## v2025.2.2.1 - March 23, 2026 {#v2025.2.2.1}

**Build:** `2025.2.2.1-b1`

**Third-party licenses:** [YugabyteDB](https://downloads.yugabyte.com/releases/2025.2.2.1/yugabytedb-2025.2.2.1-b1-third-party-licenses.html), [YugabyteDB Anywhere](https://downloads.yugabyte.com/releases/2025.2.2.1/yugabytedb-anywhere-2025.2.2.1-b1-third-party-licenses.html)

### Downloads

<ul class="nav yb-pills">
  <li>
    <a href="https://software.yugabyte.com/releases/2025.2.2.1/yugabyte-2025.2.2.1-b1-darwin-x86_64.tar.gz">
      <i class="fa-brands fa-apple"></i>
      <span>macOS x86</span>
    </a>
  </li>
  <li>
    <a href="https://software.yugabyte.com/releases/2025.2.2.1/yugabyte-2025.2.2.1-b1-darwin-arm64.tar.gz">
      <i class="fa-brands fa-apple"></i>
      <span>macOS ARM</span>
    </a>
  </li>
  <li>
    <a href="https://software.yugabyte.com/releases/2025.2.2.1/yugabyte-2025.2.2.1-b1-linux-x86_64.tar.gz">
      <i class="fa-brands fa-linux"></i>
      <span>Linux x86</span>
    </a>
  </li>
  <li>
    <a href="https://software.yugabyte.com/releases/2025.2.2.1/yugabyte-2025.2.2.1-b1-el8-aarch64.tar.gz">
      <i class="fa-brands fa-linux"></i>
      <span>Linux ARM</span>
    </a>
  </li>
</ul>

**Docker:**

```sh
docker pull yugabytedb/yugabyte:2025.2.2.1-b1
```

This is a YugabyteDB Anywhere-only release, with no changes to YugabyteDB.

## v2025.2.2.0 - March 12, 2026 {#v2025.2.2.0}

### Downloads

{{< warning title="Use v2025.2.2.1.">}}
v2025.2.2.0 includes an issue affecting LDAP in YugabyteDB Anywhere. In some circumstances, redacted values in `ysql_hba_conf_csv` can be overwritten during YBA-based universe operations, potentially leading to misconfigured database LDAP settings or authentication failures. Use [v2025.2.2.1](#v2025.2.2.1).
{{< /warning >}}

### New features

| <div style="width:150px">Feature</div> | Description |
| :-------- | :---------- |
| {{<tags/feature/ga idea="1484">}}[Backup during DDLs](/stable/manage/backup-restore/) | Previously, metadata operations performed before backing up data to remote storage could fail if they ran concurrently with DDL operations. These metadata operations have been updated to succeed regardless of concurrent DDL activity, making the backup process more robust.<hr style="margin: 0.5em 0;">**To use**: Feature enabled by default. |
|{{<tags/feature/ea idea="2275">}}[Bucket-based index distribution support](/stable/develop/data-modeling/bucket-based-index-ysql/)| Addresses write-path hotspots for ascending/descending indexes while maintaining optimal performance for order-based queries. <hr style="margin: 0.5em 0;">**To use**: Set configuration parameters, `yb_enable_derived_equalities` and `yb_enable_derived_saops` to true, and a value for `yb_max_saop_merge_streams`. See [Parameters](/stable/develop/data-modeling/bucket-based-index-ysql/#parameters).|
| {{<tags/feature/ga idea="1807">}} [AWS ClockBound support](/stable/deploy/manual-deployment/system-config/#configure-clockbound)| [ClockBound](https://github.com/aws/clock-bound) is an open source daemon that allows you to compare timestamps to determine order for events and transactions, independent of an instance's geographic location; it improves clock accuracy by several orders of magnitude. <hr style="margin: 0.5em 0;"> **To use**: Feature enabled by default. |

### Change log

<details>
  <summary>View the detailed changelog</summary>

### Improvements

#### YSQL

* Allows `ALTER TABLE ALTER COLUMN SET STORAGE` without errors and logs a warning for YB tables. {{<issue 29547>}}
* Reduces unnecessary index rebuilds during ALTER TYPE operations that don't require a table rewrite. {{<issue 24007>}}
* Stops retrying DDL read restarts in the main PostgreSQL loop. {{<issue 29701>}}
* Enables `ysql_yb_enable_ddl_savepoint_support` as a preview feature, ensuring stability for user trials in pre-production environments. {{<issue 29825>}}
* Reduces unnecessary rechecks for hash code keys in scans. {{<issue 30064>}}
* Adds transaction IDs to CREATE DATABASE logs for easier debugging. {{<issue 30083>}}
* Enhances performance by reducing unnecessary PostgreSQL rechecks. {{<issue 30097>}}
* Allows normal users to set `yb_max_saop_merge_streams` for bucket-based indexes. {{<issue 30112>}}
* Reduces clutter in pg_stat_statements by aggregating `BACKFILL INDEX` entries under a single query identifier. {{<issue 30203>}}
* Enhances error hints for scenarios where databases are dropped and recreated. {{<issue 30319>}}
* `ysql_dump` respects the `PGHOST` environment variable, prioritizing the `-h` flag. {{<issue 29976>}}

#### DocDB

* Enables detailed data and checksum dumps for tablets via new commands, aiding in consistency checks and troubleshooting. {{<issue 29904>}}
* Enables `log-dump` to read encrypted WAL files using the `master_addresses` flag. {{<issue 17816>}}
* Reduces log frequency to once per second for tablets stuck in bootstrapping. {{<issue 24566>}}
* Suppresses error logs for missing files on deletion to streamline operations. {{<issue 29757>}}
* Adds background checks for TServer connectivity and shares results via RPC. {{<issue 30039>}}
* Logs tserver start time and PID for easier troubleshooting. {{<issue 14805>}}
* Tracks and alerts on more RPC rejections due to memory pressure. {{<issue 20670>}}
* Enables system catalog flush and compaction across all yb-master peers. {{<issue 10948>}}
* Marks `follower_unavailable_considered_failed_sec` as a runtime flag. {{<issue 30123>}}
* Skips replication of PUBLICATION and SUBSCRIPTION DDLs in xCluster mode. {{<issue 29340>}}
* Fixes lock order inversion during table creation failures. {{<issue 30088>}}
* Sets yb_hnsw as the default backend for vector indexes. {{<issue 29964>}}
* Adds detailed metrics for vector index operations in DocDB. {{<issue 30004>}}
* Displays TServer connectivity states in the Web UI. {{<issue 30179>}}
* Stores both original and pause errors in xCluster DDL for easier debugging. {{<issue 30156>}}
* Adds "DETAIL" prefix to master and tserver log lines for clarity. {{<issue 29703>}}

#### CDC

* Enables `ysql_enable_pg_export_snapshot` by default and exposes it as a YSQL configuration parameter. {{<issue 27253>}}
* Reduces unnecessary master load by not populating `backend_xmin` in `pg_stat_get_activity`. {{<issue 29747>}}
* Enhances system performance by preventing unnecessary RPCs to the yb-master in `pg_stat_get_activity`. {{<issue 29747>}}

### Bug fixes

#### YSQL

* Installing `pg_stat_monitor` now displays a beta warning. {{<issue 29321>}}
* Optimizes column fetching during scans by removing redundant work, enhancing performance. {{<issue 29847>}}
* Ensures accurate index updates in `INSERT ... ON CONFLICT` for partial indexes. {{<issue 30104>}}
* Fixes issues with placement wildcards and leader preferences in tablespaces. {{<issue 29971>}}
* Sets default `pg_upgrade` directory to `pg_upgrade_data` and allows configuration via `pg_upgrade_working_dir` flag. {{<issue 29172>}}
* Eliminates backend crashes during DDL aborts when transaction metadata is not set. {{<issue 29994>}}
* Ensures stats for range data types are restored after backup in YugabyteDB. {{<issue 30147>}}
* Fixes handling of concurrent DDL and DML operations for accurate snapshot application. {{<issue 29269>}}
* Removes tuple locks to prevent deadlocks during concurrent `ALTER TABLE`. {{<issue 30095>}}
* Prevents PostgreSQL backend crash by addressing a dangling reference issue. {{<issue 30013>}}
* Reinstates missing values restoration in backups, adding logs for schema mismatches. {{<issue 29960>}}
* Prevents deadlocks by removing locks from certain catalog tables during DDL operations. {{<issue 29720>}}
* Enhances error messages when dropping a table concurrently to be more informative. {{<issue 28532>}}
* Fixes parallel index scans on hash indexes to handle duplicate column issues. {{<issue 29021>}}
* Disallows SAOP merge in parallel queries to ensure result order consistency. {{<issue 30096>}}
* Fixes error when running parallel queries with append plans. {{<issue 28920>}}
* Fixes an issue with empty IN condition lists in parallel queries. {{<issue 29406>}}
* Fixes the unique constraint violation for ALTER statements in transactions. {{<issue 30109>}}
* Introduces separate flags to control DDL catalog bumping and negative caching. {{<issue 29941>}}
* Reverts a change to prevent crashes during certain table alterations. {{<issue 30199>}}
* Enhances reliability in parallel query execution by embedding metric structures directly. {{<issue 30126>}}
* Pushes down Levenshtein function as a storage filter for improved query performance. {{<issue 29299>}}
* Fixes a bug to ensure concurrent table creation doesn't fail in YSQL. {{<issue 30219>}}
* Prevents deadlocks during ANALYZE with concurrent DDL by using separate transactions. {{<issue 30232>}}
* Ensures all clockbound contexts synchronize at startup for consistent timing. {{<issue 30033>}}
* Eliminates a memory leak in YSQL's authentication process. {{<issue 30275>}}
* Enables session defaults to reset correctly during transactions via new packet protocols. {{<issue 28445>}},{{<issue 20603>}}
* Fixed multiple issues related to YSQL index backfill, ensuring correct read-time during uniqueness check, and respecting IntraWriteId during duplicate value check. {{<issue 30331>}},{{<issue 30312>}},{{<issue 30330>}},{{<issue 30332>}}

#### YCQL

* Ensures YCQL truncate command waits for index tables as well. {{<issue 30121>}}

#### DocDB

* Ensures XCluster stability by using `table_id` to populate `namespace_id` in metadata, preventing issues from namespace renames. {{<issue 29901>}}
* Changes error message to "Unable to find the leader" for clarity. {{<issue 30000>}}
* Disables graceful shutdown to prevent data corruption. {{<issue 30047>}}
* Fixes tablet split validation to handle 0x0000 as an empty key for hash partitions. {{<issue 30062>}}
* Fixes transactions to default to region-based locality during upgrades involving tablespace locality support. {{<issue 29645>}}
* Ensures successful cloning of altered databases by managing connection permissions during the operation. {{<issue 28141>}}
* Prevents data loss on followers during tablet splits by using MVCC for split operations. {{<issue 30117>}}
* Replicates DDLs with session variables to ensure consistency across clusters. {{<issue 28895>}}
* Uses full hybrid time for xCluster DDL queue polling, enhancing replication accuracy. {{<issue 30019>}}
* Ensures correct syntax in `CREATE INDEX` statements with special options like `colocation_id`. {{<issue 29337>}}
* Fixes `ysql_dump` to correctly handle vector indexes in colocated databases. {{<issue 28631>}}
* Increases the RPC timeout to 1 hour for `AddTableToXClusterTarget` tasks. {{<issue 30072>}}
* Prevents xCluster replication from halting when dropping an invalid index. {{<issue 26633>}}
* Fixes yb-admin corruption errors for tablet partitions by using the correct schema. {{<issue 29992>}}
* Reduces unnecessary VI_STATS logging in pg_client_session.cc. {{<issue 30070>}}
* Ensures PRIMARY KEY indexes process before UNIQUE indexes during ALTER operations to prevent double index creation. {{<issue 30055>}}
* Skips parent tablet in data dumps for colocated tables. {{<issue 30220>}}
* Fixes a race condition in `kPgSession` transactions to better detect deadlocks. {{<issue 30252>}}
* Adds a tool to fix incorrect namespace_id in tablet metadata {{<issue 30124>}}
* Enhances upgrade prechecks to detect pgcrypto conflicts, preventing PG15 upgrade errors. {{<issue 29267>}}
* Fixes self-deadlock issue during post-split compaction on tablets with vector indexes. {{<issue 30290>}}
* Ensures data integrity during snapshot restoration by flushing relevant files during checkpoint creation. {{<issue 30146>}}
* Fixes issue of xCluster context not clearing when running DDLs in different schema, preventing collisions with follow-up DDLs. {{<issue 30529>}}
* Initiates abort operation proactively on detecting that backend would not recover from commit failure, triggering early cleanup of transactions. {{<issue 30499>}}
* Resolved a regression issue in YCQL backup/restore that affected tables with a unique index by adjusting the schema version bumping logic. {{<issue 29789>}}

#### CDC

* Fixes the issue where UPAM gets stuck for colocated tablets with indexes, ensuring continuity of CDC operations. {{<issue 30067>}}
* Adds checks to handle cases where `GetConsistentWALRecords` returns zero WAL records near request deadlines, improving reliability in partially streamed transactions. The change also enables `cdc_enable_savepoint_rollback_filtering` by default, ensuring better support for Savepoint/Rollback operations in CDC. {{<issue 29396>}}

</details>

## v2025.2.1.0 - February 12, 2026 {#v2025.2.1.0}

**Build:** `2025.2.1.0-b141`

**Third-party licenses:** [YugabyteDB](https://downloads.yugabyte.com/releases/2025.2.1.0/yugabytedb-2025.2.1.0-b141-third-party-licenses.html), [YugabyteDB Anywhere](https://downloads.yugabyte.com/releases/2025.2.1.0/yugabytedb-anywhere-2025.2.1.0-b141-third-party-licenses.html)

### Downloads

<ul class="nav yb-pills">
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.1.0/yugabyte-2025.2.1.0-b141-darwin-x86_64.tar.gz">
      <i class="fa-brands fa-apple"></i>
      <span>macOS x86</span>
    </a>
  </li>
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.1.0/yugabyte-2025.2.1.0-b141-darwin-arm64.tar.gz">
      <i class="fa-brands fa-apple"></i>
      <span>macOS ARM</span>
    </a>
  </li>
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.1.0/yugabyte-2025.2.1.0-b141-linux-x86_64.tar.gz">
      <i class="fa-brands fa-linux"></i>
      <span>Linux x86</span>
    </a>
  </li>
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.1.0/yugabyte-2025.2.1.0-b141-el8-aarch64.tar.gz">
      <i class="fa-brands fa-linux"></i>
      <span>Linux ARM</span>
    </a>
  </li>
</ul>

**Docker:**

```sh
docker pull yugabytedb/yugabyte:2025.2.1.0-b141
```

### Highlights

We're excited to announce the key features and enhancements in the 2025.2.1.0 release, designed to improve performance, usability, and management of your database environments.

| <div style="width:150px">Feature</div> | Description |
| :-------- | :---------- |
| {{<tags/feature/ga idea="153">}}[xCluster automatic mode](/stable/deploy/multi-dc/async-replication/async-transactional-setup-automatic/#set-up-automatic-mode-replication) | Seamless automated replication of YSQL DDL changes across xCluster, eliminating the need to manually apply DDLs on both source and target clusters. This simplifies DDL operations and reduces management overhead.<hr style="margin: 0.5em 0;">**To use**: Enabled by default for universes running v2025.2.1 or later. |
| {{<tags/feature/ea idea="2525">}}[Replication origins](/stable/additional-features/change-data-capture/using-logical-replication/advanced-topic/#replication-origins) | Adds support for [PostgreSQL replication origins](https://www.postgresql.org/docs/15/replication-origins.html); track the origin of transactions to avoid infinite loops (A -> B -> A -> B -> A) in bi-directional CDC setups.<hr style="margin: 0.5em 0;">**To use**: Create replication origins using the `pg_replication_origin_create();` function before streaming changes from a replication slot. |
| {{<tags/feature/ea idea="2196">}}[Connection Manager enhancement](/stable/additional-features/connection-manager-ysql/ycm-setup/#configure) | Reduces latency using an authentication passthrough mechanism when acquiring new logical connections.<hr style="margin: 0.5em 0;">**To use**: Set the `ysql_conn_mgr_use_auth_backend` flag to false; contact {{% support-general %}} about whether setting this parameter is recommended for your workload. |

<!-- **Automatic DDL Replication for xCluster DR** {{<tags/feature/ga idea="153">}}

YugabyteDB now supports seamless and automated replication of YSQL DDL changes across xCluster DR, eliminating the need to manually apply DDLs on both source and target clusters. This simplifies DDL operations and reduces management overhead. For more information, refer to [Automatic DDL replication](/stable/deploy/multi-dc/async-replication/async-transactional-setup-automatic/#set-up-automatic-mode-replication).

**CDC: Use WAL Remote Origin to prevent circular loops** {{<tags/feature/ea idea="2525">}}

YugabyteDB now tracks the origin cluster of every SQL transaction, thereby enabling CDC to avoid infinite loops (A -> B -> A -> B -> A) when CDC is configured bi-directionally. For more information, refer to [Replication logins](/stable/deploy/multi-dc/async-replication/async-transactional-setup-automatic/#set-up-automatic-mode-replication).

**Connection pooling enhancement** {{<tags/feature/ea idea="2196">}}

Reduces latency by leveraging authentication passthrough mechanism for acquiring new logical connections, ensuring increased efficiency and correctness. For more information, refer to [ysql_conn_mgr_use_auth_backend](/stable/additional-features/connection-manager-ysql/ycm-setup/#configure) in the Configure section of YSQL Connection Manager. -->

### New features

| <div style="width:150px">Feature</div> | Description |
| :-------- | :---------- |
| {{<tags/feature/ea idea="1298">}}[Write pipelining](/stable/reference/configuration/yb-master/#ysql-enable-write-pipelining) | Reduces latency for multi-region write operations by combining asynchronous raft replication and modified commit behavior.<hr style="margin: 0.5em 0;">**To use**: Disabled by default. Add the `ysql_enable_write_pipelining` flag to [preview flags](../../../reference/configuration/yb-tserver/#allowed-preview-flags-csv), and set the flag to true on yb-master and yb-tserver. |
| {{<tags/feature/ga idea="1240">}}[Extended pg_stat_statements metrics](/stable/launch-and-manage/monitor-and-alert/query-tuning/pg-stat-statements/) | Adds metrics including next seek, average peak memory usage, retries, round trips (RPCs), and rows scanned, for optimized query performance and enhanced observability.<hr style="margin: 0.5em 0;">**To use**: Enabled by default. |
| {{<tags/feature/ea idea="2006">}}[Geo-partitioned read replicas](/stable/explore/going-beyond-sql/tablespaces/#read-replicas) | Geo-partitioned universes now support read replicas, enabling configurations such as "keep three replicas in EU with an additional read-only replica in the US".<hr style="margin: 0.5em 0;">**To use**: Create tablespaces with read replica nodes using the `read_replica_placement` configuration option. |
| {{<tags/feature/tp idea="2275">}} [Bucket-based indexes](/stable/develop/data-modeling/bucket-based-index-ysql/) | Addresses write-path hotspots for ascending/descending indexes while maintaining optimal performance for order-based queries.<hr style="margin: 0.5em 0;">**To use**: Disabled by default. Set `yb_enable_derived_saops` to true and `yb_max_saop_merge_streams` to 64. |

<!-- - [Write pipelining](/stable/reference/configuration/yb-master/#ysql-enable-write-pipelining) optimization. Reduces latency for multi-region write operations by combining asynchronous raft replication and modified commit behavior. {{<tags/feature/ea idea="1298">}}.

- Extended [pg_stat_statements](/stable/launch-and-manage/monitor-and-alert/query-tuning/pg-stat-statements/) metrics. Provides additional metrics including next seek, average peak memory usage, retries, round trips (RPCs), and rows scanned for optimized query performance and enhanced observability. {{<tags/feature/ga idea="1240">}}

- [Geo-partitions with read replicas](/stable/explore/going-beyond-sql/tablespaces/#read-replicas). Tablespaces for geo-partitioned tables (and partitions) can now include read replicas policies, enabling configurations such as "keep three replicas in EU with an additional read-only replica in the US". {{<tags/feature/ea idea="2006">}}

- Bucket-based index distribution support. Addresses write-path hotspots for ascending/descending indexes while maintaining optimal performance for order-based queries. {{<tags/feature/ea idea="2275">}}

- [AWS ClockBound support](/stable/deploy/manual-deployment/system-config/#configure-clockbound). [ClockBound](https://github.com/aws/clock-bound) is an open source daemon that allows you to compare timestamps to determine order for events and transactions, independent of an instance's geographic location; it improves clock accuracy by several orders of magnitude. {{<tags/feature/ea idea="1807">}} -->

### Change log

<details>
  <summary>View the detailed changelog</summary>

### Improvements

#### YSQL

* Allows concurrent DDL operations in YSQL when object locking is enabled, enhancing performance and usability. {{<issue 27037>}}
* Refactors PgClientSession to streamline read time updates via `UpdateReadTime`. {{<issue 29310>}}
* Enhances debugging by logging the last DDL node tag regardless of `BEGIN` block presence. {{<issue 29402>}}
* Refactors hash permutations in PgGate to enhance memory management and support more complex query conditions. {{<issue 28769>}}
* Refactors hacky varno logic for clearer Explain output formatting. {{<issue 29256>}}
* Allows custom sort orders in index scans through SAOP merge planning. {{<issue 29070>}}
* Expands `yb_explain_hide_non_deterministic_fields` to cover additional EXPLAIN fields. {{<issue 29551>}}
* Enhances SAOP merge execution by using the optimal SAOP in scenarios with varied cardinalities. {{<issue 29071>}}
* Consolidates secondary index scan logic and streamlines class names for future enhancements. {{<issue 29656>}}
* Enables complex index scans with custom sort orders using SAOP merge execution. {{<issue 29072>}}
* Removes redundant checks in `PgClientSession` to streamline code execution. {{<issue 28735>}}
* Automatically adds equality conditions for generated columns and indexes based on dependency. {{<issue 29075>}}
* Automatically adds SAOP conditions for certain index columns to optimize merge sorts. {{<issue 29076>}}
* Optimized the postgres build process by removing the redundant and time-consuming install_wrapper.py. {{<issue 29714>}}
* Adds a deprecated YSQL configuration for toggling PG snapshot management. {{<issue 29763>}}
* Enables `ysql_yb_enable_ddl_savepoint_support` as a preview feature, ensuring stability for user trials in pre-production environments. {{<issue 29825>}}
* Separates default and session-based YSQL configuration parameters into different lists for better management. {{<issue 27725>}},{{<issue 27827>}}
* Enhances authentication passthrough, ensuring YSQL connection correctness and reducing latency. {{<issue 29112>}}
* Added compiler errors to Odyssey build for improved compile-time checking. {{<issue 28216>}}
* Adds support for replication connection authentication in Auth Passthrough mode. {{<issue 29113>}}
* Logs `ysql_dump` output on script failure during DB cloning. {{<issue 29607>}}
* Reduces YSQL backend startup logging to only two useful lines. {{<issue 29579>}}
* Deprecated the g-flag `ysql_conn_mgr_max_phy_conn_percent` and introduced new g-flag `ysql_conn_mgr_reserve_internal_conns` for reserving connections for internal operations. {{<issue 28859>}}
* Fixes a memory leak in YSQL authentication pass-through. {{<issue 29882>}}

#### YCQL

* Enables clearing the YCQL MetaData cache via the `yb-ts-cli` tool. {{<issue 7832>}}

#### DocDB

* Adds the `ysql_clone_disable_connections` flag to allow YSQL database connections during cloning. {{<issue 29678>}}
* Enables detailed data and checksum dumps for tablets via new commands, aiding in consistency checks and troubleshooting. {{<issue 29904>}}
* Blocks `nextval` and `setval` functions in automatic replication mode. {{<issue 24034>}}
* Prevents xCluster replication issues by ensuring new schema versions are current. {{<issue 29760>}}
* Adds control for vector index inclusion in post-split compaction. {{<issue 29378>}}
* Checks tablet limits before starting the DB cloning process. {{<issue 22338>}}
* Now captures TCMalloc and MemTrackers stats in logs when root memtracker soft memory limit is exceeded, aiding in memory issues investigation. {{<issue 29050>}}
* Added tablet replica SST and WAL size to master UI and sorted tablets by partition key. {{<issue 29407>}}
* Enhances vector index checkpoints placement for tablet splitting. {{<issue 29262>}}
* Automatically deletes vector index directories when tablets are deleted. {{<issue 29447>}}
* Adds latency metrics for bloom filter operations, controllable via `rocksdb_collect_bloom_filter_time_metrics` flag. {{<issue 28617>}}
* Enhances block navigation accuracy and API access in `TwoLevelIteratorState`. {{<issue 29281>}}
* Reduces excessive logging in CDC service, transaction manager, and RocksDB operations. {{<issue 29581>}}
* 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. {{<issue 29388>}}
* Reenables LogReader memory limit in xCluster following resolution of TryConsume bug. {{<issue 29252>}}
* Disables table locks to prevent potential test failures. {{<issue 28696>}}
* Eliminates redundant logic for child tablet registration, enhancing system consistency. {{<issue 29643>}}
* Enables manual tablet splitting for vector indexes. {{<issue 29377>}}
* Enables configuring read replicas at the tablespace level, enhancing data access flexibility. {{<issue 12180>}}
* Ensures more balanced tablet splits by calculating the middle key from user data only. {{<issue 29214>}}
* Prevents false deadlocks by not reusing transactions that have blocked others. {{<issue 28042>}}
* Allows running DDLs without aborting active transactions when table locks are enabled. {{<issue 27613>}},{{<issue 29821>}},{{<issue 29873>}}
* Enhances debugging and fixes a bug in RWCLock logging. {{<issue 29309>}},{{<issue 29364>}}
* Sets yb_hnsw as the default backend for vector indexes. {{<issue 29964>}}
* Prevents sending of `YBParsePrepareErrorResponse` packet for unnamed prepared statements. {{<issue 29526>}}
* Ensures connection stickiness when using `pg_replication_origin_session_setup`. {{<issue 29842>}}
* Enhancements to GUC default values, especially GUC settings from startup packet. {{<issue 27723>}} <!-- {{<tags/feature/ea idea="2526">}} -->

#### CDC

* Added runtime flag to control CDC with Savepoints and Rollback feature, and introduced tests for rollback and savepoint behavior. {{<issue 29773>}}
* Allows CDC streaming from tables without a primary key using a new flag. {{<issue 29423>}}
* Captures `origin_id` from PostgreSQL sessions, enhancing CDCSDK handling of WAL records for distributed transactions. {{<issue 29582>}}
* Reduced logging levels in `CatalogManager::FindXReplStreamsMarkedForDeletion` when a table is dropped. {{<issue 29637>}}

### Bug fixes

#### YSQL

* Enhanced handling of empty strings in CatalogEntityPB to prevent parsing failures during table entry deletion. {{<issue 29240>}}
* Fixed an issue where integer overflow in the new cost model could lead to negative cost estimates, resulting in poor plan choices. {{<issue 29685>}}
* Disallowed Batched Nested Loop joins when the inner relation is a temporary table to prevent cache lookup errors or assertion failures. {{<issue 28864>}}
* 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. {{<issue 28690>}}
* 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`. {{<issue 28863>}}
* Fixes quoting for unique constraints during schema restores. {{<issue 29838>}}
* Allows users to disable both DDL atomicity and transactional DDL simultaneously. {{<issue 29358>}},{{<issue 28284>}}
* Updates process exit behavior on pggate heartbeat failure during initialization. {{<issue 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. {{<issue 29260>}}
* Fixed an issue where running ALTER TYPE on a table with dependent indexes triggered double index creation, causing replication conflicts on xCluster targets. {{<issue 27741>}}
* Enhances stability during transaction rollbacks involving index and base table deletions. {{<issue 29373>}}
* Fixes race condition in `ROLLBACK TO SAVEPOINT` handling for DDLs. {{<issue 29414>}}
* Ensures replaced trigger functions are used correctly in transactions. {{<issue 29424>}}
* Ensures that newly created or updated functions are correctly recognized and replace stale versions in YSQL. {{<issue 29424>}}
* Prevents crashes during transaction abort when an ALTER TYPE command fails with transactional DDL enabled. {{<issue 29325>}}
* Reinstates missing values restoration in backups, adding logs for schema mismatches. {{<issue 29960>}}
* Fixes are introduced to address intra-query memory leaks during long-running write queries, reducing transient memory spikes and improving memory allocation. {{<issue 29056>}},{{<issue 29057>}}
* Changes `yb_make_all_ddl_statements_incrementing` to a test YSQL configuration parameter to prevent DDL failures. {{<issue 29405>}}
* Fixes vector indexes to support `ysql_use_packed_row_v2` flag, preventing data corruption. {{<issue 29348>}}
* Fixed an issue with prepared statements on temporary tables when using extended query protocol. {{<issue 29292>}}
* Fixes crashes during savepoint rollback for the first DDL in transactions. {{<issue 29013>}}
* Fixed a metadata correctness bug that caused errors when using minimal preloading with negative caching. {{<issue 29485>}}
* Prevents unnecessary request dispatches for out-of-bound hash permutations. {{<issue 29041>}}
* Ensures hash permutations reset correctly for parallel queries on hash-distributed tables. {{<issue 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. {{<issue 29206>}}
* Fixes "schema version mismatch" errors after savepoint rollbacks. {{<issue 29538>}}
* Ensures each batch has sufficient PgsqlOps/ReadReqs to avoid segmentation faults. {{<issue 29343>}}
* Fixed read restart error occurring during concurrent execution of CREATE TEMP TABLE. {{<issue 29704>}}
* Skips tables in DELETING or DELETED state during rollback to savepoint to prevent errors. {{<issue 29520>}}
* Fixed a missing build dependency issue in the yb_pgwrapper library that caused a failure when running build with clean-postgres. {{<issue 29728>}}
* Prevents database crashes by skipping cache invalidation for negative entries. {{<issue 29606>}}
* Ensures all read restart errors display complete debugging information in the detail message. {{<issue 29762>}}
* Adds GFlag for GUC yb_ignore_bool_cond_for_legacy_estimate, allowing setting via GFlag before upgrading from 2.20. {{<issue 29831>}}
* Ensures object lock acquisition deadlines are computed in microseconds, preventing rounding errors for sub-second timeouts. {{<issue 29891>}}
* Ensures functions remain accurate after rolling back to a savepoint. {{<issue 29881>}}
* Adds synchronization wait time to prevent crashes on startup in clockbound mode. {{<issue 28377>}}
* Fixes crashes during complex row comparisons in YSQL queries. {{<issue 29942>}}
* Reduces redundant lock requests in YSQL, speeding up certain DDL operations. {{<issue 29785>}}
* Limits request and response sizes in YSQL ANALYZE to avoid errors. {{<issue 29288>}},{{<issue 29289>}}
* Adds `yb_ycql_utils` to supported extensions for YSQL major upgrades. {{<issue 29973>}}
* Fixed issue where server connection gets stuck due to full server write buffer after ungraceful client disconnects. {{<issue 29301>}}
* Implemented a fix to remove stale entries from the server's hashmap during connection manager reset phase. {{<issue 29527>}}
* Fixed the Connection Manager's support for replication connections, ensuring that it independently manages these connections, aligning with PostgreSQL's behavior. {{<issue 28521>}}
* Reduces CPU usage in connection manager by improving `epoll_*` functions and fixing syntax errors. {{<issue 29827>}}
* Ensures accurate index updates in 'INSERT ... ON CONFLICT' for partial indexes. {{<issue 30104>}}

#### YCQL

* Enables retrying YCQL analyze steps for `OBJECT_NOT_FOUND` errors to refresh cache. {{<issue 29589>}}
* Prevents crashes by correctly handling NULL index references in YCQL queries. {{<issue 29754>}}

#### DocDB

* Enhances `rocksdb_bytes_read` metric to include iterator read bytes. {{<issue 26992>}}
* Fixed deadlock in MasterSnapshotCoordinator by modifying PopulateDeleteRetainerInfoForTableDrop to pass table_info to IsTabletCoveredBySnapshot. {{<issue 28679>}}
* Reduces log replay during bootstrap by synchronizing intents DB flushed op ID with regular DB. {{<issue 29184>}}
* Prevents duplication of restoration requests in tablet metadata. {{<issue 27183>}}
* Enables `ysql_dump` with `read-time` option for consistent point-in-time backups. {{<issue 20480>}}
* Eliminates race conditions between snapshot creation and concurrent DDL operations. {{<issue 29474>}}
* Enhances xCluster by ensuring indexes are replicated with associated table DDLs. {{<issue 29699>}},{{<issue 29133>}}
* Fixes vector index searches to return complete results post-tablet splits. {{<issue 29543>}}
* Prevents failures in simultaneous table creations across different databases in the same replication group. {{<issue 29797>}}
* Fixes a TServer crash issue during hybrid scans caused by incorrect read requests from Postgres. {{<issue 29347>}}
* Ensures batched `COPY` operations securely re-acquire table and index locks, reducing partial copy failures. {{<issue 29327>}}
* Prevents race conditions during YSQL lease re-acquisition by synchronizing it with lock requests. {{<issue 27829>}}
* Fixes bugs in Prometheus metrics scraping for tables with special characters in their names. {{<issue 29351>}}
* Prevents fatal errors in transactions by relaxing subtransaction checks. {{<issue 29023>}}
* Switched from using SIGQUIT to SIGINT to stop the PostgreSQL postmaster, preventing core dump generation at TServer startup. {{<issue 29670>}}
* Prevents shutdown errors by checking for active tasks during registry closure. {{<issue 29593>}}
* Enhances xCluster DDL replication by including schema names in relation maps. {{<issue 29598>}}
* Ensures all tablets have updated schemas for xCluster replication, improving error handling and consistency. {{<issue 28326>}},{{<issue 28946>}}
* Introduces `min_replay_txn_first_write_ht` to address transaction data loss that occurred due to incorrect filtering of transactions on bootstrap. {{<issue 29642>}}
* Eliminates false conflicts in fastpath object locking by replicating PostgreSQL's matrix. {{<issue 29793>}}
* Automatically cleans up discarded checkpoints to prevent disk full issues during remote bootstraps. {{<issue 29909>}}
* Enhances xCluster replication by skipping unnecessary tuple generation in `ATRewriteTable`. {{<issue 29594>}}
* Adds logging for database creation and deletion events in `ysql_db_catalog_version_map`. {{<issue 29476>}}
* Allows xCluster DDL replication setup with materialized views. {{<issue 29970>}}
* 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. {{<issue 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. {{<issue 28960>}}
* Disables inline waiting for PG connections on cluster start with object locking. {{<issue 29236>}}
* Ensures `yb_index_check` correctly acquires object locks, preventing debug assertion failures. {{<issue 29389>}}
* Switched from using SIGKILL to SIGQUIT and SIGINT for stopping postmaster process during lease loss and tserver shutdown respectively. {{<issue 28670>}}
* Implemented root memtracker adjustment to limit deviation from TCMalloc stats, avoiding overestimation and false triggering of memory limits. {{<issue 29094>}}
* Adjusts object locking sanity checks to transaction level granularity. {{<issue 29390>}}
* Ensures consistent behavior across sessions during upgrades by caching table lock flag values. {{<issue 29515>}}
* Fixes transaction-related DFATAL issues by enabling concurrent updates. {{<issue 29512>}}
* Disables tablet splits during table hide operations to prevent state inconsistencies and lock leaks. {{<issue 29559>}}
* Enhances isolation test coverage by adding `partition-drop-index-locking` and adjusting `timeouts` to align with PostgreSQL behavior. {{<issue 21705>}}
* Ensures vector index searches function correctly across sessions. {{<issue 29445>}}
* Enables Postgres to function with `node_to_node_encryption_use_client_certificates` flag. {{<issue 7335>}},{{<issue 26138>}}
* Automatically resets stale transaction IDs on transaction failure to prevent lock leaks. {{<issue 29628>}}
* Ensures DDL operations wait when DML is in progress with object locking. {{<issue 29150>}}
* Disables object locking for `yb_proc_schedule` to ensure consistent test outputs. {{<issue 29156>}}
* Disables intent filtering for bootstrap due to transaction filtering issues with use_bootstrap_intent_ht_filter set to true. {{<issue 29664>}}
* Supports successful backups during tablet splits. {{<issue 29002>}}
* Excludes invalid indices from snapshots to prevent backup restore failures. {{<issue 28986>}}
* Ensures accurate schema during backups amid concurrent schema alterations and snapshot creations. {{<issue 28766>}}
* Reduces `TServer does not have a live lease` errors for pg clients by adding retry logic. {{<issue 29600>}}
* Prevents potential double decrement errors in object lock state management. {{<issue 29790>}}
* Prevents restore failures during schema merges in backups taken during DDL operations. {{<issue 29765>}}
* Reduces lock overflow issues by treating redundant lock requests as no-ops. {{<issue 29774>}}
* Fixes a regression that allowed restoring to a time earlier than the maximum retention window, potentially causing database instability. {{<issue 28699>}}
* Ensures correct resetting of the wait state in the WAL appender thread. {{<issue 29586>}}
* Adds a null check to prevent indefinite wait states in WAL appender threads. {{<issue 29586>}}
* Prevents fatal errors by storing status tablet data for global object lock requests. {{<issue 29323>}}
* Fixes yb-admin corruption errors for tablet partitions by using the correct schema. {{<issue 29992>}}
* Maintains correct message order by buffering ParameterStatus updates. {{<issue 29884>}}
* Enables hot certificate reloading for client-to-node encryption. {{<issue 29631>}}
* Handles sync timeout more effectively during connection resets. {{<issue 29173>}}
* Resolves Bind packet forwarding issue for unnamed prepared statements. {{<issue 29935>}}
* Fixes a potential segfault when handling auth errors in Auth Passthrough mode. {{<issue 29477>}}
* Eliminated potential TCP deadlock in YSQL by changing to asynchronous write in `od_frontend_remote_client`. {{<issue 29303>}}
* Truncate user and database names exceeding 64 characters to prevent buffer overflow during startup. {{<issue 29331>}}
* Modified `od_write` function to prevent double free of `mm_msg_t` objects and enhanced `machine_msg_free` to handle NULL messages. {{<issue 29398>}}
* Resolved rounding errors in `StopWatch` by changing calculation order. {{<issue 29205>}}
* Stops empty sample blocks from being incorrectly counted in analytic calculations. {{<issue 29203>}}
* Disables graceful shutdown to prevent data corruption in 2025.2.1. {{<issue 30047>}}
* Increases the RPC timeout to 1 hour for `AddTableToXClusterTarget` tasks. {{<issue 30072>}}
* Ensures PRIMARY KEY indexes process before UNIQUE indexes during ALTER operations to prevent double index creation. {{<issue 30055>}}
* Fixes tablet split validation to handle 0x0000 as an empty key for hash partitions. {{<issue 30062>}}

#### CDC

* Fixed error in UpdatePeersAndMetrics for Sys Catalog tablet, improving handling of `pg_publication_rel` and `pg_class` tables. {{<issue 29140>}}
* Fixes endpoint verification failures by using DNS hostnames for local connections. {{<issue 29669>}}
* Fixes UPAM stalling with colocated tablets containing indexes, preventing CDC errors. {{<issue 30067>}}

</details>

## v2025.2.0.1 - January 26, 2026 {#v2025.2.0.1}

**Build:** `2025.2.0.1-b1`

**Third-party licenses:** [YugabyteDB](https://downloads.yugabyte.com/releases/2025.2.0.1/yugabytedb-2025.2.0.1-b1-third-party-licenses.html), [YugabyteDB Anywhere](https://downloads.yugabyte.com/releases/2025.2.0.1/yugabytedb-anywhere-2025.2.0.1-b1-third-party-licenses.html)

### Downloads

<ul class="nav yb-pills">
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.0.1/yugabyte-2025.2.0.1-b1-darwin-x86_64.tar.gz">
      <i class="fa-brands fa-apple"></i>
      <span>macOS x86</span>
    </a>
  </li>
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.0.1/yugabyte-2025.2.0.1-b1-darwin-arm64.tar.gz">
      <i class="fa-brands fa-apple"></i>
      <span>macOS ARM</span>
    </a>
  </li>
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.0.1/yugabyte-2025.2.0.1-b1-linux-x86_64.tar.gz">
      <i class="fa-brands fa-linux"></i>
      <span>Linux x86</span>
    </a>
  </li>
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.0.1/yugabyte-2025.2.0.1-b1-el8-aarch64.tar.gz">
      <i class="fa-brands fa-linux"></i>
      <span>Linux ARM</span>
    </a>
  </li>
</ul>

**Docker:**

```sh
docker pull yugabytedb/yugabyte:2025.2.0.1-b1
```

### Bug fix

#### DocDB

* Disables graceful shutdown to prevent data corruption. {{<issue 30047>}}

## v2025.2.0.0 - December 11, 2025 {#v2025.2.0.0}

**Build:** `2025.2.0.0-b131`

**Third-party licenses:** [YugabyteDB](https://downloads.yugabyte.com/releases/2025.2.0.0/yugabytedb-2025.2.0.0-b131-third-party-licenses.html), [YugabyteDB Anywhere](https://downloads.yugabyte.com/releases/2025.2.0.0/yugabytedb-anywhere-2025.2.0.0-b131-third-party-licenses.html)

### Downloads

<ul class="nav yb-pills">
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.0.0/yugabyte-2025.2.0.0-b131-darwin-x86_64.tar.gz">
      <i class="fa-brands fa-apple"></i>
      <span>macOS x86</span>
    </a>
  </li>
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.0.0/yugabyte-2025.2.0.0-b131-darwin-arm64.tar.gz">
      <i class="fa-brands fa-apple"></i>
      <span>macOS ARM</span>
    </a>
  </li>
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.0.0/yugabyte-2025.2.0.0-b131-linux-x86_64.tar.gz">
      <i class="fa-brands fa-linux"></i>
      <span>Linux x86</span>
    </a>
  </li>
  <li>
    <a href="https://downloads.yugabyte.com/releases/2025.2.0.0/yugabyte-2025.2.0.0-b131-el8-aarch64.tar.gz">
      <i class="fa-brands fa-linux"></i>
      <span>Linux ARM</span>
    </a>
  </li>
</ul>

**Docker:**

```sh
docker pull yugabytedb/yugabyte:2025.2.0.0-b131
```

### Highlights

**PostgreSQL features enabled by default on new universes**

For new universes running v2025.2 or later, the following YSQL features are now enabled by default when you deploy using [yugabyted](../../../deploy/manual-deployment/start-yugabyted/), [YugabyteDB Anywhere](../../../yugabyte-platform/create-deployments/create-universe-multi-zone/), or [YugabyteDB Aeon](../../../yugabyte-cloud/cloud-basics/create-clusters/) (coming soon to the Early Access track):

* [Read committed](../../../architecture/transactions/read-committed/)
* [Cost-based optimizer](../../../best-practices-operations/ysql-yb-enable-cbo/)
* [Auto Analyze](../../../additional-features/auto-analyze/)
* [YugabyteDB bitmap scan](../../../reference/configuration/postgresql-compatibility/#yugabytedb-bitmap-scan)
* [Parallel append](../../../additional-features/parallel-query/)

In addition, if you upgrade to v2025.2 and the universe already has cost-based optimizer enabled, the following features are enabled by default:

* Auto Analyze
* YugabyteDB bitmap scan
* Parallel append

Note that, apart from the exceptions noted, upgrading existing universes does not change the defaults for any of these features.

For more information on PostgreSQL features developed in YugabyteDB for enhanced compatibility, refer to [Enhanced PostgreSQL Compatibility Mode](../../../reference/configuration/postgresql-compatibility/).

**Table-level locking for concurrent DDL and DML** {{<tags/feature/ea idea="1114">}}

Added [Table-level locks](/stable/explore/transactions/explicit-locking/#table-level-locks) to support concurrent DDL and DML operations across sessions, improving workload concurrency and reducing conflicts during schema changes.

**Improved time synchronization across nodes** {{<tags/feature/ea idea="1807">}}

Time synchronization across nodes has been enhanced through the use of the [ClockBound](https://github.com/aws/clock-bound) library, which is an open source daemon that allows you to compare timestamps to determine order for events and transactions, independent of an instance's geographic location; it improves clock accuracy by several orders of magnitude.

For more information, refer to [ClockBound](/stable/deploy/manual-deployment/system-config/#configure-clockbound).

### New features

* Improves [cluster balancer](/stable/architecture/docdb-sharding/cluster-balancing/#monitoring-cluster-balancer-progress) observability and throughput by prioritizing recovery of leaderless tablets. {{<tags/feature/ga idea="1328">}}

<!-- * [YSQL index consistency checker](/stable/api/ysql/exprs/func_yb_index_check/). yb_index_check() is a built-in utility that helps detect and diagnose index inconsistencies in your database to ensure reliable query results. {{<tags/feature/ga idea="2160">}} -->

* Added [CDC Logical Replication support](/stable/additional-features/change-data-capture/using-logical-replication/get-started/) for xCluster feature where both CDC and xCluster can work simultaneously on the same source tables. {{<tags/feature/ga idea="82">}}

* ASH

  * Adds [ASH](/stable/launch-and-manage/monitor-and-alert/active-session-history-monitor/) instrumentation to CDC, xCluster, Remote bootstrap, Restore Master, and Connection pooling for better bottleneck identification. {{<tags/feature/ea idea="2210">}}

  * Adds `rss_mem_bytes` field to `yb_active_session_history` for tracing high memory sessions. {{<tags/feature/ea idea="2199">}}

* [Colocated tables with tablespaces](/stable/additional-features/colocation/#colocated-tables-with-tablespaces). With this enhancement, you can now take advantage of colocated tables for geo-distributed use cases, eliminating the need for trade-offs between distributing data across specific regions. {{<tags/feature/ga idea="1104">}}

* Enhances bulk load performance on distributed tables by implementing Skip Prefix Locks. {{<tags/feature/ea idea="2139">}}

* [Auto Analyze service](/stable/additional-features/auto-analyze) Added automatic background statistics gathering to improve usability by eliminating the need for users to manually run ANALYZE. {{<tags/feature/ga idea="590">}}

* Enhance tablet server write RPC visibility with [EXPLAIN plan](/stable/api/ysql/the-sql-language/statements/perf_explain) to identify bottlenecks and potential optimizations. {{<tags/feature/ea idea="1477">}}

* [Cluster tablet metadata](/stable/explore/observability/yb-tablet-metadata/) Offers a global view, `yb_tablet_metadata` to reveal tablet placement, leadership, and row-specific information for all tables and databases. {{<tags/feature/ea idea="2358">}}

* [Backups with DDL](/stable/manage/backup-restore/). Backups succeed even when DDL changes are occurring during the backup process. {{<tags/feature/ea idea="1484">}}

* Support pgvector extension - With indexing support {{<tags/feature/ea idea="1111">}}. Brings AI-native capability by supporting pgvector with indexing, enabling efficient similarity search in vector workloads. Enhances vector search capabilities by introducing [Hierarchical Navigable Small World (HNSW) indexing](/stable/additional-features/pg-extensions/extension-pgvector/#vector-indexing), enabling faster and more efficient high-dimensional vector lookups.

* Expands ALTER TABLE functionality to include new and ongoing requests. {{<tags/feature/ga idea="2333">}}

* Simplifies ongoing and new tasks in the Catalog Caching area excluding main projects like Hybrid Tables/per-node-catalog cache. {{<tags/feature/ga idea="2334">}}

* Enhances query execution with foreign key performance, further IN batching, distinct and domain type pushdown improvements. {{<tags/feature/ga idea="2335">}}

* Introduces transaction-related enhancements for v2025.2, fixing consistency issues and read-restart errors. {{<tags/feature/ga idea="2336">}}

* Removes table tombstone check for colocated tables, increasing read and write performance. {{<tags/feature/ga idea="2138">}}

* Changes default [password encryption](/stable/secure/authentication/password-authentication/) from `md5` to `scram-sha-256` for new clusters without requiring extra steps. {{<issue 5399>}}

### Change log

<details>
  <summary>View the detailed changelog</summary>

### Improvements

#### YSQL

* Ensures YSQL index backfill operations resume seamlessly after a master leader failover. {{<issue 6218>}}
* Disallows interleaving SAVEPOINT and DDLs in a transaction block if transactional DDL is enabled, ensuring the safe execution of DDLs in Read Committed (RC) isolation. {{<issue 3109>}}
* Fixes a use-after-free bug in postponed DDL operations to prevent potential issues in transaction commits. {{<issue 3109>}},{{<issue 26707>}}
* Allows setting and modifying options for foreign tables using `ALTER FOREIGN TABLE ...OPTIONS (...)`. {{<issue 1124>}}
* Allows execution of multiple `TRUNCATE` statements within the same sub-transaction without causing errors. {{<issue 3109>}},{{<issue 27203>}}
* Simplifies handling of temporary tables with on-commit actions by committing the DocDB transaction after executing these actions, preventing errors related to unnecessary transaction states. {{<issue 3109>}},{{<issue 27307>}}
* Fixes the `ANALYZE` command error occurring when run outside of a transaction block, ensuring smoother operations. {{<issue 3109>}},{{<issue 27125>}}
* Resolves a bug in DDL atomicity workflow that incorrectly committed transactions involving table creation and deletion in the same block, preventing PG and DocDB schema divergence. {{<issue 3109>}},{{<issue 27359>}}
* Enables configuration of transactional DDL blocks via the `yb_ddl_transaction_block_enabled` flag. {{<issue 3109>}},{{<issue 27715>}}
* Resets the DDL state for read-only transactions to avoid state persistence issues. {{<issue 3109>}},{{<issue 27650>}}
* Introduces the `yb_fk_references_cache_limit` parameter to cap FK references cache entries at 65535. {{<issue 27739>}}
* Allows specifying colocation option for parent partition tables and splits parent partition tables into a single tablet. {{<issue 16209>}},{{<issue 27314>}}
* Enables transactional Data Definition Language (DDL) as a regular flag for interleaving DDL and Data Manipulation Language (DML) statements within a transaction block, enhancing system catalog read/write operations. {{<issue 3109>}}
* Enables transactional DDL in YSQL, allowing DDLs to run within a transaction block and interleave with DML operations, while ensuring DDL atomicity. {{<issue 3109>}},{{<issue 27616>}}
* Enables speculative execution for certain PL statements to avoid unnecessary flushes, enhancing performance. {{<issue 27464>}}
* Simplifies control flags for the auto analyze service, merging two existing flags into one, easing the use of the auto analyze feature. {{<issue 24548>}}
* Reduces the frequency of auto-analyze on small, frequently-updated tables. {{<issue 27627>}}
* Supports executing DDL statements in READ COMMITTED isolation with options to disable retries. {{<issue 27716>}}
* Adds extra locality info from PostgreSQL to TServer for better transaction categorization and performance. {{<issue 28270>}}
* Add a new YSQL configuration parameter that allows all DDL commands to increase the catalog version. {{<issue 28253>}}
* Reduces catalog cache memory spikes during new connections by introducing a TriggerRelcacheInitConnection RPC that allows only superuser `postgres` to rebuild the relcache init file. {{<issue 28758>}}
* Limits relcache init file rebuilding to internal connections only, reducing the memory spike associated with new connections. {{<issue 28758>}}
* Adds debug logs to help diagnose errors when rebuilding the relcache init file. {{<issue 28758>}}
* Reduces potential catalog cache memory spikes by enabling internal connections to perform minimal catalog preload. {{<issue 28758>}}
* Adds a lint rule to ensure the pairing of `Form_*` and `FormData_*` lines in yb_typedefs.list, increases code readability, and updates yb_typedefs.list and yb_thirdparty_typedefs.list. {{<issue 27319>}}
* Adds support for deferred mode in `yb_read_after_commit_visibility` for writes. {{<issue 24940>}}
* Adds estimated roundtrip counts to EXPLAIN output for scans. {{<issue 25063>}}
* Adds support for LSM index creation on multirange columns. {{<issue 27297>}}
* Displays write RPC metrics in `EXPLAIN (ANALYZE, DIST, DEBUG)` output. {{<issue 26086>}}
* Logs now detail the cause and context of read restart errors for better troubleshooting. {{<issue 24431>}}
* Adds a new YSQL parameter `yb_enable_cbo` for safer query optimization without statistics. {{<issue 26868>}}
* Enables integration of YSQL with PG snapshot management for Repeatable Read isolation level. {{<issue 28333>}}
* Introduces a per-backend in-memory cache for the hints table in the `pg_hint_plan` extension, reducing query planning time by avoiding inter-node lookups for each query execution. {{<issue 26828>}}
* Adds YB-specific counters to `pg_stat_statements` for detailed stats tracking. {{<issue 26791>}}
* Re-imports latest commit files from yb-pg15 branch, cherry-picks YB commits, removes unneeded commits, updates ysql_bench metrics, and fixes other minor issues. {{<issue 24822>}}
* Simplifies code management by separating cancelable and non-cancelable scopes. {{<issue 26751>}}
* Refactors the PgGate fetch control, introduces new classes for combining results from multiple PgsqlOp objects, optimizes index scan read requests for co-partitioned vector indexes, and removes unnecessary index requests. {{<issue 22826>}}
* Limits output buffer to 8kB to ensure compatibility with certain clients. {{<issue 26744>}}
* Enhances TServer by adding support for garbage collection of invalidation messages, reducing memory usage. {{<issue 26940>}}
* Enhances accuracy of cost modeling for backward index scans based on the `use_fast_backward_scan` flag. {{<issue 26991>}}
* Updates the `pg_stat_statements` header to reset stats on upgrade from 2.25 to 2.27. {{<issue 27180>}}
* Enhances PostgreSQL logging integration by utilizing the ErrorData.backtrace field, adjusting the control of backtrace addition through the `backtrace_functions` parameter, and introducing a `yb_debug_original_stacktrace_format` flag to switch stacktrace formats. {{<issue 26447>}}
* Increases the timeout for detecting `pg_yb_catalog_version` mode from 10 seconds to 20 seconds. {{<issue 26990>}}
* Streamlines UPDATE/DELETE operations and standardizes function signatures in YSQL. {{<issue 27179>}}
* Allows DDL statements to update the shared catalog version, reducing unnecessary master RPC calls and improving performance. {{<issue 27028>}}
* Prevents auto-analyze DDLs from blocking or preempting user DDLs. {{<issue 27036>}}
* Removes unnecessary YB_TODO comment in pl_exec.c related to memory context lifespan. {{<issue 27060>}}
* Optimizes catalog version updates on DDL statements to avoid unnecessary refreshes. {{<issue 27080>}}
* Adds support for `cube` and `earthdistance` extensions in YSQL upgrades. {{<issue 27141>}}
* Adds a new YSQL configuration parameter to disable the hint table cache. {{<issue 27151>}}
* Allows cleaner and when-needed building of dummy_seclabel in build_postgres.py instead of adding it as a default subdirectory. {{<issue 25892>}}
* Reduces unnecessary full catalog cache refreshes by calling update functions atomically. {{<issue 27239>}}
* Streamlines the database by removing obsolete functions related to drop/remove object by OID. {{<issue 27352>}}
* Removes the `YB_BITMAP_DISCOURAGE_MODIFIER` to better reflect actual bitmap scan costs. {{<issue 23565>}}
* Enhances the function to find the first catalog version more quickly using `std::lower_bound` instead of a linear scan. {{<issue 27316>}}
* Updates the yb_pgindent run and fixes some related issues for better code style and format. {{<issue 27341>}}
* Removes unused macro CHECK_REL_PROCEDURE2 and cleans up obsolete YB_TODO in heapam/indexam. {{<issue 27328>}}
* Automates directory switch and indent option computation in yb_pgindent to simplify usage. {{<issue 27384>}}
* Removes a redundant YB_TODO comment in finalize_partialaggregate that was introduced during the PG 15.2 initial merge. {{<issue 27419>}}
* Adjusts the bad_variable_declaration_spacing lint rule to ignore macros and exclude certain paths, enhancing code consistency. {{<issue 27418>}}
* Removes obsolete tasks in pg_dump.c, enhancing initial privileges retrieval for extension objects during backup/restore. {{<issue 27423>}}
* Skip lint rules for certain files, reducing warnings/errors and simplifying exclusion logic. {{<issue 27446>}}
* Removes a duplicate and outdated recordDependencyOnTablespace, enhancing the initial merge process. {{<issue 27467>}}
* Adds `pss_mem_bytes` field to `yb_active_session_history` for tracking process memory usage. {{<issue 27474>}}
* Enables sending buffered write operations and multiple read operations in a single RPC for optimized performance. {{<issue 27432>}}
* Allows setting the flag `ysql_yb_enable_invalidation_messages` to disable incremental catalog cache refresh. {{<issue 27286>}}
* Enables setting `ysql_yb_enable_cbo` flag on TServer for query optimization. {{<issue 27495>}}
* Switches to `__thread` in regex code for thread-local variables, ensuring correctness and safety in multi-threaded environments. {{<issue 26847>}}
* Allows YbctidReaderProvider to work with Slice instead of std::string for optimized PgFKReferenceCache memory usage. {{<issue 28175>}}
* Enables parallel scanning in all safe cases, thereby enhancing speed and performance. {{<issue 23149>}}
* Reduces unexpected full catalog cache refreshes in new PG backends. {{<issue 27533>}}
* Allows turning a stored generated column into a normal one with ALTER TABLE ALTER COLUMN DROP EXPRESSION. {{<issue 27456>}}
* Adds verbose logging for Perform RPCs between Pg and TServer via shared memory. {{<issue 27571>}}
* Modifies the `bad_comment_style` rule to bypass lint errors for nested comments in `d2s_intrinsics.h` and `d2s.c` files. {{<issue 27623>}}
* Adjusts lint rule to ignore false positives for pg_hint_plan comments inside string. {{<issue 27655>}}
* Rectifies PostgreSQL lint rule bad_spacing_after_comment violations and upgrades it from warning to error. {{<issue 27693>}}
* Enhances brace lint rules to ignore false positives from code comments and macros, and upgrades them from warnings to errors. {{<issue 27740>}}
* Enhances logging for troubleshooting unexpected full catalog refreshes by adding `CatalogInvalMessagesDataDebugString`. {{<issue 27387>}}
* Displays storage flush reasons under debug logs for better query performance analysis. {{<issue 27588>}}
* Simplifies conditional cleanup actions with `MakeOptionalScopeExit` function. {{<issue 27786>}}
* Replaces the `rss_mem_bytes` column in `pg_stat_activity` with `pss_mem_bytes` for more accurate memory measurements. {{<issue 27768>}}
* Removes the beta label for various Foreign Data Wrapper commands in YSQL. {{<issue 9979>}}
* Streamlines request pagination in scans for consistent behavior across all directions. {{<issue 27738>}}
* Allows `upgrade_ysql` to exit early if YSQL is not enabled. {{<issue 27167>}}
* Adds `GUC_EXPLAIN` flag to YB-specific GUC parameters for enhanced EXPLAIN output. {{<issue 26864>}}
* Simplifies code for `Perfrom` requests, enhancing readability and usability. {{<issue 27965>}}
* Optimizes table cache by using invalidation messages to clear only relevant entries, reducing OpenTable RPC count. {{<issue 28049>}}
* Displays TCMalloc and PGGate memory stats in `pg_log_backend_memory_contexts` for enhanced debugging. {{<issue 27879>}}
* Introduces `hnsw.ef_search` as a new YSQL configuration parameter, mirroring `ybhnsw.ef_search`. {{<issue 26629>}}
* Displays read operations in EXPLAIN for better insight into the number of operations, unaffected by request parallelism. {{<issue 28028>}}
* Reduces memory allocations by using a generator instead of non-reused vectors in `PgDmlRead::SetHoldingRequestedYbctids` method. {{<issue 27991>}}
* Enhances row boundary settings for hash-partitioned tables using encoded DocKeys. {{<issue 28219>}}
* Adds the ability to display commit stats with the EXPLAIN command, helping users understand latency in multi-region workloads. {{<issue 26964>}}
* Introduces a new yb_tablet_metadata view that allows users to fetch tablet distribution and leadership information across the entire cluster. {{<issue 28107>}}
* Simplifies the PgTableCache interface reducing boilerplate code by accepting a single shared pointer of type PgTablesQueryTableReceiver instead of two independent pointers. {{<issue 28069>}}
* Simplifies adding types to yb_typedefs.list and running yb_pgindent. {{<issue 28063>}}
* Enables the `now` function to be evaluated once, replaced with a constant, and pushed down to DocDB, enhancing query execution. {{<issue 26497>}}
* Ensures all `COPY FROM` commands in a transaction block use one transaction unit. {{<issue 27061>}}
* Adds a new column to the yb_wait_event_desc view for more context about wait events. {{<issue 26571>}}
* Reduces master load by allowing auth backends to utilize the TServer cache during authorization checks. {{<issue 28144>}}
* Includes transaction isolation level in serialization error messages. {{<issue 28114>}}
* Simplifies query handling via shared exchange by substituting `callback` in `PgClientData` with `std::promise`, saving memory allocation. {{<issue 28205>}}
* Set YSQL configuration parameter `yb_read_after_commit_visibility` to `relaxed` to avoid `restart read required` errors during yb_index_check. {{<issue 27288>}}
* Enables bounded staleness for PostgreSQL authentication backend cache using `pg_cache_response_trust_auth_lifetime_limit_ms`. {{<issue 28261>}}
* Reduces master RPCs for PG auth backends by using TServer cache. {{<issue 28144>}}
* Allows dynamic updates to `ysql_hba_conf_csv` without server restarts. {{<issue 28361>}}
* Reduces chances of multiple notifications to listeners when opening multiple tables concurrently by refining the `Waiter` helper class. {{<issue 28069>}}
* Adds functionality to the three extra columns in pg_stat_statements for tracking query retry counts. {{<issue 28446>}}
* Allows altering table constraints using the new `ALTER TABLE` syntax. {{<issue 3945>}}
* Reduces memory usage by limiting the collection of intents in PgFKReferenceCache to the max batch size. {{<issue 28175>}}
* Adds new RPC stats to pg_stat_statements and introduces a new flag `yb_enable_pg_stat_statements_rpc_stats` for capturing RPC wait times. {{<issue 28474>}}
* Allows VERBOSE output in YSQL configuration parameter `yb_explain_hide_non_deterministic_fields` mode. {{<issue 28515>}}
* Shifts documentdb build logic to a dedicated Makefile for more reliable checks during building process. {{<issue 28559>}}
* Add a new counter to track new connections performing catalog preloads, aiding in debugging. {{<issue 28538>}}
* Introduces `DEBUG_ONLY` macros to keep debug injection code compact and improve readability. {{<issue 28554>}}
* Refactors YbcFlushDebugContext to reduce copying and fix pgindent errors by passing it as a pointer. {{<issue 28605>}}
* Updates copyright format to match the most current version, "...YugabyteDB, Inc.", across all files. {{<issue 28591>}}
* Refactor YbRunWithPrefetcher code to avoid errors when running yb_pgindent and improve code formatting. {{<issue 28706>}}
* Avoids unnecessary memory spikes and ensures freshest catalog data for relationship cache initialization. {{<issue 28144>}}
* Adds new YSQL configuration parameter `yb_enable_cbo=legacy_ignore_stats_bnl_mode`. {{<issue 28703>}}
* Adds support for `docdb_rows_returned` column in pg_stat_statements to count rows returned by the storage layer. {{<issue 28505>}}
* Expands EXPLAIN (ANALYZE, DIST) output to include transaction type, enabling a more formal way to deduce transaction type. {{<issue 14804>}}
* Allows pushdown of stable and parameterless SQL Value Functions as storage filters. {{<issue 28997>}}
* Increases timeout for TServer catalog version wait to 30 seconds, reducing connection time outs. {{<issue 28978>}}
* Enables Early Access to Query Diagnostics from 2025.2. {{<issue 28959>}}
* Allows preloading of RANGEMULTIRANGE to reduce cache misses when pg_range is preloaded. {{<issue 28991>}}
* Fixes `pg_total_relation_size` to include index sizes, ensuring accurate and consistent size reporting across YugabyteDB's distributed storage. {{<issue 23181>}}
* Adds a new `ysql_userid` column to Active Session History to track user activity and query performance. {{<issue 28565>}}
* Reduces peak memory usage in yb_active_session_history by filtering out rows more quickly. {{<issue 29089>}}
* Adds variable bloom filter support for queries with multiple keys, enhancing efficiency during scan operations. {{<issue 28439>}}
* Cleans up YbBindSearchArray, enhancing code efficiency and preparing for future bucketized index work. {{<issue 28834>}}
* Auto analyze flag now defaults based on user-set cost-based optimizer (CBO) flags, reducing bad combinations. {{<issue 28944>}}
* Adds a check to prevent autonomous DDL transactions during an active regular transaction block. {{<issue 29239>}}
* Simplifies type conversions in index backfill code to enhance consistency and prevent potential overflow. {{<issue 29038>}}
* Adds four transaction-specific wait events to Active Session History for better operation tracking. {{<issue 28792>}}
* Disables Memoize under BNL to reduce CPU overhead without sacrificing performance. {{<issue 25251>}}
* Reduces race conditions in DROP DATABASE operations by waiting for stats update in Connection Manager. {{<issue 27644>}}
* Adds a flag `ysql_enable_scram_channel_binding` to enable SCRAM with channel binding. {{<issue 28108>}}
* Reduces query execution latency by optimizing GUC handling in Connection Manager. {{<issue 20939>}}
* Introduces a flag to enable or disable the import of stats during `pg_upgrade`, reducing memory usage and enhancing performance. {{<issue 26240>}}
* Adds a flag to simulate DDL operations during YSQL major upgrade. {{<issue 27185>}}
* Added a built-in utility, `yb_index_check()` that helps detect and diagnose index inconsistencies in your database to ensure reliable query results.

#### YCQL

* Removes unused code that allows changing the table namespace, simplifying the source code. {{<issue 27315>}}

#### DocDB

* Tracks ByteBuffer memory usage with `MemTracker`. {{<issue 26875>}}
* Adds data block consistency check to `sst_dump` tool. {{<issue 27233>}}
* Adds flag to allow tablet writes after a compaction failure. {{<issue 27269>}}
* Adds `remove_corrupt_data_blocks_unsafe` flag for `yb-ts-cli compact_tablet` command. {{<issue 27381>}}
* Ensures only voter peers are considered for leadership during a leader stepdown. {{<issue 27568>}}
* Removes outdated fields from RaftGroupReplicaSuperBlockPB to avoid confusion, ensuring safe upgrade and rollback. {{<issue 25582>}}
* Fixes overflow in `FormatBytesAsStr` to prevent large memory allocations. {{<issue 27924>}}
* Adjusts the `wal_size` metric to include the size of the current active, writable segment, ensuring accurate reflection of on-disk size. {{<issue 15274>}}
* Changes default value of `ysql_num_tablets` to 1 for initial number of tablets in hash partitioned tables. {{<issue 28060>}}
* Adds logging to detect and inform if scheduled tasks in the reactor run slower than expected. {{<issue 24801>}}
* Optimizes index scans by adaptively deciding to use `next` or `re-seek`, reducing query latency. {{<issue 28616>}}
* Reduces load balancer's hold on `CatalogManager::mutex_` to prevent potential master leader unavailability. {{<issue 29183>}}
* Prevents data loss during early compaction of replicated colocated tables. {{<issue 25926>}}
* Introduces asynchronous lock functionality in ObjectLockManager to avoid holding up RPC threads during conflicts, and includes deadlock detection. {{<issue 24669>}}
* Allows DDL release operations to withstand master restarts or failovers and ensures successful execution of release requests even when network issues occur. {{<issue 25680>}},{{<issue 26498>}}
* Enhances table locking by propagating lock calls to the TServer and expanding lock acquisition to all objects. {{<issue 26803>}}
* Displays RBS progress details on the master's Cluster Balancer UI page. {{<issue 26853>}}
* Introduces a debug tool to release global/exclusive table locks via yb-admin command, assisting in managing unexpected lock leaks. {{<issue 26526>}}
* Support now correctly captures table IDs and colocation IDs during DDL replication, ensuring accurate replication for unique constraints, partitioned indexes, and table rewrites. {{<issue 27081>}},{{<issue 26453>}}
* Allows outstanding transactions to continue during DDL operations when table locks are enabled. {{<issue 26869>}}
* Allows tracking of table-level lock states across all nodes, with accurate reporting in the pg_locks view. {{<issue 24670>}}
* Triggers automatic background compaction for vector index based on size amplification, using the `vector_index_max_size_amplification_percent` flag. {{<issue 27089>}}
* Sets `xcluster_backfill_hybrid_time` for all indexes to ensure no missed rows during backfill after data insert. {{<issue 27445>}}
* Upgrades OpenSSL to version 3.0.16 and enhances aarch64 support. {{<issue 27491>}}
* Disables statement retries when object locking feature is on, due to lack of re-acquisition of object locks during retries in extended query mode. {{<issue 27520>}}
* Ensures consistent xCluster safe time during failover, including executed DDLs, by pausing all pollers and updating the safe time accordingly. Avoids issues during normal scans and inconsistencies during failover. {{<issue 23957>}}
* Disables transparent statement retries in all paths when the object locking feature is activated. {{<issue 27520>}}
* Switches YSQL object lock calls to use shared memory, reducing overhead to 5-15%. {{<issue 27510>}}
* Allows seamless failover to the consumer cluster by using a variant of PITR that only restores data tablets, not pg catalog tables or yb master tablet. {{<issue 27595>}}
* Allows transaction status tablets to be grouped by tablespace for future categorization of transactions. {{<issue 28269>}}
* Ensures reliable xCluster history cutoff by backfilling `namespace_id` when necessary. {{<issue 28124>}}
* Adds support for tablespace-local localities, allowing transactions to use status tablets corresponding to a specific tablespace, improving data replication handling for geographically close regions. {{<issue 28273>}}
* Limits TServer crashes by capping log reader memory usage in xCluster replication. {{<issue 28124>}},{{<issue 22992>}}
* Enables safe activation and deactivation of the skip prefix locks feature and allows for safe upgrades. {{<issue 28823>}}
* Allows control over the number of tasks running in parallel via the introduction of PriorityThreadPoolToken. {{<issue 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. {{<issue 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. {{<issue 29317>}}
* Adjust leader lease to be larger than the heartbeat interval to avoid unnecessary retries and latency. {{<issue 1348>}}
* Optimizes colocated table read performance by caching tombstone check results, making bulk updates 6x faster. {{<issue 17843>}}
* Adds a metric to monitor the wait time of write and remove threads in joining the write batch group. {{<issue 26548>}}
* Adds new wait events for ASH instrumentation to identify bottlenecks during bootstrap. {{<issue 23198>}}
* Integrates RWQueue for enhanced concurrent queue performance and introduces `TrivialSpinlock` for improved spinlock functionality. {{<issue 26818>}}
* Enables `ysql_yb_enable_advisory_locks` by default and makes it a runtime flag. {{<issue 25293>}}
* Enables cloning of vector indexes in databases. {{<issue 26872>}}
* Allow tablet server to wait for YSQL lease before starting postmaster, improving connection handling. {{<issue 25880>}}
* Adds paginated querying for vector index operations. {{<issue 26884>}}
* Allows setting `ybhnsw.ef_search` to customize search expansion factor. {{<issue 26883>}}
* Allows partial processing of DDLs during failover by incrementing xCluster safe time after each DDL replication. {{<issue 25999>}}
* Removes libcds dependency, simplifying threading model and reducing runtime costs. {{<issue 26926>}}
* Enforces shared memory access restrictions at compile time. {{<issue 26924>}}
* Cancels vector index compaction during VectorLSM shutdown. {{<issue 26489>}}
* Enables saving of in-memory HNSW graph data to file system, enhancing usability and efficiency. {{<issue 26937>}}
* Enables consistent backup and restore for vector indexes. {{<issue 26965>}}
* Replaces most instances of `LOG(ERROR)` with either `LOG(WARNING)` or `LOG(DFATAL)` to align with coding style. {{<issue 27042>}}
* Enables priority thread pool usage for vector index compactions. {{<issue 26971>}}
* Adds detailed logging for failed DDL executions in xCluster replication. {{<issue 23702>}}
* Enables faster table lock acquisition through shared memory in YugabyteDB. {{<issue 25518>}}
* Stores object lock requests in shared memory to enhance crash safety. {{<issue 25987>}}
* Enhances lock management by disabling fastpath during lock conflicts. {{<issue 27813>}}
* Adds ASH instrumentation to snapshots for better tracking of backup and snapshot bottlenecks. {{<issue 23200>}}
* Adds base structure for background compaction in vector index. {{<issue 27227>}}
* Allows async functionality in TSLocalLockManager lock calls for enhanced database operations. {{<issue 27238>}}
* Defers processing of records with commit times exceeding the apply safe time to the next batch. {{<issue 27318>}}
* Corrects spelling error in `DEPRICATED_pgschema_name` to `Deprecated_pgschema_name` safely. {{<issue 27332>}}
* Reduces wait time for deadlocked transactions to abort by timing out waiters after `FLAGS_refresh_waiter_timeout_ms`. {{<issue 26903>}}
* Adds a flag to control the use of YbHnsw for vector indexing, requiring a drop and recreate for changes. {{<issue 27417>}}
* Allows detection of deadlocks involving fast path transactions when object locking is enabled. {{<issue 24630>}}
* Refactors shared memory management for better session control between TServer and pggate. {{<issue 27484>}}
* Enables chunks picking for background compaction based on size ratio. {{<issue 27377>}}
* Enables conditional tracing of ASH events to conserve memory. {{<issue 27455>}}
* Allows exporting snapshots with tables undergoing DDL operations. {{<issue 27425>}}
* Reverts commit disabling outstanding transactions during DDL until table locks feature is fully enabled. {{<issue 27472>}}
* Changes the default value for the `ysql_allow_duplicating_repeatable_read_queries` flag to true. {{<issue 27652>}}
* Increases limits for concurrent replica removals and over-replicated tablets to speed up cluster operations. {{<issue 27488>}}
* Updates the Tablet Server UI page for better organization and readability. {{<issue 27821>}}
* Removes `-ftime-trace` from Clang builds to enhance compatibility with ccache. {{<issue 27499>}}
* Adds memory tracking to vector indexes for better resource management. {{<issue 27548>}}
* Enhances check_data_blocks command output and logging to include data block number, index key, and distinguish corruption. {{<issue 27594>}}
* Automatically adds ASH metadata to selected RPCs, maintaining a list of exceptions where metadata shouldn't be added. {{<issue 26305>}}
* Speeds up cluster load balancing by considering tablet sizes for parallelism. {{<issue 17561>}}
* Handles out-of-order messages to prevent lock leakage by cleaning up after specified `ignore_after_hybrid_time`. {{<issue 27705>}},{{<issue 26393>}}
* Reduces risks by not updating `master_ysql_operation_lease_ttl_ms` flag unnecessarily. {{<issue 27681>}}
* Replaces `yb::ThreadPool` with `YBThreadPool` to enhance concurrent access and reduce latency by 5-8%. {{<issue 4624>}}
* Converts `xcluster_enable_ddl_replication` from a preview flag to an `kExternal` flag. {{<issue 27831>}}
* Enables `TRUNCATE TABLE` support in xCluster automatic mode with new flags and triggers. {{<issue 23958>}}
* Streamlines operations by removing unnecessary flag checks on the master for table locks. {{<issue 27521>}}
* Ensures xCluster DDL replication tables are included in backups. {{<issue 27959>}}
* Reduces latency of YSQL write statements and lock-grabbing reads in distributed transactions by enabling async writes. {{<issue 28382>}}
* Reduces unnecessary transaction conflict errors by auto-retrying status requests. {{<issue 27973>}}
* Removes unnecessary log line that occurs whenever a tablet is deleted. {{<issue 27980>}}
* Enhances on-disk size metrics to include snapshots, improving cluster balancer accuracy. {{<issue 28010>}}
* Adds metrics for tracking fastpath object lock acquires. {{<issue 27344>}}
* Turn on `enable_object_lock_fastpath` by default in Linux release builds, not affecting debug builds. {{<issue 28065>}}
* Allows table servers to attempt to release their YSQL lease during shutdown, enabling other servers to process DDLs and DMLs without delay. {{<issue 27832>}}
* Enables core dumps on FATAL errors with new flag `disable_core_dumps_on_fatal`. {{<issue 28007>}}
* Enables `enable_object_lock_fastpath` and `pg_client_use_shared_memory` in all Linux builds. {{<issue 28165>}}
* Adds hnswlib as an additional backend for hnsw vector index, enhancing search performance options. {{<issue 28278>}}
* Boosts search performance by skipping deletion checks on tables that only perform inserts. {{<issue 28229>}}
* Adds metadata and wait events to xCluster poller, enhancing visibility into bottlenecks. {{<issue 23202>}}
* Enables dependency on the transactional DDL flag for the object locking feature to prevent self-deadlocks. {{<issue 28212>}}
* Enables automatic selection of optimal distance function based on user's CPU capabilities, enhancing USearch's efficiency. {{<issue 28329>}}
* Enhances reliability by retrying exclusive lock requests during YSQL lease membership changes. {{<issue 27192>}},{{<issue 28198>}}
* Allows execution of ANALYZE command on both primary and standby clusters independently. {{<issue 28328>}}
* Allows checking multiple replication infos and tablet numbers for creating multiple tables simultaneously. {{<issue 28331>}}
* Refactors boost::optional to std::optional for consistency and removes unused files, enhancing error handling in arclint. {{<issue 28353>}}
* Enables AVX implementation in HNSWlib for better vector index performance using advanced CPU capabilities. {{<issue 28364>}}
* Optimizes asan/tsan builds to use -O3 level and allows optional debug checks with new asan_release/tsan_release builds. {{<issue 28553>}}
* Allows parallel merging of vector index chunks using the insert priority thread pool to reduce compaction time. {{<issue 28397>}}
* Raises the minimum GCC version to GCC 12, compatible with all supported build platforms. {{<issue 28540>}}
* Implements custom DDL-based timeouts for DropTable and DropDatabase operations. {{<issue 28394>}}
* Splits client's FlushTables into two methods, CompactTables and FlushTables, for enhanced extensibility. {{<issue 28467>}}
* Allow vector indexes compaction with compact_table by using the ADD_VECTOR_INDEXES parameter. {{<issue 27090>}}
* Simplifies DocDB iteration by removing unnecessary split between `IntentAwareIteratorIf` and `DocRowwiseIteratorBase` for new feature implementation. {{<issue 28475>}}
* Allows toggling the colocated table tombstone cache optimization using the flag `FLAGS_enable_colocated_table_tombstone_cache`. {{<issue 28470>}}
* Adds CRC checksum to RPC responses to prevent data corruption. {{<issue 28665>}}
* Optimizes row scanning in `HybridScanChoices` by introducing `ScanTarget` class to eliminate the need for repeated key decoding. {{<issue 28608>}}
* Allows updating `remote_bootstrap_rate_limit_bytes_per_sec` flag in real-time for each file or session. {{<issue 28600>}}
* Adds vector index reverse mapping decoding support to the sst-dump tool. {{<issue 28653>}}
* Switch to clang built with PGO in llvm-installer version for faster C/C++ compile and link times, reducing overall build times by 9-11%. {{<issue 28692>}}
* Updates compaction logic to correctly handle and clean tombstoned reverse-mapping vector index keys. {{<issue 27095>}}
* Adds server-level metrics to track the number of transactions started as global, region-local, and tablespace-local. {{<issue 28921>}}
* Allows tablespace-local transactions to write to tables in any contained tablespace without global promotion. {{<issue 28272>}}
* Displays xCluster safe time on yb-master UI page for enhanced debugging. {{<issue 28910>}}
* Introduces two YSQL configuration parameters to control use of tablespace-local locality, offering workaround for suboptimal performance in certain cases. {{<issue 28604>}}
* Calculates region locality on the TServer side for improved region local transactions handling. {{<issue 28828>}}
* Allows reads and writes to proceed without waiting for a full quorum acknowledgment, reducing YSQL write and read latencies. {{<issue 28320>}}
* Introduces disk write statistics for vector compaction, which offers insights into IO across vector index libraries. {{<issue 28842>}}
* Configure RocksDB keys delta-encoding separately for YCQL and YSQL for faster read path and space efficiency. {{<issue 28862>}}
* Enables skip prefix locks by default for new installation clusters. {{<issue 28894>}}
* Enables vector index background compactions by default to control parallel execution and limit compactions per TServer. {{<issue 29212>}}
* Refactors code to address contention issues on `CatalogManager::mutex_` in larger clusters, enhancing stability and performance. {{<issue 29186>}}
* Enables dynamic sorting by columns in heap snapshot UI and reduces risk of database overload. {{<issue 26693>}}
* Adds BSON and BID libraries to cmake, making the DocumentDB extension part of the build process, except for aarch64 due to upstream restrictions. {{<issue 26695>}}
* Adds DocumentDB extension to non-aarch64/arm64 builds, with new flag `ysql_enable_documentdb` for protection. {{<issue 26947>}}
* Supports major YSQL upgrades with xCluster by relaxing checks, allowing soft delete and recreate of databases. {{<issue 27532>}}
* Adds a yb-admin command to check if nodes can be taken down without losing quorum. {{<issue 28020>}}
* Standardizes long-form flag names in documents to use double dashes for clarity. {{<issue 28240>}}
* Adds periodic cleanup for DDL replication tables to prevent unbounded growth. {{<issue 19193>}}
* Simplifies ObjectLockManagerImpl code for easier maintenance and future updates. {{<issue 26931>}}
* Ensures AuthOK messages are sent immediately to clients, simplifying future changes. {{<issue 27825>}}
* Allows users to specify SSL ciphers and minimum TLS version on webserver ports. {{<issue 27375>}}
* Renames "Network" wait_event_type to "RPCWait" for clarity. {{<issue 26986>}}

#### CDC

* Eliminates usage of `pgschema_name` in `CreateTable` pipeline and introduces a new field `internal_table_type` to replace direct reading of PG Schema Name during table creation. {{<issue 12770>}}
* Adds a `yb_restart_time` column to `pg_replication_slots`. {{<issue 27764>}}
* Prevents data loss during restarts by not sending checkpoints if tablet safe time exceeds slot restart time. {{<issue 28014>}}
* Adds instrumentation for RPCs sent to CDC Service, and new wait events enabling detection of bottlenecks in CDC by ASH. {{<issue 23199>}}
* Displays replica identity map in `list_change_data_streams` output. {{<issue 28646>}}
* Enhances error propagation from `GetChanges` to clients for more transparency. {{<issue 28033>}}
* Updates descriptions for CDC retention flags and their dependencies, and clarifies validator error messages. {{<issue 28019>}}

#### yugabyted

* Activates read committed isolation and cost-based optimization by default for newly started clusters. {{<issue 29169>}}
* Adds an environment variable to show accurate CPU details and corrects VCPU display in yugabyted-ui in Kubernetes deployments. {{<issue 26624>}}
* Upgrades yugabyted-ui TypeScript version to 5.0.4 for better package compatibility. {{<issue 26958>}}
* Enables `yb_extension` role to create access methods during extension setup. {{<issue 26857>}}
* Aligns the styling of assessment voyager page with the provided design without disrupting schema migration page operation. {{<issue 28214>}}
* Updates the voyager analysis page in yugabyted according to the design provided. {{<issue 28220>}}

### Bug fixes

#### YSQL

* Allows preservation of read time history to prevent "Bad read time serial" error during COPY operations in middle-commit scenarios. {{<issue 26365>}}
* Allows prompt response to PostgreSQL interrupts, enhancing handling of statement timeouts and cancel requests. {{<issue 26284>}}
* Exempts walsender processes managed by the connection manager from YSQL backend checks. {{<issue 27072>}}
* Allows setting YSQL configuration parameters to a whitespace empty value without causing error. {{<issue 27106>}}
* Reverts a previous change that caused performance issues, ensuring timely execution of statements by honoring the YSQL configuration parameter `statement_timeout` during index scans with specific predicates. {{<issue 26284>}}
* Fixes errors and crashes when creating temporary tables with `ON COMMIT DROP`. {{<issue 27339>}}
* Resolves GCC 13 release build failures on Linux. {{<issue 27916>}}
* Allows sharing of perform operation serial number counter among multiple PostgreSQL processes to ensure unique serial numbers and better operation execution. {{<issue 23648>}}
* Allows users to preload `pg_enum` in `ysql_catalog_preload_additional_table_list`. {{<issue 28757>}}
* Prevents YSQL major upgrade failure caused by inconsistent namespace mapping during a failed upgrade attempt. {{<issue 28815>}}
* Allows yb-admin ysql_catalog_version command to return per-DB Catalog Version value for a provided database. {{<issue 28690>}}
* Adds missing primary keys and unique constraints to system catalogs, enabling them during initdb and YSQL upgrade. {{<issue 27261>}}
* Disables neg hit optimization for inherited cache when minimal preload is on. {{<issue 27543>}}
* Enhances upgrades for indexes with hash column groups to correctly handle aliases and metadata. {{<issue 27629>}}
* Allows group and others read permission on initdb log files by hardcoding the permission. {{<issue 28435>}}
* Ensures joins are only pruned when a Leading hint exists, avoiding errors. {{<issue 26670>}}
* Allows on-demand reading from non-prefetched tables by downgrading log level from `DFATAL` to `WARNING`, eliminating `Snapshot too old` and cache inconsistency issues. {{<issue 26515>}}
* Allows the use of PostgreSQL's snapshot management for foreign key triggers in YSQL, eliminating potential foreign key violations and enhancing data integrity. {{<issue 26163>}}
* Ensures `TimeZone` is not lowercased in connection manager for correct pgJDBC interpretation. {{<issue 28537>}}
* Keeps historical query diagnostics data persistent, even after a server restart or crash. {{<issue 25471>}}
* Allows placement of table replicas in any specified region or zone using `*` wildcard. {{<issue 26671>}}
* Reduces sequence-related errors when using `ysql_conn_mgr_sequence_support_mode=pooled_with_currval_lastval`. {{<issue 27024>}}
* Corrects issues with foreign keys referencing partitioned tables, preventing `TupleDesc reference leak` warnings and crashes during insert queries. {{<issue 26772>}}
* Corrects a queue ordering logic by using `std::lower_bound` to prevent TServer crashes. {{<issue 27170>}}
* Preserves column order during backup restore of inherited tables, matching DocDB and PG orders. {{<issue 27324>}}
* Fixes `ANALYZE` failures on wide tables by adjusting fetch size limits. {{<issue 27202>}}
* Ensures auto analyze runs after table rewrites like TRUNCATE. {{<issue 26109>}}
* Allows dumping of profiles and role mappings in `ysql_dumpall`. {{<issue 25731>}}
* Enhances session stickiness when acquiring session-scoped advisory locks. {{<issue 27249>}}
* Fixes DROP CASCADE to remove generated columns from DocDB. {{<issue 27604>}}
* Ensures consistency in secondary index scans during concurrent DELETE_INSERT operations. {{<issue 17159>}}
* Allows flushing or dropping of buffered operations before executing commands that affect the session state. {{<issue 27673>}}
* Resets user ID and security context between ANALYZE retries for stability. {{<issue 27188>}}
* Ensures DDL statements initiate DocDB transactions correctly to prevent errors. {{<issue 27859>}}
* Disables automatic retries for `COPY FROM/TO` commands. {{<issue 28093>}}
* Disables writes to role profile tables during YSQL upgrades to prevent errors. {{<issue 28016>}}
* Enables accurate tablespace dependency tracking for tables moved via `ALTER TABLE SET TABLESPACE`. {{<issue 26995>}}
* Avoids segmentation faults in ASH queries by initializing wait states to `kIdle` instead of `kUnused`. {{<issue 28303>}}
* 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`. {{<issue 28955>}}
* Supports multiple analyze commits and concurrent DDL, ensuring low priority lock on pg_yb_catalog_version is retaken during subsequent transactions. {{<issue 28731>}}
* Prevents PostgreSQL crash by avoiding invalidation messages during catalog refresh when prefetcher starts. {{<issue 28490>}}
* Forces loading of index expressions during index creation to prevent missed updates and potential inconsistencies. {{<issue 28267>}}
* Fixes the issue of transaction self-abort with rollback to savepoint, allowing users to rollback DDL operations without facing transaction expired/conflict error. {{<issue 28956>}}
* Disables query layer retry of ANALYZE command to prevent potential crashes caused by dirty states. {{<issue 29025>}}
* Eliminates an issue causing stuck rollback operations to sub-transactions with alter table. {{<issue 28957>}}
* Automatically sets default values for dependent flags when the YSQL Cost-Based Optimizer (CBO) is enabled or disabled. {{<issue 29081>}}
* Ensures successful backup restore of colocated databases with unique constraints by correctly preserving implicit tablegroup. {{<issue 28781>}}
* Disallows disabling DDL atomicity with YSQL configuration parameters if transactional DDL is enabled, preventing potential issues. {{<issue 29358>}},{{<issue 28284>}}
* Adds multi-snapshot execution mode to `yb_index_check` operation, reducing risk of `Snapshot too old` error on larger indexes. {{<issue 26283>}}
* Allows large values to be inserted into temporary tables by enabling toast tables for temporary relations. {{<issue 26007>}}
* Prevents errors by detoasting values before insertion into DocDB tables. {{<issue 26561>}}
* Enhances fast-path transaction accuracy by adjusting read time settings. {{<issue 26204>}}
* Re-enables password redaction for specific SQL statements in YugabyteDB. {{<issue 22421>}}
* Restores the call to `ScheduleCheckObjectIdAllocators` inadvertently removed. {{<issue 26902>}}
* Fixes a use-after-free bug in ysql_dump by copying tablegroup_name. {{<issue 26547>}}
* Allows `yb_binary_restore` to be set by `ybdbadmin` for vector extension creation. {{<issue 26941>}}
* Enables `postgres_fdw` to use `ybctid` for identifying tuples, ensuring compatibility and functionality. {{<issue 11419>}}
* Ensures `ybctid` is correctly populated in RETURNING clauses for DML queries. {{<issue 26951>}}
* Ensures auto analyze service no longer persistently analyzes deleted tables that met analyze threshold before deletion. {{<issue 27033>}}
* Allows backfill reads to succeed by ignoring the isolation level when the default_transaction_isolation option is set to SERIALIZABLE on the cluster level. {{<issue 26974>}}
* Ensures YSQL statistics tables are saved and persist after a database restart. {{<issue 26758>}}
* Enables inheritance support by default, fixing issues with dropping constraints on inheritance parents. {{<issue 26216>}},{{<issue 5956>}}
* Adds missing migration script for `pg_hint_plan` extension update. {{<issue 27025>}}
* Ensures accurate reset of stats before every `EXPLAIN (ANALYZE)` query. {{<issue 27093>}}
* Ensures metadata consistency in upgraded indexes with renamed columns during YSQL major upgrades. {{<issue 26928>}}
* Allows index column names to be emitted as aliases during a YSQL major version upgrade when the flag `yb_format_funcs_include_yb_metadata` is set to true. {{<issue 26928>}}
* Increases the default `ysql_output_buffer_size` to 1MiB to enhance query retries and reduce errors. {{<issue 22245>}}
* Fixes a bug to prevent NULL insertion in `pg_yb_catalog_version`. {{<issue 27103>}}
* Adds COMMIT as a DDL in YSQL upgrade scripts to handle cache invalidation correctly. {{<issue 27148>}}
* Fixed the issue causing rewrites on empty temporary tables to fail, allowing successful alteration of temp table columns. {{<issue 26367>}}
* Adjusts the unique_key_recheck to fetch ybctid from the correct slot, even though deferrable unique constraints aren't supported yet. {{<issue 27163>}}
* Ensures `CREATE FUNCTION` also updates the catalog version. {{<issue 27166>}}
* Fixes secondary index scan cost estimation on colocated tables. {{<issue 27214>}}
* Supports accurate cost estimates for hypothetical indexes in both old and new models. {{<issue 22472>}},{{<issue 22473>}}
* Restores single-RPC optimization for certain index scans. {{<issue 27294>}}
* Fixes the assertion failure for `ALTER DATABASE OWNER` when using `SELECT FOR UPDATE`. {{<issue 27280>}}
* Enables successful execution of comma-separated ALTER commands, even when one requires DocDB schema changes and the other doesn't. {{<issue 27263>}}
* Fixes double output issue during a schema version mismatch retry by resetting the buffer position. {{<issue 23825>}}
* Fixes crashes when locking rows in temporary tables by setting the correct transaction state. {{<issue 27149>}}
* Ensures consistent query IDs for plan hints across settings and uses. {{<issue 26621>}}
* Removes duplicate YSQL configuration parameter entry. {{<issue 27427>}}
* Prevents ASAN failures during certain SQL operations. {{<issue 27447>}}
* Converts process-local variables to thread-local ones in lc_collate_is_c, eliminating potential data races. {{<issue 27500>}}
* Removes deprecated `masters` argument from `ysql_dump`/`ysql_dumpall` tools to reduce future merge conflicts. {{<issue 26915>}}
* Fixes TServer crashes during concurrent metadata changes and tablet destruction and a segfault when rewriting tables with vector indexes. {{<issue 26879>}}
* Fixes a memory leak in `yb_cancel_transaction` by freeing YbcStatus. {{<issue 27554>}}
* Prevents assertion failure by checking and skipping the sending of zero requests in PgGate's parallel requests. {{<issue 27535>}}
* Assigns accurate query IDs to RPCs executed outside of executor hooks. {{<issue 24693>}}
* Fixes a compilation issue by converting an assert to an error. {{<issue 27338>}}
* Prevent server crashes caused by large regular expressions with a new flag `yb_max_recursion_depth`. {{<issue 27009>}}
* Corrects EXPLAIN output estimates for Bitmap Index Scans, enhancing accuracy in performance analysis. {{<issue 27602>}}
* Ensures unique event codes in `yb_wait_event_desc` to improve data analysis accuracy. {{<issue 27260>}}
* Ensures accurate EXPLAIN output for forward scans with aggregate pushdown. {{<issue 27642>}}
* Fixes DROP COLUMN handling for tables with child partitions requiring rewrite. {{<issue 27636>}}
* Calculates scan bounds during PgDocReadOp initialization, stores them with the request, and eliminates unnecessary recalculations and requests to partitions without matches, thus saving resources. {{<issue 27695>}}
* Enables TOAST table creation for temporary tables in `REFRESH MATERIALIZED VIEW CONCURRENTLY`. {{<issue 26007>}}
* Disables `yb_force_early_ddl_serialization` by default to avoid conflict errors. {{<issue 27761>}}
* Fixes stale reads in `pg_yb_invalidation_messages` to prevent full catalog refreshes. {{<issue 27776>}}
* Ensures PostgreSQL shuts down before deleting upgrade data to prevent crashes. {{<issue 27726>}}
* Reduces unnecessary full catalog cache refreshes in certain scenarios. {{<issue 27822>}}
* Corrects the NoYbBatchedNL hint behavior by properly configuring `yb_prefer_bnl` flag and defining clear semantics for NL and BNL hints. {{<issue 27728>}}
* Prevents server crashes when multiple backend processes terminate while one holds a spinlock. {{<issue 27874>}}
* Fixes crash by initializing CacheMemoryContext during backend startup. {{<issue 27864>}}
* Fixes crash when using planner hints with hypothetical indexes. {{<issue 27927>}}
* Ensures accurate catalog read counts for the first query in a session. {{<issue 28011>}}
* Prevents crashes on transaction rollback with `ALTER TABLE` when transactional DDL is enabled. {{<issue 28044>}},{{<issue 28040>}},{{<issue 28000>}}
* Separates commands in database upgrades to prevent read restart errors. {{<issue 26282>}}
* Adds pgaudit 1.7.1 to enhance audit accuracy and resolve specific bugs. {{<issue 28087>}}
* Displays the path of the initdb log file in stdout, aiding in debugging when global initdb fails. {{<issue 26316>}}
* Enables `dump_role_checks` flag for new role-related statements in `ysql_dump` and `ysql_dumpall`. {{<issue 27795>}}
* Enables `yb_db_admin` roles to set PL speculative execution parameters. {{<issue 28101>}}
* Allows metadata to pass with AcquireObjectLocks and ReleaseObjectLocks RPCs for better thread communication. {{<issue 28129>}}
* Ensures `yb_enable_cbo` correctly activates when legacy YSQL configuration parameters are ON. {{<issue 28156>}}
* Update prevents auto-analyze from interrupting DDL statements by adjusting lock priorities. {{<issue 28201>}}
* Reverts recent changes to handle postmaster PANIC, improving stability during error scenarios. {{<issue 27874>}}
* Ensures the correct renew strategy for `IsRenewRequired` works as expected. {{<issue 28226>}}
* Adds options to enable pre-2024.1 BNL cost behavior in non-CBO mode. {{<issue 28222>}}
* Enables `dump_role_checks` in `ysql_dumpall` for role-related statements after creating profiles. {{<issue 28235>}}
* Ensures consistent row filtering and paging in `PgsqlVectorFilter`. {{<issue 28411>}}
* Fixes the issue where database fetch attempts could enter an endless loop, improving scan operations. {{<issue 28462>}},{{<issue 28476>}}
* Reduces unnecessary catalog version increments for renames on temporary relations. {{<issue 28477>}}
* Fixes deletion of leftover invalidation messages when databases are dropped. {{<issue 28348>}}
* Adjusts CFLAGS to ignore pg_parquet build warning, resolving clean build failure on some MacOS builds. {{<issue 28494>}}
* Resets catalog read time after updating catalog version to prevent catalog inconsistency for concurrent DDL + DML under table locks. {{<issue 28493>}}
* Sets the `ybIsHinted` flag correctly for Projection paths to prevent cheaper paths from losing based on cost. {{<issue 28072>}}
* Enables transactional Data Definition Language (DDL) in the database, allowing DDL to run as part of the transaction block like Data Manipulation Language (DML), enhancing transaction consistency. {{<issue 28000>}}
* Prevents failure of ALTER TABLE operations on UNIQUE columns in colocated databases by excluding colocation ID emission. {{<issue 28177>}}
* Prevents a rare TServer crash by fixing a bug in `YbNeedTupleRangeCheck` and removing an unused variable from `YbIsTupleInRange`. {{<issue 28708>}}
* Deprecates the YSQL configuration parameter yb_make_next_ddl_statement_nonincrementing to enable incremental catalog cache refresh by default. {{<issue 28765>}}
* 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. {{<issue 28000>}}
* Reduces RPCs by using Index Only Scan for `INSERT ...ON CONFLICT ...DO NOTHING` statements. {{<issue 28324>}}
* Adds logic to accurately merge catalog modification aspects in nested DDLs when transactional DDL is enabled. {{<issue 28000>}},{{<issue 28791>}}
* Introduces a new flag `ysql_auth_method` to select the password authentication method for YSQL, ensuring backward compatibility and avoiding user lockouts during upgrades. {{<issue 28809>}}
* Fixes a regression bug that caused an OBJECT_NOT_FOUND error during an index alteration, ensuring smoother table modifications. {{<issue 28849>}}
* Restores distinct error messages for `kAbort` and `kConflict` errors for clearer troubleshooting. {{<issue 28157>}}
* Global DDL operations won't be aborted by concurrent (auto)ANALYZE processes in separate databases. {{<issue 28877>}}
* Enables execution of DELETE and (re-)INSERT operations in a single flush for indexed JSONB columns, making updates less expensive. {{<issue 27948>}}
* Resets transaction read point for DML statements following a DDL execution in transactional DDL mode. {{<issue 28871>}}
* Fixes an error where a join condition was incorrectly pushed down in a batched nested loop, preventing crashes during planning. {{<issue 28112>}}
* Displays accurate Storage Flush Requests and Execution Time for non-buffered write operations in the EXPLAIN ANALYZE output. {{<issue 26963>}}
* Prevents dangling pointer issue in YbcFlushDebugContext by properly storing temporary strings. {{<issue 28913>}}
* Adds a preflight check to fail upgrades if user-defined roles with the `yb_` prefix exist, except `yb_superuser`. {{<issue 28977>}}
* Prevents regular DDL within a transaction block from being aborted by auto analyze. {{<issue 28926>}}
* Enhances error message clarity when altering the primary key index owner. {{<issue 29001>}}
* Fixes error in `REINDEX INDEX` statement execution on partitioned tables with transactional DDL enabled. {{<issue 29058>}}
* Corrects index-only scans in unbatched INSERT...ON CONFLICT...DO NOTHING queries for multi-column indexes. {{<issue 29109>}}
* Resolves a bug that reset the query id of the walsender process to 7 from 11. {{<issue 29147>}}
* Increases default values for parallel_setup/tuple_cost to better balance YB scan node and PG node costs. {{<issue 28939>}}
* Refactors YbBindSearchArray's handling to eliminate potential bugs related to mutating is_column_bound and setting ybScan->all_ordinary_keys_bound, improving result accuracy. {{<issue 29042>}}
* Prevents crashes during scalar array operations with arrays of dimension greater than two. {{<issue 29188>}}
* Adds a backend type and libpq option to prevent analyze executions from hanging and ensure smooth CREATE INDEX operations. {{<issue 29115>}}
* Renames various terms for rows read during backfill to `num_rows_read_from_table_for_backfill` for clarity, and directly increments the backfill job field, eliminating unnecessary atomic field accumulation. {{<issue 29052>}}
* Updates `reltuples` for the new index and base table when creating an index, reducing the need to run ANALYZE and providing more accurate index scan cost estimates. {{<issue 25394>}}
* 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. {{<issue 25394>}}
* Enhances log message clarity for AlterTable CHECK failures in PgSchemaChecker to aid debugging in PITR restore scenarios. {{<issue 28535>}}
* Reduces transient memory spikes during long running write queries by fixing intra-query memory leaks. {{<issue 29056>}},{{<issue 29057>}}
* Adjusts `reltuples` from 0 to -1 for dumps of older versions and enables `ysql_upgrade_import_stats` by default for improved database upgrade support. {{<issue 27057>}}
* Fixes crashes during `ysqlsh` connections with empty passwords under load. {{<issue 28174>}}
* Fixes connection manager crash during authentication due to double freeing of `msg` object. {{<issue 29195>}}
* Enables defining the maximum percentage of total YSQL connections for the connection manager. {{<issue 27701>}}
* Enhances visibility of `ALTER ROLE ... SET` configurations across multiple databases. {{<issue 27945>}}
* Fixes authentication errors during consecutive cluster connections. {{<issue 28149>}}
* Renames conflicting random number functions to prevent data race issues. {{<issue 28248>}}
* Avoids crashes and data races during shutdown by safely managing thread resources and memory clean-up. {{<issue 28415>}}
* Ensures accurate logging in PgAudit by using `strdup` to prevent garbage values. {{<issue 27108>}}
* Allows the Connection Manager to use the highest possible integer as a bit-mask value for custom YSQL configuration parameters' stickiness. {{<issue 27374>}}
* Prevents cascading timeouts during authentication lags in the connection manager. {{<issue 28080>}}
* Prevents crashes by ensuring thread-safe rule de-referencing during route cleanup. {{<issue 28102>}}
* Prevents crashes by holding route locks until the server closes in multi-route pooling. {{<issue 27894>}}
* Prevents indefinite stalls in multi-route pooling by ensuring signals are broadcast across all routes. {{<issue 28283>}}
* Enhances stability for YSQL connection manager during COPY operations from Go drivers. {{<issue 28148>}}

#### DocDB

* Ensures consistent data reads by setting propagated safe time only after successful operation replication. {{<issue 23696>}}
* Extends cloning timeout for multi-region deployments to prevent premature timeouts. {{<issue 26626>}}
* Ensures yb-admin commands respect user-specified timeouts for table flushes and compactions. {{<issue 19957>}}
* Prevents deadlocks and unresponsiveness during high-load schema changes by fetching table info asynchronously. {{<issue 26909>}}
* Reduces follower lag by ensuring consistent Raft config during tablet splits. {{<issue 26644>}}
* Allows successful response to duplicate write requests to prevent unnecessary query failures. {{<issue 7251>}}
* Ensures accurate replication for transactional writes on xCluster range partitioned tables. {{<issue 27380>}}
* Ensures post-split compactions complete even if background compactions are in progress. {{<issue 27426>}}
* Eliminates duplicate MasterService metrics for improved monitoring clarity. {{<issue 25277>}}
* Prevents incorrect query results due to invalid seek keys in internal iterator operations. {{<issue 27641>}}
* Enhances the stability of document reads by validating key prefixes before processing. {{<issue 27923>}}
* Prevents thread metric data from disappearing over time. {{<issue 27955>}}
* Fixes unnecessary error logs during transaction loading with CDC enabled. {{<issue 27986>}}
* Enhances Kubernetes compatibility by using RPC bind address as hostname in masters. {{<issue 28084>}}
* Ensures tablet server limits in the UI exclude dead or blacklisted nodes, providing accurate data metrics. {{<issue 27512>}}
* Prevents potential deadlocks in Raft operations by managing flusher state effectively. {{<issue 27531>}}
* Allows SST files with specific row or column TTLs to remain candidates for compaction. {{<issue 26014>}}
* Increases reliability of database cloning after a `DROP TABLE` operation. {{<issue 28285>}}
* Solves the reversed condition in the rpc_inbound_calls_failed metric, offering more metric information. {{<issue 28788>}}
* Ensures tablet split handling on the consumer side does not cause incorrect mappings due to race conditions. {{<issue 28750>}}
* Allows removal of associated intentsdb keys during tablet startup to prevent potential pileup and slower queries. {{<issue 21831>}}
* Changes prevent unnecessary node crashes due to network issues during remote bootstrapping process cleanup. {{<issue 28830>}}
* Prevents silent data loss by failing the clone when a table is altering instead of cloning without data. {{<issue 27621>}}
* Disables TryConsume usage by LogReader to prevent user operations from being incorrectly blocked due to a bug. {{<issue 29095>}}
* Handles thread creation failure properly and falls back to RPC mechanism when thread cannot start. {{<issue 28968>}}
* Allows transaction table deletion by updating transaction versions only on live tablet servers. {{<issue 29067>}}
* Adds extra logging to track data inconsistency when `durable_wal_write` is set to false. {{<issue 23453>}}
* Avoids TServer restarts and disruption to existing connections by enabling YSQL operation lease mechanism at TServer start. {{<issue 27343>}}
* Ensures better handling of schema versions during rapid DDL changes in xCluster replication. {{<issue 24990>}},{{<issue 27275>}}
* Allows namespace_id to be correctly copied in TableInfo constructors to prevent empty return values. {{<issue 28478>}}
* Prevents unbounded growth of the `recently_applied_map` by not adding read-only transactions, conserving memory. {{<issue 26666>}}
* Simplifies replication role management in xCluster by storing the role in the system catalog, enhancing the accuracy of DDL replication by updating the role with each DDL call. {{<issue 25853>}}
* Fixes handling of `db_max_flushing_bytes` to properly limit memory usage under high write loads. {{<issue 26916>}}
* Clears relevant object locks when a PostgreSQL session abruptly ends. {{<issue 26673>}}
* Fixes crashes when executing `SELECT * FROM pg_locks` during advisory lock waits. {{<issue 26972>}}
* Prevents data loss by ensuring databases are flushed before updating flush markers. {{<issue 26910>}}
* Stops sequences_data table bootstrapping during xCluster switchover to prevent sequence bumps loss. {{<issue 26957>}}
* Rolls back the DocDB column ID counter when a DDL fails in YSQL databases using automatic mode replication, preventing DocDB column ID divergence. {{<issue 25787>}}
* Fixes a bug that caused vector indexes to share a folder, preventing crashes. {{<issue 27049>}}
* Fixes HTTP 503 response formatting on Master API requests. {{<issue 26914>}}
* Ensures long-running reads access the correct schema version after updates and compactions. {{<issue 23427>}}
* Lets TServers include their lease epoch in YSQL lease refresh requests to ensure proper bootstrap and restart of PG sessions. {{<issue 27152>}}
* Changes the class of autoflag `enable_export_snapshot_using_relfilenode` from `kLocalVolatile` to `kExternal` to prevent restore failures during backups. {{<issue 27155>}}
* Ensures successful remote bootstrap by removing pre-existing directories. {{<issue 27123>}}
* Adds a new flag `xcluster_ddl_queue_statement_timeout_ms` to control DDL execution timeout from ddl_queue, with default set to no timeout. {{<issue 27066>}}
* Fixes crashes in handling session advisory lock statuses. {{<issue 27030>}}
* Adjusts `DocRowwiseIterator` to correctly include nulls for `NULLS FIRST` sorting. {{<issue 27031>}}
* Stops retrying failed batches when the session is closed. {{<issue 27171>}}
* Limits the number of entries per trace to prevent memory bloat during long running operations. {{<issue 27334>}}
* Fixes issue where TServers fail to establish lease with a new master-leader after network partition. {{<issue 27460>}},{{<issue 27479>}}
* Fixes compaction errors from schema version mismatches by storing missing-value info. {{<issue 27463>}}
* Prevents tasks from being scheduled on the threadpool after setting shutdown flags, avoiding unexpected termination. {{<issue 27557>}}
* Prevents segmentation faults by ensuring return after executing RPC callbacks with validation failure in TabletService's object lock/release functions. {{<issue 27561>}}
* Prevents reuse of `docdb` transactions post-abort to avoid state conflicts in locks. {{<issue 27559>}}
* Prevents TServer crashes during concurrent vector index and read requests. {{<issue 27699>}}
* Reduces memory usage by optimizing `pg_locks` with specific iterator settings and intent limits. {{<issue 27810>}}
* Ensures safety by updating TabletPeer::GetNamespaceId to use `shared_tablet_safe`. {{<issue 27632>}}
* Resolves deadlock during TSHeartbeat by adjusting lock scope. {{<issue 27773>}}
* Eliminates potential deadlocks in thread pool by fixing a race condition. {{<issue 27898>}}
* Ensures OID counters in cloned or restored databases avoid conflicts after table drops. {{<issue 27943>}}
* Stops re-creating the xCluster DDL replication extension on the target. {{<issue 27928>}}
* Ensures OID counters advance adequately to avoid future table creation collisions. {{<issue 27944>}}
* Resolves PITR restore deadlocks by fixing lock inversion issues. {{<issue 27792>}}
* Eliminates redundant `rocksdb_block_cache_bytes_read` metrics to reduce noise and overhead. {{<issue 27017>}}
* Enables re-acquisition of object locks during statement retries in extended query mode execution. {{<issue 24877>}}
* Ensures all fastpath object locks appear in `pg_locks` output. {{<issue 28163>}}
* Disables catalog version check for ReleaseObjectLocks API to prevent TServer crashes. {{<issue 28138>}}
* Increases YSQL DDL RPC timeout to 180s and introduces configurable `ysql_ddl_rpc_timeout_sec` flag. {{<issue 28168>}}
* Prevents potential crashes during tablet shutdown when vector index compaction is running. {{<issue 28511>}}
* Prevents fatal errors in xCluster by ensuring all schema versions are present during replication. {{<issue 28326>}}
* Reduces master Write-Ahead Log (WAL) data by excluding db_catalog invalidation messages from initial ReleaseObjectLockRequestPB persistence. {{<issue 28573>}}
* Fixes exclusive lock intents acquisition before shared memory setup. {{<issue 28595>}}
* Adds a session-level advisory lock for ddl_queue_handler to prevent multiple handlers running concurrently. {{<issue 27186>}}
* Allows Parallel Query feature to work correctly with object locking by limiting object lock and finish transaction calls to the leader worker. {{<issue 28878>}}
* 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. {{<issue 28875>}}
* Reduces pg_locks transient errors by verifying tablet leaders during lookup and increasing retry attempts. {{<issue 28180>}}
* Fixes a TServer crash issue during hybrid scans caused by incorrect read requests from PostgreSQL. {{<issue 29347>}}
* Fixes the issue of recording "query id 0" in Active Session History samples. {{<issue 26808>}}
* Improves error handling for shared memory operations in DocDB. {{<issue 26740>}}
* Removes 60-second timeout upper bound on admin RPCs and adds new `yb_client_admin_rpc_timeout_sec` flag. {{<issue 26722>}}
* Prevents deadlocks during background compaction and transaction loading. {{<issue 26880>}}
* Prevents `yb-admin` crashes by correctly handling argument count for `create_database_snapshot`. {{<issue 26899>}}
* Enables `yb-pbc-dump` to decrypt and process encrypted protobuf files using specified keys. {{<issue 26917>}}
* Prevents crashes in GCC fastdebug builds when vlogs are enabled by adjusting lambda storage in `ObjectLockManager`. {{<issue 26960>}}
* Prevents master process crashes by fixing an iteration modification issue in TriggerDdlVerificationIfNeeded. {{<issue 26967>}}
* Blocks nonconcurrent index creation on xCluster replicated tables. {{<issue 27006>}}
* Ensures `pg_locks` query reliability when a node is down by continuing to serve requests. {{<issue 27035>}}
* Eliminates the risk of deadlocks during table alterations and snapshot operations. {{<issue 26565>}}
* Adds a lock-free SemiFairQueue class to the rpc::ThreadPool to manage tasks execution order. {{<issue 27121>}}
* Enables efficient memory usage and fast data access through dynamic loading and unloading of data blocks in YbHnsw. {{<issue 27075>}}
* Adjusts primary key creation on collection tables for better distribution of records, fixes bug in `make_expanded_record_from_datum`, and switches `ysql_enable_documentdb` to a preview flag. {{<issue 27082>}},{{<issue 27058>}}
* Adjusts DDL replication tables to be non-colocated directly in the extension using SQL for better compatibility with PostgreSQL. {{<issue 27100>}}
* Ensures column ID continuity in backups by preserving `next_column_id`. {{<issue 27064>}}
* Enables YSQL transaction tracing with `pg_client_use_shared_memory` enabled. {{<issue 27392>}}
* Ensures no deadlock when threads wait on PgResponseCache for query results. {{<issue 27412>}}
* Prevents duplicate vector insertion after TServer restart during backfill. {{<issue 27457>}}
* Allows unlimited threads in the catalog manager async_task_pool to prevent xCluster failures. {{<issue 26617>}}
* Allows retrieval of table schema with vector column via java/yb-client by adding VECTOR type. {{<issue 26384>}}
* Ensures consistent backup by exporting only committed DocDB tables at snapshot hybrid time. {{<issue 27449>}},{{<issue 27590>}}
* Eliminates undefined behavior by correcting the use of moved variables in `pg_client_session.cc`. {{<issue 27707>}}
* Allows skipping object locking during `initdb` to prevent failures. {{<issue 27444>}}
* Adds a wait event for transactions with SERIALIZABLE READ ONLY DEFERRABLE. {{<issue 27836>}}
* Enhances metrics to better estimate cluster balancing times and validate the accuracy of the balancing algorithm. {{<issue 23908>}}
* Ensures TServer handles lock releases correctly after bootstrapping. {{<issue 27735>}}
* Prevents master crashes during index backfill by handling empty indexes correctly. {{<issue 27697>}}
* Fixes placement logic to support wildcards in cloud info for tablet selection. {{<issue 27285>}}
* Ensures xCluster metrics display correct table IDs and namespaces for better monitoring accuracy. {{<issue 27667>}}
* Restores deletion of table info objects to prevent memory overload. {{<issue 23721>}}
* Disables object locking when `ysql_enable_db_catalog_version_mode` is false. {{<issue 27872>}}
* Prevents deadlocks by setting status tablet ID for shared memory lock requests. {{<issue 27921>}}
* Eliminates DFATAL error for unregistered lock owners handling exclusive locks. {{<issue 27968>}}
* Fail restore for unmatched DocDB tables during import_snapshot phase. {{<issue 27820>}}
* Fixes a bug to ensure correct data storage in PostgreSQL table cache requests. {{<issue 28001>}}
* Disables unnecessary logging when `FLAGS_txn_slow_op_threshold_ms` is set to 0. {{<issue 27996>}}
* Object locks now respect `yb_locks_min_txn_age` and `yb_locks_max_transactions` settings. {{<issue 27851>}}
* Resolves transaction status resolution hang during shutdown by using a CoordinatorLock and initiating shutdown for `Rpcs` before resolver. {{<issue 28030>}}
* Ensures replication of transaction application status even when the last pending tablet is deleted. {{<issue 28059>}}
* Defers transaction priority assignment to the first read/write operation. {{<issue 28125>}}
* Ensures `TSLocalLockManager` is only created when both `enable_ysql` and `enable_object_locking_for_table_locks` are enabled. {{<issue 28126>}}
* Enables `ALTER DEFAULT PRIVILEGES` commands in xCluster's automatic mode. {{<issue 27051>}}
* Reduces noise in compiler output for x86 OS X builds by fixing regular expression errors. {{<issue 28292>}}
* Ensures master metadata snapshots are consistent with `snapshot_hybrid_time` for accurate backups. {{<issue 27575>}}
* Fixes issues with aborted transactions during promotions preventing stuck operations. {{<issue 27853>}}
* Ensures cloning databases functions correctly with table locks enabled. {{<issue 27800>}}
* Enables system tables to always fetch fresh tombstone time, preventing stale cache issues. {{<issue 28327>}}
* Prevents an infinite loop and memory overhead in RocksDBOptionsParser when reading OPTION files. {{<issue 28343>}}
* Stops xCluster polling when excessive DDL errors occur, preventing retries beyond limits. {{<issue 28363>}}
* Adds CRC checksum to RPC calls to detect data corruption. {{<issue 18675>}}
* Restores previous deadlock detection by retrying lock requests from the host TServer. {{<issue 28386>}}
* Enforces TLS v1.2 for secure webserver connections. {{<issue 28417>}}
* Reduces table tombstone check time significantly by adding an iterator upperbound, improving performance. {{<issue 28451>}}
* Preserves cluster balancer metrics correctly across all placements including read replicas. {{<issue 28366>}}
* Prevents table deletion during snapshot creation by implementing namespace anchoring. {{<issue 28290>}}
* Increases data metric's capacity to handle over 4 GB for balancing. {{<issue 28500>}}
* Resolves two compile errors in GCC 12 build by adjusting parameters to be compatible with GCC and suppressing warnings. {{<issue 28519>}}
* Displays "(unenforced)" in master UI under "Tablet peer limit" when tablet limit enforcement is off. {{<issue 28479>}}
* Fixes an issue where aborted transactions could get stuck with object locks. {{<issue 28520>}}
* Removes dangling references in certain code areas identified by the `-Wdangling-references` warning. {{<issue 28560>}}
* Eliminates an extra space before the period in the output of yb-admin flush_tablet/compact_table command. {{<issue 28572>}}
* Fixed a deadlock issue in the PG client service shutdown path, improving system stability. {{<issue 28597>}}
* Reduces chances of hitting `kDeadlock` for first statement in RC transactions and addresses rollback issue for session advisory lock requests. {{<issue 28593>}}
* Adds a memory tracker to monitor temporary memory used when reading WALs, preventing TServer crashes. {{<issue 28623>}}
* Removes a function call that caused tablet server shutdowns during RPC reception. {{<issue 28615>}}
* Adds time units to relevant Prometheus metric help descriptions for better understanding. {{<issue 28634>}}
* Adds a long operation tracker to CatalogManagerBgTasks::RunOnceAsLeader for easier debugging. {{<issue 28712>}}
* Adjusts active log segment size tracking for accurate `wal_size` metric when reusing existing segments. {{<issue 28720>}}
* Prevents yb-master crash by making MessageDifferencer thread-safe and limiting its use to debug builds. {{<issue 28729>}}
* Allows deletion of hidden tablets during point-in-time restores that are no longer in use. {{<issue 28704>}}
* Allows AutoAnalyze to work consistently, regardless of table level locks feature, by always acquiring the `acquire_for_update_lock` lock. {{<issue 28783>}}
* Adjusts advisory lock release timing to prevent handler blockages during shutdown in time-sensitive builds. {{<issue 28889>}}
* Redundant finish transaction calls no longer request a new transaction when releasing object locks if a DocDB transaction doesn't exist. {{<issue 28761>}}
* Allows table-level locks to respect the lock_timeout setting, returning an error if lock is not obtained in time. {{<issue 27677>}}
* Reduces master_rpc_timeout_ms to 1.5s to lessen outages by quickly detecting dead/unavailable master nodes. {{<issue 28924>}}
* Enables "SELECT FOR KEY SHARE" to avoid crashes during cluster restart by starting each run with a clean state. {{<issue 28881>}}
* Reduces `Unable to find schema name for YSQL table` errors and optimizes the retrieval of YSQL Table Oid. {{<issue 28793>}},{{<issue 27590>}}
* Eliminates shutdown deadlock in CQL service, enabling consistent and graceful server shutdown. {{<issue 28438>}}
* Modifies fast path transaction criteria to exclude object locking writes. {{<issue 28922>}}
* Enables transactions to start with the correct locality in `AcquireObjectLocks` RPC handler, reducing latency and eliminating extra global roundtrips for global transactions. Also passes `force_global_transaction` and tablespace OID for `AcquireObjectLocks` RPCs, allowing transactions to start under the appropriate locality. {{<issue 28317>}},{{<issue 28979>}}
* Adds object lock auto-flag checks to YbMaybeLockMasterCatalogVersion and AcceptInvalidationMessages for upgrade safety. {{<issue 29054>}}
* Ensures that failed ALTER TABLE statements roll back even in the event of a master crash. {{<issue 27021>}}
* Prevents vector index compaction failure when all vectors are filtered out during compaction. {{<issue 29016>}}
* Eliminates unexpected system exits when DDL transactions enter the tablet wait-queue in a colocated database with index. {{<issue 29215>}}
* Adds debug logs to assist in debugging issues related to concurrent DDL execution without object locking. {{<issue 29080>}}
* Enables use of PostgreSQL memory allocation for BSON by updating to the latest version of the BSON library. {{<issue 27104>}}
* Corrects xCluster status display for sequence data streams. {{<issue 26388>}}
* Disables pg_cron jobs on xCluster target by default, adjustable with `cron.yb_enable_on_xcluster_target`. {{<issue 26799>}}
* Enables extension build in Ubuntu 22.04-Clang19-debug by using pcre from the latest third-party update. {{<issue 26948>}}
* Fixes a memory leak by using condition variables for signal handling in the connection manager. {{<issue 28191>}}
* Reduces segmentation faults by isolating cascading timeout handling to auth processes. {{<issue 28206>}},{{<issue 28218>}},{{<issue 28231>}},{{<issue 28242>}}
* Eliminates stale hashmap entries on parse errors, enhancing protocol-level prepared statement handling. {{<issue 28576>}}

#### CDC

* Ensures CDC correctly processes transactions involving vector columns by skipping orphan tombstone intents. {{<issue 27942>}}
* Prevent loss of records due to bugs in the `PeerMessageQueue::ReadReplicatedMessagesForConsistentCDC` implementation. {{<issue 29060>}}
* Ensures only relevant `COMMIT` records are streamed, fixing gRPC connector crashes. {{<issue 26861>}}
* Prevents CDC crashes by logging a warning for dropped indexes on colocated tables. {{<issue 26834>}}
* Prevents data loss by not streaming records during transaction load. {{<issue 26835>}}
* Ensures reliable CDC stream functionality during index creation, preventing schema packing errors. {{<issue 26891>}}
* Fixes issue where data streaming with colocation could skip intents, causing record or column loss. {{<issue 27052>}}
* Prevents deletion of child tablet entries during metadata cleanup. {{<issue 27069>}}
* Sets the default value of `dcheck_for_missing_schema_packing` to true to enhance CDC testing accuracy. {{<issue 26891>}}
* Ensures hidden tablets are accessible during CDC stream fetches to prevent errors. {{<issue 26911>}}
* Optimizes CDC streams by sending a single BEGIN and COMMIT record for colocated tables. {{<issue 27248>}},{{<issue 2605>}}
* Ensures CDC streams data for non-transactional YCQL tables correctly. {{<issue 28034>}}
* Ensures unique sorting of batched shard records using `write_id` to prevent data loss. {{<issue 28166>}}
* Eliminates race conditions in CDC session management, preventing crashes. {{<issue 28336>}}
* Introduces the `yb_ignore_read_time_in_walsender` parameter for logical replication continuity during upgrades. {{<issue 27177>}}
* Ensures only tables in a publication are checked for `CHANGE` replica identity. {{<issue 28629>}}
* Handles error propagation from CDC to client for missing footer in segments. {{<issue 28592>}}
* Allows large transactions for unqualified tables to stream correctly, preventing the virtual WAL from getting stuck. {{<issue 28744>}}
* Fixes CDC issue with virtual WAL restart after a DDL, preventing record decoding failure. {{<issue 29136>}}
* Prevents core dumps by returning early from WalSndWakeup due to irrelevant callers in the YugabyteDB context. {{<issue 28379>}}
* Filters out data from rolled-back savepoints in CDC streaming, ensuring only valid data is received by CDC consumers. {{<issue 22817>}}
* Prevents the "Trying to fetch already GCed intents" error by correctly updating and managing checkpoints for child tablets after a tablet split. {{<issue 28840>}}
* Changes the `enable_cdcsdk_setting_get_changes_response_byte_limit` flag to default as true, ensuring the correct maximum response size. {{<issue 27892>}}
* Stops applying the LogReader memory limit to CDC, a setting intended only for xCluster. {{<issue 29066>}}
* Adds "Log index cache entry for op index not found" error to retryable errors in cdcsdk_virtual_wal. {{<issue 29061>}}
* Reverses changes to support savepoints due to an exposed bug, specifically for version 2025.2.0. {{<issue 29404>}}
* Reduces the frequency of log spam due to missing tablet warnings by changing logging parameters. {{<issue 28086>}}

#### Other

* Updates the Knowledge base -LlamaIndex with the latest YugabyteDB Vector Index dependency details. {{<issue 27913>}}

</details>
