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

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

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

v2025.1.0.0 - July 23, 2024

Build: 2025.1.0.0-b168

Third-party licenses: YugabyteDB, YugabyteDB Anywhere

Downloads

Docker:

docker pull yugabytedb/yugabyte:2025.1.0.0-b168

Highlights

PostgreSQL 15 compatible YugabyteDB clusters GA

This is the first stable release featuring a PostgreSQL fork rebase from version 11.2 to 15.0, enabling you to leverage the many key capabilities introduced in PostgreSQL between the two versions. This upgrade brings YSQL API support for numerous features, including stored generated columns, foreign keys on partitioned tables, and non-distinct NULLs in unique indexes. It also introduces query execution optimizations like incremental sort and memoization, along with various observability and security enhancements.

We're also pleased to announce that YugabyteDB 2025.1.0.0 supports in-place online upgrades and downgrade—even with the PostgreSQL fork rebased to 15.0.

Note that the source cluster must be running version 2024.2.3.0 or later to upgrade to version 2025.1.0. For more information, refer to PostgreSQL 15 features.

Support pgvector extension - With indexing support EA

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, enabling faster and more efficient high-dimensional vector lookups.

Automatic transactional xCluster DDL replication EA

YugabyteDB now supports seamless replication of YSQL DDL changes across xCluster setups, eliminating the need to manually apply DDLs on both source and target clusters. For more information, refer to Automatic DDL replication.

Parallel queries: Enabling PG parallelism for colocated tables GA

Improves query performance for colocated tables by allowing PostgreSQL to leverage multiple CPUs, leading to faster query execution times. For more information, refer to Parallel queries.

Optimization for INSERT ON CONFLICT batching GA

Queries using the INSERT ... ON CONFLICT clause are optimized for efficient execution, with automatic batching applied when multiple statements are executed to improve performance. For more information, refer to yb_insert_on_conflict_read_batch_size.

Cost-Based Optimizer (CBO) GA

The CBO leverages YugabyteDB's distributed storage architecture and advanced query execution optimizations, including query pushdowns, LSM indexes, and batched nested loop joins, to deliver PostgreSQL-like performance.

For instructions on enabling CBO, refer to Enable cost-based optimizer.

Bitmap scan support GA

Combine multiple indexes for more efficient scans. For instructions on enabling bitmap-scan support, refer to enable_bitmapscan.

New features

  • yugabyted

  • Catalog caching.

    • Provides ability to find catalog tables which can be preloaded to improve latency for first query in connection or after DDL in the cluster. GA

    • Compressed catalog tuples when storing in the PG catalog cache to reduce the memory consumption. GA

    • Optimized DDL performance by enabling targeted catalog cache invalidation, significantly reducing impact on concurrent DMLs. This avoids rebuilding the entire cache in most cases. GA

  • Sampling schema in Analyze. With sampled analyze, the time to analyze a table is no longer proportional to the size of the table. This improvement brings the time to analyze down significantly. For example, time to analyze 1 TB table is down from 35 minutes to under 3 minutes. GA

  • Improved bulk load performance for colocated tables. Introduced a fast path support for bulk load scenarios for colocated tables in particular (controlled by ysql_colocated_fastpath_txn_copy) that can improve COPY times up to 3x on colocated tables with multiple indexes. GA

  • Advisory locks. Enables session-based and transactional advisory locks for coordination and concurrency control in distributed environments. GA

  • Non-disruptive adding of indexes for xCluster. Adding an index to a database configured with bi-directional xCluster Replication (or other non-transactional xCluster Repolication) is now a non-disruptive, no-downtime operation. GA

  • PITR-flashback query. Allows querying historical database state by specifying a past timestamp, aiding in auditing, debugging, and data analysis. EA

  • Foreign key references. Allows creation of the foreign keys on partitioned tables. GA

  • NULLS NOT DISTINCT. By default unique indexes treat NULL values as distinct entries (and not equal), allowing multiple nulls for a column. NULLS NOT DISTINCT allows multiple NULL values to be treated equivalently. GA

  • Execution for queries using InsertOnConflict clause are optimized for efficient execution for YugabyteDB distributed architecture. GA

  • Query Plan Management (QPM) introduced to ensure stable and adaptable query performance by preventing plan regression and automatically detecting optimal new plans. EA

  • YSQL table inheritance. Adds YSQL support for table inheritance using the INHERITS keyword, which allows creating child tables that inherit columns and certain constraints from one or more parent tables. TP

  • YSQL index consistency checker. yb_index_check() is a built-in utility that helps detect and diagnose index inconsistencies in your database to ensure reliable query results. EA

  • YSQL lease mechanism. Enabled a robust lease mechanism between YB-TServer and YB-Master to enhance fault tolerance and data consistency during network partitions. GA

  • Transactional DDL. Support to align YSQL DDL semantics with PostgreSQL by allowing DDL statements to execute within the main transaction block. TP

  • Added CDC Logical Replication support for xCluster feature where both CDC and xCluster can work simultaneously on the same source tables. EA

  • Active Session History. Get real-time and historical information about active sessions to analyze and troubleshoot performance issues. GA

  • PostgreSQL Anonymizer extension, which masks or replaces personally identifiable information (PII) or commercially sensitive data, is now bundled with Yugabyte. GA

Change log

View the detailed changelog

Improvements

YSQL

  • Added yb_make_next_ddl_statement_nonincrementing to YbDbAdminVariables for yb_db_admin role. #23786
  • Enables control over in-place index updates with yb_enable_inplace_index_update. #20908
  • Enhances initdb logging, correctly handles process termination, and fixes memory leaks on abort signals. #24813
  • Ensures cached plans correctly depend on user roles, addressing CVE-2024-10976. #25330
  • Enhances nested loop joins by rechecking pushability of conditions and renames relevant function to reduce confusion. #25994
  • Allows setting and modifying options for foreign tables using ALTER FOREIGN TABLE ...OPTIONS (...). #1124
  • Allows use of UNLOGGED tables syntax, handling it as LOGGED with a warning. #23895, #23889
  • Exempts walsender from YSQL backend check to prevent index creation delays. #26587
  • Enables speculative execution for certain PL statements to avoid unnecessary flushes, enhancing performance. #27464
  • Adds pg_yb_logical_client_version table to manage session configurations. #23871
  • Introduces a dedicated auth-backend for YSQL to handle connection authentication, enhancing security and streamlining the process. #24147
  • Ensures correct error handling by adding a missing InvalidOid check in YSQL. #24147
  • Enables authentication via a specialized backend, enhancing security and reliability. #24147, #24427
  • Enables toggling authentication method in YSQL using the ysql_conn_mgr_use_auth_backend flag. #24147
  • Adds flag ysql_conn_mgr_sequence_support_mode for sequence management options. #23660
  • Removes the enable_ysql_conn_mgr flag from preview status. #25578
  • Allows setting enable_ysql_conn_mgr to true for general availability. #25578
  • Enhances error transparency when dropping databases or users. #21438
  • Supports executing DDL statements in READ COMMITTED isolation with options to disable retries. #27716
  • Sets yb_bnl_batch_size to 1024 and yb_prefer_bnl to true by default, ensuring BNL's replace nested loop joins without altering non-NL join plans. #19273
  • Adds pg_hint_plan syntax and functionality to control batched nested loop joins, allows setting hints YbBatchedNL(t1 t2) and NoYbBatchedNL, and modifies yb_prefer_bnl handling. Also, it removes BNL's dependency on enable_nestloop and adjusts cost model. #19494
  • Simplifies handling of ybctids from multiple sources in PgDml. #25162
  • Allows preloading of foreign key lists in relcache, avoiding on-demand master fetches, controlled by yb_enable_fkey_catcache. #23686
  • Enables creation of indexes that are covered by the main table. #24123
  • Enables faster LZ4 compression for large attributes in YSQL with upgraded thirdparty support. #24290
  • Adds notes on pinned objects and script backporting to the README. #24334
  • Prevents catalog version bumps on no-op ALTER ROLE commands, saving system resources. #24390
  • Enhances object creation efficiency by using static factory methods in PgDML classes. #24412
  • Disables JIT in YB PG15 by default for stability. #24479
  • Enhances INSERT ON CONFLICT by introducing efficient read batching and adding RETURNING support. #24648
  • Enables successful major version upgrades of functions containing semicolons. #24571
  • Introduces GetStatementAs<...> to simplify PgStatement* casts. #24754
  • Enables ASH by default for better monitoring and diagnostics. #24686
  • Adds ybctid as a reserved, fully queryable system column for improved row identification. #1284
  • Fixes style issues and lint errors in ybcModifyTable.c. #24882
  • Simplifies ybcSetupTargets by using BMS only, enhancing target column handling. #25007
  • Simplifies index requests for copartitioned vector indexes, enhancing efficiency. #25047
  • Excludes third-party extensions from PostgreSQL linter checks. #25054
  • Fixes segmentation fault in CREATE OR REPLACE TRIGGER by ensuring ybctid is set. #24941
  • Simplifies DML read pushdown binding for enhanced coding efficiency. #25151
  • Ensures ybcModifyTable.h meets style guidelines to pass arc lint checks. #25172
  • Adds new lint rules for better PostgreSQL code syntax checking #25187
  • Resolves style issues in yb_scan.c and yb_scan.h, addressing lint errors and warnings. #25198
  • Enhances YSQL code consistency with additional linting rules. #25298
  • Adds line breaks for each command in pipelines for better readability. #25297
  • Enables transaction-level advisory locks in YugabyteDB when the ysql_yb_enable_advisory_locks flag is set to true. #24713
  • Reduces CPU usage by optimizing ExecLockRows function. #25268
  • Adds a flag ysql_block_dangerous_roles to prevent privilege escalation. #25348
  • Adds new lint rules for comment styles in YSQL code. #25360
  • Removes outdated comments that are no longer applicable in the current codebase. #25400
  • Ensures YSQL code follows leading whitespace rules and blacklists non-compliant files. #25375
  • Streamlines initialization of YsqlAdvisoryLocksTable using std::shared_future. #25373
  • Removes unused parameters from YBInitPostgresBackend for cleaner code. #25417
  • Simplifies ysql_dump by removing outdated references to pg_tablegroup. #25419
  • Adds a helper class to manage YsqlCatalogConfig updates efficiently. #25418
  • Enhances code quality in pg_yb_utils.c by applying lint warnings/errors. #25420
  • Enhances INSERT ON CONFLICT performance by decoupling batch processing. #25488
  • Ensures trailing whitespace issues are consistently addressed in the codebase. #25438
  • Allows setting yb_insert_on_conflict_read_batch_size to zero to disable batching, aligning closer with PostgreSQL behavior. #25489
  • Adjusts ysqlsh -V output for accurate command name representation. #25429
  • Resolves code style issues by fixing spacing after control statements. #25447
  • Streamlines code clarity in YSQL by renaming and conditional updates. #25446
  • Streamlines datatype mapping by consolidating multiple code blocks into PgTypeInfo. #25554
  • Enforces new lint rule bad_opening_paren for cleaner code alignment. #25455
  • Enhances YSQL logging with new and updated linter rules to reduce errors and increase clarity. #25482
  • Enforces new spacing rules around comments in YSQL code. #25487
  • Re-enables the check_for_tables_with_oids for consistency with PostgreSQL. #25498
  • Standardizes type naming across YSQL to eliminate inconsistencies. #25587
  • Enables batching for INSERT ON CONFLICT with foreign key triggers. #24649
  • Consolidates YSQL configuration parameter management for clarity and consistency. #25586
  • Removes unnecessary needs_pg_session_transaction field to streamline advisory lock handling. #25591
  • Updates error and hint messages for advisory locks to utilize the preview feature. #25585
  • Adds "yb" prefix to custom YB type names for clarity and consistency. #25631
  • Enables lz4 compression by default for large YSQL tuples, ensuring high performance. #25613
  • Reduces PgClientSession's size and streamlines code for better readability and easier modifications. #25652
  • Enhances YSQL linter scripts to handle Mac compatibility and prevent failures. #25662
  • Simplifies running pgindent for cleaner code formatting and resolving issues with function names and comments. #25663
  • Removes unnecessary sidecar usage from YBPgsqlLockOp for cleaner code. #25855
  • Enhances thread safety by isolating client_ field storage in PgClientSession. #25652
  • Enhances code readability by running yb_pgindent and manual formatting. #25725
  • Enhances yb_servers function to include universe_uuid for better cluster identification. #25818
  • Enables INSERT ON CONFLICT read batching by default to increase test coverage. #25985
  • Enhances lint rule messages for clarity and stricter comment spacing validation. #25816
  • Fixes comment linting issues to handle non-word characters. #25810
  • Refactors PgClientSession using the pimpl design pattern for better organization and cleanup. #25847
  • Allows customizing ef_construction and m parameters for ybhnsw indexes during creation. #25859
  • Reduces code duplication in query optimization checks for colocated/copartitioned tables. #25959
  • Enhances ASH data retrieval in query diagnostics using the SPI framework. #25865
  • Allows customization of ybhnsw index creation options in YSQL. #25859
  • Restores the ItemPointer static assert following upstream PostgreSQL code. #25997
  • Fixes a TSAN issue by adjusting error reports in YugabyteDB. #25998
  • Integrates new data types and functions from pgvector 0.8.0 into YSQL. #25990
  • Enables on-demand logging and enhanced catalog cache statistics tracking. #26023
  • Enables conditional checks for role existence in ysql_dump outputs with the dump_role_checks flag. #25877
  • Removes the check that the first operation in a plain session must set the read time. #26151
  • Enhances code consistency in ybgate_api.h by matching Postgres style. #26176
  • Consolidates multiple suppression flags into one for cleaner pg_regress outputs. #26197
  • Refactors PgDocReadOp to enhance modularity by isolating sampling logic into PgDocSampleOp. #26165
  • Restores CREATE permission on the public schema to yb_db_admin. #26218
  • Enables ALTER TYPE ... SET SCHEMA support for orafce extension upgrades. #26215
  • Enhances pg_stat_get_progress_info by adding new fields. #26273
  • Eliminates unnecessary workaround in ALTER TABLE operations related to constraint handling. #26315
  • Reinstates checks for ash_metadata in PgClient RPC requests with added code explanations. #26268
  • Adds support for datetime and UUID type pushdown in mixed mode. #26510, #26511
  • Organizes YSQL code by splitting function definitions into a new file. #26300
  • Enables expression pushdown for MOD, LIKE, ASCII, SUBSTRING in mixed mode upgrades. #26512
  • Disables AutoAnalyze during the entire PG15 upgrade to ensure stability. #26412
  • Enforces naming conventions for distinguishing YugabyteDB-specific files. #26457
  • Aligns CurrentMemoryContext handling more closely with PostgreSQL updates. #26496
  • Maintains workaround in pg_dump to support upgrades with pg_stat_statements. #26575
  • Ensures consistent transaction path settings for single-shard operations. #26720
  • Merges PostgreSQL 15.12 improvements into YugabyteDB, enhancing database compatibility and stability. #26746
  • Allows users to adjust ybhnsw.ef_search for HNSW index searches in YSQL. #26629
  • Automatically maps hnsw to ybhnsw in CREATE INDEX statements for seamless index creation. #26549
  • Recommends changing isolation level to read committed to avoid errors during concurrent inserts. #26648
  • Excludes PostgreSQL owned code from bad_variable_declaration_spacing lint rule. #26651
  • Adds server_type option to differentiate foreign servers in postgres_fdw. #25500
  • Renames switch_fallthrough to yb_switch_fallthrough for consistency. #26816
  • Enables the PostgreSQL anonymizer extension via the enable_pg_anonymizer flag. #26804
  • Enhances error reporting by including index names for missing rows. #26819
  • Displays rows removed by YugabyteDB index recheck in execution plans. #26827
  • Aligns get_relation_constraint_attnos function to use correct flag. #26846
  • Disallow setting ysql_select_parallelism to zero to prevent errors. #26837
  • Removes pg_strtouint64 and adopts strtoull or strtou64 for consistency. #26870
  • Aligns YSQL more closely with upstream PostgreSQL, reducing discrepancies and streamlining changes. #26881
  • Logs now detail the cause and context of read restart errors for better troubleshooting. #24431
  • Adds YB-specific counters to pg_stat_statements for detailed stats tracking. #26791
  • Limits output buffer to 8kB to ensure compatibility with certain clients. #26744
  • Increases the timeout for detecting pg_yb_catalog_version mode from 10 seconds to 20 seconds. #26990
  • Optimizes catalog version updates on DDL statements to avoid unnecessary refreshes. #27080
  • Adds support for cube and earthdistance extensions in YSQL upgrades. #27141
  • Streamlines UPDATE/DELETE operations and standardizes function signatures in YSQL. #27179
  • Adds a new YSQL parameter yb_enable_cbo for safer query optimization without statistics. #26868
  • Enhances accuracy of cost modeling for backward index scans based on the use_fast_backward_scan flag. #26991
  • Adds support for deferred mode in yb_read_after_commit_visibility for writes. #24940
  • Reduces unnecessary full catalog cache refreshes by calling update functions atomically. #27239
  • Adds estimated roundtrip counts to EXPLAIN output for scans. #25063
  • Prevents auto-analyze DDLs from blocking or preempting user DDLs. #27036
  • Adds a new YSQL configuration parameter to disable the hint table cache. #27151
  • Adds support for LSM index creation on multirange columns. #27297
  • Updates the pg_stat_statements header to reset stats on upgrade from 2.25 to 2.27. #27180
  • Changes default setting of enable_partitionwise_aggregate to true, enhancing query performance. #25208
  • Enhances the handling of response cache during major version upgrades to prevent errors. #27435
  • Streamlines the database by removing obsolete functions related to drop/remove object by OID. #27352
  • Enables automatic logging of peak heap snapshots on backend exits for enhanced debugging. #27487
  • Enables setting ysql_yb_enable_cbo flag on tserver for query optimization. #27495
  • Adds verbose logging for Perform RPCs between Pg and Tserver via shared memory. #27571
  • Enhances code style in src/backend/tcop/ as per linting reports. #25189
  • Adds query ID and leader PID to the /rpcz endpoint response. #25603
  • Enhances pg_stats with length and bounds histograms for better query planning. #6237
  • Fixes build failures and enhances memory usage reporting with TCMalloc stats. #3190
  • Ensures CREATE RULE consistently updates the catalog version across all backends. #27201

YCQL

  • Resolves timestamp precision mismatches in YCQL, aligning inserts and index scans to millisecond precision. #11052, #23476
  • Tracks microsecond precision timestamps in YCQL with new metric cql_microseconds_timestamps_used. This tracking occurs if the cql_revert_to_partial_microsecond_support flag is true. #24776
  • Adds keyspace field to <tserver-ip>:12000/statements output. #25368
  • Allows setting NULL in YCQL JSONB column values using UPDATE statements. #5907

DocDB

  • Reduces unnecessary attribute map creations during Prometheus metric aggregation. #24405
  • Enhances load balancer to prioritize under-replicated tablets first. #20263
  • Limits concurrent remote bootstraps per tserver using load_balancer_max_inbound_remote_bootstraps_per_tserver flag. #2426
  • Enables placing intermediate CA certificates directly in the server cert file for node-to-node encryption. #25972
  • Tracks ByteBuffer memory usage with MemTracker. #26875
  • Adds data block consistency check to sst_dump tool. #27233
  • Adds flag to allow tablet writes after a compaction failure. #27269
  • Adds remove_corrupt_data_blocks_unsafe flag for yb-ts-cli compact_tablet command. #27381
  • Prevents overloading by correctly categorizing bootstrapping tablets in load balancing. #23487
  • Allows reduction of thread stack size to avoid Linux hugepage backing. #23927
  • Upgrades non-FIPS OpenSSL to 3.0.15 and removes CentOS 7 builds. #24436
  • Enhances RBS throttling by focusing on active fetch sessions and adjusts expiration logic. #21563, #24031
  • Allows dynamic adjustment of rocksdb_compact_flush_rate_limit_bytes_per_sec across all tablets. #25611
  • Selects geographically closest tserver for faster clone operations. #26788
  • Displays detailed RBS progress on the master's Cluster Balancer UI page. #26853, #27397
  • Upgrades OpenSSL to version 3.0.16 and enhances aarch64 support. #27491
  • Optimizes backward scans by using Seek for faster access to recent updates when needed. #22373
  • Enables persisting TServer registry entries to the sys catalog, enhancing failover recovery. #22925
  • Speeds up backward scans by caching keys, enabling quicker and more efficient data retrieval. #22372
  • Initial implementation of Vector LSM supports multi-threaded batch inserts. #24020
  • Enables xCluster to support and replicate table rewrite DDL operations effectively. #23955
  • Updates and organizes third-party dependencies like usearch for better maintainability. #23998
  • Simplifies HNSW library structure by using a factory-based approach. #24085
  • Allows explicit addition of gFlags to gflag_allowlist.txt for secure callhome data collection, plus version_info in tserver data. #24103
  • Enables xCluster to handle non-colocated ALTER TABLE commands without pausing replication. #23951
  • Passes automatic_ddl_mode to xCluster pollers for enhanced replication handling. #24091
  • Adds a metric to alert users when the master follower heartbeat delay is too high. #21178
  • Removes the need to set set_cdc_min_replicated_index during xCluster bootstrap for improved log retention. #24105
  • Enables SimSIMD in Usearch for enhanced search operations. #23998
  • Reduces thread usage by removing CDC-specific yb_client from PgClientServiceImpl. #24145
  • Adds a yb-admin command to remove non-active, blacklisted TServers. #24044
  • Skips schema validation for newly added tables in xCluster replication to handle schema changes. #23078
  • Standardizes log prefixes for retryable requests with tablet and peer IDs. #19516
  • Enables fast backward scans by default, enhancing performance for various workloads. #24243
  • Adds a yb-admin command to remove tablet servers from the registry. #24044
  • Enables persistent TServer registry updates via autoflag configuration. #24045
  • Enables persistent storage for vector LSM via separate index chunk files and meta files. #24371
  • Enhances Vector LSM handling to maintain data integrity after unexpected restarts. #24466
  • Enables the creation of indexable vector columns in DocDB by introducing a new DataType Vector. #24483
  • Issues NOTICE when creating indexes in bi-directional xCluster to ensure concurrent execution. #24362
  • Reduces Python virtual environment changes using yugabyte-bash-common for top-level management. #19478
  • Renames the vector library to vector_index and updates the namespace accordingly. #24636
  • Introduces the rocksdb_determine_compaction_input_at_start flag, allowing the selection of SST files for compaction when the task starts rather than when it's queued. #24541
  • Creates vector index tablets colocated with the indexed table for effective data retrieval. #24696
  • Enables direct replication of specific DDL commands in XCluster. #23953
  • Reduces Prometheus metric scrape time from 15 seconds to 2 seconds. #24565
  • Reverts a change that issued NOTICE on index creation in bi-directional xCluster setups. #24362
  • Enables creation of Vector LSM for tablets with vector indices. #24892
  • Removes deprecated vector index storage in RocksDB. #24854
  • Reduces argument redundancy in PgsqlReadOperation executions. #24855
  • Enables safe index creation on bidirectional xCluster tables without halting operations. #24884
  • Replaces ProducerSchemaPB with SchemaVersionsPB for xCluster configurations. #24901
  • Supports DDL replication for additional PostgreSQL objects including foreign tables and text search configurations. #25051
  • Enables ALTER operations on colocated tables with active replication. #24910
  • Adds packed row support for vector indexes during transaction apply. #24912
  • Fetches intents DB for vector index queries to account for unapplied committed transactions. #24947
  • Enables building with thirdparty PR artifacts using specific GitHub IDs. #25089
  • Enables vector indexes on colocated tables. #24994
  • Allows vector index inserts to use a dedicated thread pool, enhancing overall system performance. #25029
  • Replaces vector_index::VertexId with StronglyTypedUuid as VectorId. #25038
  • Limits concurrent reads on usearch vector index to avoid exceptions. #25069
  • Enables file determination at compaction start by default. #25113
  • Introduces a system table pg_advisory_locks for advisory locks management. #25127
  • Enables merging vector index search results across multiple tablets. #25212
  • Enhances stability by fixing a missing null check in tablet lookup processes. #25145
  • Reduces CPU usage by 3-8% during statistics collection. #25160
  • Enables DDL replication for common PostgreSQL extensions in YugabyteDB. #25052
  • Clarifies error messages during yb-master initialization. #25176
  • Reduces CPU usage by only setting stmt_max_mem_base_bytes during EXPLAIN ANALYZE. #25174
  • Reduces tserver CPU usage by using serialized_request size instead of SpaceUsedLong. #25175
  • Enables advisory lock operations in DocDB, controlled by the flag yb_enable_advisory_lock. #24357
  • Enables monitoring of long tasks in Reactor threads with rpc_reactor_task_timeout_ms. #25180
  • Speeds up database creation by batching table lock acquisitions. #25203
  • Switches to GetTableSchema to check table existence, reducing timeouts. #25197
  • Enables explicit release of advisory locks in transactions. #25195
  • Enables re-creation of vector indexes on tablet restarts. #25272
  • Disables Redis proxy by default to reduce overhead. #25278
  • Optimizes RWCLock for faster read operations. #25282
  • Disables tablet splitting for tables with vector indexes. #25288
  • Removes unnecessary libraries from YB tools, reducing link times and flag count. #25304
  • Adds automatic_ddl_mode argument to yb-admin create_xcluster_checkpoint. #25302
  • Enables TSAN for RWCLock, fixing potential deadlocks. #25391
  • Refactors lock management code to use static dispatch for compatibility with shared memory. #25322
  • Ensures vector indexes are updated during tablet bootstrap if the tserver stops unexpectedly. #25325
  • Enhances search by filtering vectors on TServer based on deletion, updates, and criteria. #25357
  • Enables remote bootstrap for vector index storage. #25369
  • Reduces the need for global mutex locks by introducing per-transaction LockTracker state. #25379
  • Ensures DDL unlock operations follow the reverse order of lock operations. #25380
  • Enables point-in-time restore support for vector indexes. #25389
  • Adds flag rocksdb_iterator_sequential_disk_reads_factor to enhance readahead during non-sequential scans. #25397
  • Reduces boilerplate for defining hash functions with new helper macros. #25403
  • Enables session-level DocDB transactions for advisory locks, ensuring lock validity throughout the session. #24711
  • Introduces block-based data organization in YbHnsw for efficient memory management during data loading and unloading. #25571
  • Introduces deadlock detection for session advisory locks in transactions. #24710
  • Resolves session and transaction level advisory lock conflicts in the same session. #25238
  • Removes unnecessary //NOLINT comments to enhance code readability. #25536
  • Replaces heuristic checks with VECTOR data type for column identification. #25581
  • Speeds up TServer insert times by enabling variable bloom filtering on RocksDB iterators. #25600
  • Speeds up write operations by using ScopedStatistics, reducing TServer insert time. #25602
  • Enhances deadlock detection to include scenarios with session advisory locks and row-level locks. #25565
  • Enables backfilling existing table data when creating vector indexes. #25676
  • Removes unnecessary key-value callbacks from vector LSM. #25687
  • Allows the creation of colocated tables in xCluster configurations. #22318
  • Sets the minimum xCluster safe time lag value to 0 and adds logging for debugging. #25733
  • Preserves enum label OIDs during DDL replication across universes. #24077
  • Enables YCQL support for GetTablesEligibleForXClusterReplication. #25732
  • Supports custom vector labels in HNSW library for enhanced indexing flexibility. #25041
  • Excludes AcquireAdvisoryLock calls from active session history to prevent duplicates. #25802
  • Enables use of variable bloom filter during index scans for enhanced query performance. #25795
  • Enables logging of YSQL write RPCs with the print_ysql_write_requests flag. #25786
  • Reduces compile time for transaction_participant.cc by removing unused boost includes. #25792
  • Enables manual compaction of vector index chunks in Vector LSM. #24071
  • Supports multiple vector distance functions in ybhnsw index access method. #25807
  • Enables chunked vector index backfill and continuation after restart. #25844
  • Removes unused ScanForward functionality for streamlined performance. #25915
  • Ensures vector index backfill reads from the indexed table at the correct time. #26046
  • Enables better replication of concurrent DDLs with unique, ordered timestamps. #24235
  • Upgrades protobuf to version 21.12 for better C++23 compatibility. #26128
  • Updates codebase to C++23, enhancing compatibility and performance. #26346
  • Enables sequence replication in xCluster by default, removing the need for a flag. #26029
  • Enhances the user message for setting yb_read_time to clarify read-only restrictions. #26027
  • Adds logging for vector index search stats when vector_index_dump_stats flag is true. #26072
  • Ensures consistent bootstrapping of vector indexes after a tserver restart. #26087
  • Enhances handling of expired snapshots by retrying deletion tasks automatically. #25628
  • Correctly displays advisory lock details in pg_locks view. #24712
  • Ensures vector index contains all entries from the indexed table. #26150
  • Adds detailed cluster balancer warnings to the master UI page. #26159
  • Adds tombstones to obsolete vector IDs, reducing queries to the main table. #24064
  • Displays cluster balancer tasks on the master UI page. #26157
  • Adds annotations to prevent compiler reordering in shared memory interactions. #26261
  • Uses non-concurrent mode by default for creating vector indexes to streamline processes. #26402
  • Enhances xCluster DDL replication by adjusting yb_read_time usage and silencing related warnings. #25629
  • Renames docdb::VectorIndex to docdb::DocVectorIndex to eliminate name confusion. #26304
  • Allows specific compaction and flush for vector indexes via yb-admin commands. #26332
  • Adds yb-ts-cli compact_vector_index command for tablet-specific vector index compaction. #26338
  • Adds automatic_mode flag to create_checkpoint for simpler xCluster setup. #26355
  • Enables dropping vector indexes in DocDB. #26359
  • Displays replication mode in the master UI Outbound Replication Groups section. #26368
  • Enhances vector index compaction with a new deletion API and clearer naming conventions. #26433
  • Automatic mode now always requires bootstrapping to ensure OID consistency. #24030
  • Reuse threads to enhance connection efficiency in shared memory communication. #26501
  • Enhances vector index query stats logging and adds new metrics tracking. #26597
  • Enhances monitoring by using thread pool names for thread categorization. #26656
  • Simplifies navigation and modification of master async RPC tasks code. #26685
  • Introduces idle timeouts in rpc::ThreadPool to automatically adjust thread counts based on activity, enhancing resource efficiency. #26708
  • Switches to MPSCQueue for enhanced single-consumer performance and simpler maintenance. #26774
  • Adds support for the DocumentDB extension v0.102-0 to enhance database functionality. #26749
  • Enforces shared memory access restrictions at compile time. #26924
  • Allows setting ybhnsw.ef_search to customize search expansion factor. #26883
  • Adds paginated querying for vector index operations. #26884
  • Cancels vector index compaction during VectorLSM shutdown. #26489
  • Enables cloning of vector indexes in databases. #26872
  • Enables consistent backup and restore for vector indexes. #26965
  • Renames "Network" wait_event_type to "RPCWait" for clarity. #26986
  • Enables ysql_yb_enable_advisory_locks by default and makes it a runtime flag. #25293
  • Adds detailed logging for failed DDL executions in xCluster replication. #23702
  • Enables priority thread pool usage for vector index compactions. #26971
  • Enables conditional tracing of ASH events to conserve memory. #27455
  • Removes -ftime-trace from Clang builds to enhance compatibility with ccache. #27499
  • Defers processing of records with commit times exceeding the apply safe time to the next batch. #27318
  • Removes outdated code to streamline heartbeat processing. #24872
  • Simplifies load balancer's placement info management. #25065
  • Streamlines tablespace validation by centralizing logic, enhancing future feature support. #25202
  • Enhances maintainability by consolidating tablespace validation logic into TablespaceParser. #25202
  • Deprecates the load_balancer_count_move_as_add flag to simplify cluster balancing. #26259
  • Enhances gcc12 compilation and streamlines master_fwd.h for faster builds. #26543
  • Reduces build times by removing unused headers and optimizing file inclusions. #26589
  • Reduces query execution latency by optimizing GUC handling in Connection Manager. #20939

CDC

  • Enables asynchronous removal of user tables from CDC streams by adjusting how background threads process and persist stream metadata. #23700
  • Enables tablet splitting on tables under CDCSDK stream by default using the GFLAG enable_tablet_split_of_cdcsdk_streamed_tables. #24190
  • Adds a tag for the slot name attribute in the CDC metrics. #24307
  • Blocks creation of IMPLICIT streams by default; use flag to override. #24023
  • Enhances CDC accuracy by using the minimum of last WAL OP timestamp and transaction start time in segment footers. #25163
  • Disables automatic tablet splitting for CDC stream tables by default. #25148
  • Removes unused code related to transaction status checks in CDC. #25351
  • Enables dynamic table addition in logical replication by default. #25413
  • Increases default CDC retention flags to 8 hours for better data durability. #25633
  • Enables automatic tablet splitting with logical replication by fixing hidden tablet deletion bugs. #24918
  • Reduces unnecessary cleanup requests for logically replicated tables. #25752
  • Adds parallel logical replication with consistent tablet subsetting under the ysql_yb_enable_consistent_replication_from_hash_range flag. #25897
  • Reduces cdcsdk_publication_list_refresh_interval_secs to 15 minutes by default. #25793
  • Adds cdcsdk_flush_lag metric and fixes bugs in other CDC metrics. #19445, #25819
  • Limits the number of VirtualWAL instances per tserver with cdc_max_virtual_wal_per_tserver flag. #25896
  • Enhances CDC streaming by advancing restart time in idle periods, supported by the new flag cdcsdk_update_restart_time_interval_secs. #25562
  • Reduces logging frequency for certain CDC errors to avoid clutter. #26148
  • Sets wal_status in pg_replication_slots based on CDC consumption timing. #26272
  • Corrects flag value conversion to ensure accurate update intervals for CDC restart times. #25562
  • Blocks table drops if they are part of a publication to prevent replication issues. #26659
  • Reduces the default yb_walsender_poll_sleep_duration_empty_ms flag value to 10 ms to speed up replication in sparse workloads. #26733
  • Speeds up tablet bootstrap under CDC by skipping initial WAL segments, controlled by skip_wal_replay_from_beginning_with_cdc flag. #24516
  • Enables kNoCacheQueryId to prevent crashes during RocksDB operations. #24516
  • Speeds up tablet bootstrap under CDC by fixing WAL replay. #24516
  • Automatically removes metrics when a CDC stream is deleted. #24876
  • Adds the cdc_cache_intent_block flag to control caching of CDC intent blocks. #24909
  • Renames the flag to cdc_enable_caching_db_block and sets its default to true for enhanced caching. #25573
  • Limits CDC GetConsistentChanges response by byte size, allowing toggling with cdc_use_byte_threshold_for_vwal_changes. #25572
  • Reduces log verbosity in virtual WAL to prevent large log files. #25739
  • Increases log visibility for netty errors by changing levels from DEBUG to WARN. #26779

yugabyted

  • Removes psutil dependency in yugabyted for better compatibility. #26350
  • Enables better handling of complex YSQL configuration parameters using sticky connections. #21637
  • Stops sending gflags details in the callhome diagnostics to eliminate redundant data. #24029
  • Ensures the user interface accurately displays disk size, even when multiple data directories are used. #23810
  • Ensures join flag in config files is properly validated to prevent node misconfiguration. #23007
  • Enables tserver_master_addresses to update immediately in multi-node deployments using Yb-ts-cli. #24659
  • Updates column names in pg_stat_statements to fix slow queries page on yugabyted UI. #25094
  • Increases row count capacity in metrics API by using int64 instead of int32. #25196
  • Fixes yb-voyager install instructions layout in yugabyted UI. #25445
  • Displays universe UUID instead of a blank in the "Cluster Name" field on the yugabyted-ui settings page. #25831
  • Corrects VCPU display in yugabyted-ui for k8s deployments. #26624
  • Adds an environment variable to show accurate CPU details in Kubernetes deployments. #26624
  • Upgrades yugabyted-ui TypeScript version to 5.0.4 for better package compatibility. #26958
  • Adds fully qualified names for non-table SQL objects in the UI. #24330, #24331
  • Lists manually refactorable objects by type in the YugabyteD UI. #24329

Bug fixes

YSQL

  • Resets current_hint_retrieved after query execution to ensure consistent hint parsing. #12741
  • Introduces a per-database PG new OID allocator, ensuring OID uniqueness within the database and enhancing horizontal scalability in multi-node and multi-tenancy environments. This new mechanism mitigates OID collisions and allows OID consistency in backup-restore scenarios across clusters. A new GFlag ysql_enable_pg_per_database_oid_allocator is provided to return to old OID allocator behavior if necessary. #16130
  • Modifies backup/restore process to skip column name checks for indexes, allowing for successful restoration even with renamed columns. #24207
  • Enables ALTER SEQUENCE commands to change sequence name, schema, and owner without errors. #17271
  • Enhances Postgres restart stability by refining shutdown handling and lock file management. #24396
  • Reduces memory usage during YugabyteDB connection startup. #24925
  • Removes an erroneous log entry that appeared in crashes or errors. #24533
  • Enhances protocol flow for consistency in batched query executions using a new flag ysql_conn_mgr_optimized_extended_query_protocol. #24898
  • Ensures DDL operations continue smoothly by retrying background tasks on polling errors. #25708
  • Enables pg_authid table prefetching during login to reduce RPCs and prevent errors. #25776
  • Ensures Batched Nested Loop joins correctly check for hashable join clauses. #25917
  • Reduces XID usage by generating one per REFRESH MATERIALIZED VIEW CONCURRENTLY operation. #26205
  • Renames on unique constraints now update associated DocDB table names. #26276
  • Disables neg hit optimization for inherited cache when minimal preload is on. #27543
  • Enhances upgrades for indexes with hash column groups to correctly handle aliases and metadata. #27629
  • Fixes crashes caused by using a RowComparisonExpression on a reordered primary key index. #23824
  • Disables in-place index updates by default to address index inconsistency issues. #24672
  • Increases YSQL connection manager's thread stack size to 512 KB to prevent crashes on Alma 9 machines. #24979
  • Enables creating non-colocated leaf partitions on colocated partitioned tables. #24542
  • Ensures joins are only pruned when a Leading hint exists, avoiding errors. #26670
  • Fixes flag overlap to differentiate sticky settings from explain in configurations. #24954
  • Standardizes function usage for ATExecSetTableSpaceNoStorageto match PG's approach. #25019
  • Removes an unnecessary code block to streamline backend selection in connection management. #25154
  • Corrects tuple ID construction for primary keys with out-of-order columns. #25070
  • Restores functionality by removing explicit packet parsing for yb_is_client_ysqlconnmgr. #25220
  • Reduces read restart errors during concurrent disjoint key writes. #25214
  • Enables seamless execution of unnamed prepared statements across different backends. #25577
  • Fixes data race in regex pushdown by using thread-local variables. #24237
  • Ensures correct row order for queries with IN clauses. #25559
  • Tracks sticky connection metrics on the Prometheus endpoint. #25775
  • Eliminates segmentation faults caused by a bug in Odyssey's list iteration macro, which incorrectly handled NULL pointers and led to core dumps. #25846
  • Avoids unnecessary catalog version bumps during in-place materialized view refreshes. #26154
  • Disables index-only scans on copartitioned indexes. #26344
  • Allows placement of table replicas in any specified region or zone using * wildcard. #26671
  • Corrects a queue ordering logic by using std::lower_bound to prevent tserver crashes. #27170
  • Fixes ANALYZE failures on wide tables by adjusting fetch size limits. #27202
  • Enhances session stickiness when acquiring session-scoped advisory locks. #27249
  • Reduces sequence-related errors when using ysql_conn_mgr_sequence_support_mode=pooled_with_currval_lastval. #27024
  • Renames pipe type to orafce_pipe to resolve naming conflicts. #12990
  • Eliminates unnecessary file creation for views on temporary tables by checking if storage is actually needed. #19522
  • Reduces maintenance time by switching to a less complex implementation of SideBySideDiff.java, thereby eliminating errors from SideBySideDiff.sanityCheckLinesMatch. #19690
  • Prevents segmentation faults in parallel index scans with aggregate pushdown. #21427
  • Introduces custom SQL error codes for better error handling across processes. #22353
  • Increases performance by batching index reads during INSERT ON CONFLICT, with customizable batch sizes using yb_insert_on_conflict_read_batch_size. #24179
  • Improves cache re-invalidation for ALTER TABLE commands to avoid schema version mismatch errors within the same session. #23882
  • Fixes UPDATE errors on partitioned tables by correctly mapping column numbers. #23857
  • Ensures restart read time does not exceed the global limit to avoid inconsistent reads. #24017
  • Fixes the flaw in the current DDL atomicity workflow where only the first table's schema was compared, even if it doesn't change after a schema version increment. #23988
  • Streamlines ysql_dump process by eliminating faulty statements for colocated table unique constraint, enhancing database reliability. #24057
  • Introduces batching for the INSERT ON CONFLICT command to enhance performance by minimizing alternating read and write operations. Control the batch size with the new YSQL configuration parameter yb_insert_on_conflict_read_batch_size, which, when default at 1, disables batching. #24179
  • Fixes crash by skipping internal savepoints for SET/BEGIN in RC isolation. #23730
  • Enhances index relation checks with YBIsCoveredByMainTable method. #24239
  • Alters encoding setup order to ensure UTF8 use instead of SQL_ASCII and adds pg_collation to preloaded tables to prevent specific errors. #24149
  • Disables LZ4 build option to prevent PostgreSQL build failures. #24286
  • Fixes crashes in creating tables with over 585 columns. #24304
  • Adds support for ALTER TABLE VALIDATE CONSTRAINT in YugabyteDB. #24291
  • Prevent incorrect loading of pg_collation catalog caches, eliminating associated performance issues. #24149
  • Fixes out-of-bound memory access during index scan cost estimation. #24246
  • Blocks REINDEX and TRUNCATE on system tables using table rewrite. #24356
  • Blocks the "NULLS NOT DISTINCT" command until supported. #24452
  • Enhances consistency and correctness of INSERT...ON CONFLICT queries via YBCTID infrastructure integration and index management. #24692, #24784
  • Assumes indexes contain 1000 rows when statistics are unavailable, ensuring better query planning. #24496
  • Enhances performance during nested loop joins by ensuring correct limit resets in colocated index scans. #24560
  • Removes time sync service requirement from the prerequisites. #24758
  • Enhances UPDATE query execution on generated columns by including them in updatedCols calculations. #24641
  • Fixes foreign key checks to avoid errors with unique indexes. #24663
  • Ensures accurate catalog version tracking during concurrent index creation. #24775
  • Automatically restarts the postmaster to prevent stuck processes when a background worker crashes. #24706
  • Ensures YB master reads from valid catalog tables during upgrades. #24647
  • Re-enables in-place index updates by default after fixing related inconsistencies. #24849
  • Prevents DML operations on sequence data during upgrades. #24943
  • Fixes ysql_dump crashes related to pg_catalog schema dumps. #24907
  • Accurately estimates the cost of partial index scans by including index conditions. #24916
  • Reduces memory usage spikes by using a new memory context for RelationBuildTriggers. #24951
  • Enhances accuracy of seek-next estimation for index scans and paged results. #22087
  • Adds debugging logs to track new OIDs for resolving table OID collisions. #24320
  • Ensures successful cache invalidation after a failed ALTER TABLE to prevent "schema mismatch" errors. #24981
  • Disables index update optimization by default to fix ON CONFLICT UPDATE issues. #25075
  • Reverts changes related to yb_amiscoveredbymaintable for updated index co-partitioning design. #25119
  • Fixes memory leak in ysql_dump by clearing PG result in all scenarios. #24934
  • Fixes issues with INSERT ON CONFLICT DO UPDATE to prevent secondary index corruption. #25075
  • Clears session state on retrying a query to avoid errors and conflicts. #25105
  • Eliminates background worker restart loops and enhances error handling. #25192
  • Fixes "Duplicate table" error by adjusting OID allocation to prevent collisions. #24320
  • Replaces fatal calls with pg_fatal in pg_dump.c for better error handling. #25320
  • Allows Batch Nested Loop (BNL) joins on partitioned tables in outer joins. #25080, #25078
  • Ensures correct handling of INSERT ... ON CONFLICT DO NOTHING with multiple arbiter indexes. #25240
  • Fixes a missing return statement in MasterTabletServiceImpl::Write. #25249
  • Ensures all non-fast path UPDATEs correctly fetch the entire row to prevent foreign key violations. #24701
  • Fixes crashes when using yb_get_range_split_clause with partitioned tables. #25104
  • Fixes inconsistency in index entries during concurrent writes in the backfill phase. #25250
  • Corrects initialization of primaryKeyIndex in ysql_dump. #25340
  • Removes a faulty assertion in INSERT ON CONFLICT to prevent failures. #25296
  • Addresses a pending review comment for YSQL style corrections. #25385
  • Adds a tablet state column to yb_local_tablets for clarity on tablet statuses. #24250
  • Fixes incorrect error message related to "INSERT ON CONFLICT" under concurrent transactions. #25105
  • Corrects batched read behavior for mixed immediate and deferred FK constraints. #25431
  • Enhances session management by moving set_force_catalog_modifications handling to PgSession. #25434
  • Reduces scope of ALTER DATABASE impact to only the targeted database. #25392
  • Enhances code structuring and formatting for query diagnostics files. #25058
  • Ensures correct column mapping for partitioned tables during INSERT ON CONFLICT updates. #14895, #25521
  • Fixes a compile error for GCC builds. #25658
  • Reduces latency after DDL changes by using catalog version for cache invalidation. #25799
  • Fixes incorrect role name quoting in ysql_dumpall. #25701
  • Fixes incorrect aggregate column references in flattened subqueries. #24512
  • Modifies ysql_dumpall to combine CREATE ROLE and ALTER ROLE for effective role management. #25608
  • Fixes an error in UPDATE queries setting the primary key to itself. #21160
  • Fixes issues with INSERT ON CONFLICT queries using SPI_execute_with_args. #25773
  • Reverts ALTER DATABASE RENAME and ALTER DATABASE OWNER to global impact. #25742
  • Fixes memory leaks and segmentation faults in YSQL Connection Manager. #25718
  • Fixes memory leaks in the PostgreSQL anonymizer extension and optimizes test scheduling. #25928
  • Fixes potential negative cost calculations for large table scans by using double for estimates. #25862
  • Fixes \d command for indexes with spaces in their names. #25711
  • Prevents returning corrupt data for INSERT ON CONFLICT with RETURNING when read batching is enabled. #25836
  • Ensures CREATE OR REPLACE VIEW refreshes the catalog for immediate update visibility. #25901
  • Refines cost model tuning using server-side execution times for more accurate query optimization. #23709
  • Enhances linter hints for Mac users by prioritizing brew over apt. #25925
  • Removes redundant yb_cdc_snapshot_read_time field, simplifying snapshot management. #26303
  • Sets query ID for background workers earlier to ensure correct tracking. #25952
  • Enhances estimation of result tuple size in edge cases, preventing division by zero errors. #21828
  • Enables geolocation costing in the new cost model using the yb_enable_geolocation_costing flag. #25967
  • Fixes flaky behavior in Connection Manager when handling prepared statements. #25958
  • Disables fast-path transactions for bulk loads on colocated tables by default. #26191
  • Refactors the FK cache handling in YSQL for cleaner code structure. #25431
  • Optimizes cost modeling for primary index scans to assume sequential disk block fetching. #26235
  • Ensures accurate detection of duplicate entries during fast-path transactions. #26204
  • Enables setting follower reads YSQL parameters at connection time. #25635
  • Resolves multiple issues in tuple-to-string utility functions. #26288
  • Ensures stable operation of refresh materialized view during major upgrades. #26297
  • Uses auto-generated OID symbols for pg_proc entries. #26301
  • Displays the initdb log file path on stdout for easier debugging. #26316
  • Ensures consistent data during fast-path COPY operations on tables with unique indexes. #26207
  • Enhances query planning for inherited and partitioned tables with more efficient path usage. #25988
  • Ensures PostgreSQL compilation only executes necessary tasks by correctly handling MAKELEVEL. #26337
  • Prevents database crashes by blocking index creation on dimensionless vector columns. #26345
  • Fixes upgrade issues for partitioned tables by reverting relam settings. #26317
  • Prevents crash by excluding NULL values from vector indices. #26378
  • Enhances index scans and partition pruning for BOOLEAN conditions. #26266
  • Ensures correct behavior of YbBitmapIndexScan upon rescan by updating pushdown expressions. #26210
  • Eliminates erroneous colocation data in indexdef for copartitioned indexes. #26398
  • Restores and repositions a critical statement to its intended location in the planner. #26363
  • Enables selective whole row retrieval for DELETE on partitioned tables with varying configurations. #26464
  • Corrects estimations for inner table scans in Batched Nested Loop Joins. #26462
  • Fixes integer overflow in BNL cost estimation, preventing negative values. #26463
  • Prevents incorrect sharing of query limits in subplan executions. #26485, #26418
  • Adds a YSQL configuration parameter to customize negative catalog caching. #26311, #26358
  • Ensures the vmodule flag is respected by the Postgres process. #26521
  • Adds liblz4.1.dylib to macOS yugabyte-client package for successful deployment. #26523
  • Enables ANALYZE to collect accurate stats for parent-level of partitioned tables. #23592
  • Prevents crashes by handling non-variable expressions in single-row updates or deletes. #26536
  • Adds a safeguard to prevent crashes during NULL vector index scans. #26382
  • Enhances stability by initializing vector index scan costs to prevent undefined behavior. #26588
  • Prevents relcache reference leaks in yb_get_ybctid_width. #24819
  • Fixes port conflict issue when setting pgsql_proxy_bind_address in dual NIC setups. #26443
  • Addresses "Duplicate table" error by ensuring unique OID allocation during restores. #26456
  • Ensures YSQL dumps set colocated = false for non-colocated databases during backups. #26569
  • Reduces default RPC message size limit for better data handling. #26375
  • Enhances yb_index_check to verify materialized view indexes' consistency. #26639
  • Ensures ysql_dump maintains enum sort order during backup and restore. #26645
  • Ensures accurate data return from index scans by correctly fetching needed values for rechecks. #26717
  • Ensures path->rows reflects accurate row estimates in scans, avoiding incorrect overwrites. #25710
  • Prevents "Duplicate table" errors by not computing relfilenode_htab during initdb. #26456
  • Ignores the SPLIT option when creating a partitioned table. #26807
  • Renames YSQL metric prefixes for clarity and maintains compatibility with old names. #26854
  • Updates description for ysql_yb_enable_ash flag. #26838
  • Allows restoration of old backups with enum types without errors by reverting to warnings and auto-generated OIDs. #26859
  • Logs odd pg_enum OID during restore if sortorder is missing, enhancing troubleshooting. #26859
  • Restores the call to ScheduleCheckObjectIdAllocators inadvertently removed. #26902
  • Fixes a use-after-free bug in ysql_dump by copying tablegroup_name. #26547
  • Allows yb_binary_restore to be set by ybdbadmin for vector extension creation. #26941
  • Ensures accurate reset of stats before every EXPLAIN (ANALYZE) query. #27093
  • Ensures ybctid is correctly populated in RETURNING clauses for DML queries. #26951
  • Fixes a bug to prevent NULL insertion in pg_yb_catalog_version. #27103
  • Adds COMMIT as a DDL in YSQL upgrade scripts to handle cache invalidation correctly. #27148
  • Restores single-RPC optimization for certain index scans. #27294
  • Re-enables password redaction for specific SQL statements in YugabyteDB. #22421
  • Adds missing migration script for pg_hint_plan extension update. #27025
  • Fixes the assertion failure for ALTER DATABASE OWNER when using SELECT FOR UPDATE. #27280
  • Prevents errors by detoasting values before insertion into DocDB tables. #26561
  • Ensures CREATE FUNCTION also updates the catalog version. #27166
  • Removes duplicate YSQL configuration parameter entry. #27427
  • Fixes a segfault when rewriting tables with vector indexes. #26879
  • Fixes secondary index scan cost estimation on colocated tables. #27214
  • Prevents ASAN failures during certain SQL operations. #27447
  • Ensures YSQL statistics tables are saved and persist after a database restart. #26758
  • Fixes TServer crashes during concurrent metadata changes and tablet destruction. #26879
  • Fixes a memory leak in yb_cancel_transaction by freeing YbcStatus. #27554
  • Disables yb_force_early_ddl_serialization by default to avoid conflict errors. #27761
  • Ensures PostgreSQL shuts down before deleting upgrade data to prevent crashes. #27726
  • Restores performance hints in prepared statements to ensure consistent execution. #24055
  • Simplifies descriptions for inherited PostgreSQL wait events. #24972
  • Ensures all threads correctly handle signals for consistent shutdown behavior. #24960
  • Enables users to control YB query execution plans using pg_hint_plan. #6720
  • Adds Oracle-like functions to YSQL with the Orafce extension. #3460

YCQL

  • Allows users to control error suppression for GROUP BY in YCQL using ycql_ignore_group_by_error flag. #25030
  • Eliminates unexpected error during shell type definition update across multiple sessions. #24217

DocDB

  • Allows the packed row size to exceed its limit during repacking, preventing tserver crash after alter table add column commands with a default value. #24050
  • Prevents server crashes during table truncation by safely shutting down iterators before releasing locks. #23243
  • Prevents resource waste by checking disk space before remote bootstrap operations. #23987
  • Adds a flag to limit multiple pending compactions for priority pools. #24540
  • TServers now reject remote bootstrap requests for previously deleted tablets. #24574
  • Sets a default 10MB max size for RocksDB MANIFEST files, now configurable via flags. #11117
  • Resolves issue where tables could get indefinitely stuck in HIDING state. #22159
  • Adds mtime and checksum to block cache key prefix to prevent conflicts. #20852
  • Enhances visibility for unexpected rate limiter sleep times in RBS (Remote Bootstrap) threads. #24342
  • Prevents crashes when calling ListMasterServers RPC on a master by returning an error. #20372
  • Upgrades tcmalloc and abseil to prevent crashes from malloc_usable_size(nullptr). #25948
  • Prevents creation of tablespaces with duplicate placement blocks. #23406
  • Prevents crashes by ensuring non-null frontiers during transaction apply after a tserver restart. #396
  • Fixes load balancing for rewritten tables in colocated databases. #26262
  • Prevents deadlocks in PG sessions when using shared memory, enhancing stability. #26672
  • Fixes crashes in ProcessSupervisor when unable to restart a process. #26731
  • Ensures yb-admin commands respect user-specified timeouts for table flushes and compactions. #19957
  • Prevents deadlocks and unresponsiveness during high-load schema changes by fetching table info asynchronously. #26909
  • Reduces follower lag by ensuring consistent Raft config during tablet splits. #26644
  • Ensures accurate replication for transactional writes on xCluster range partitioned tables. #27380
  • Ensures post-split compactions complete even if background compactions are in progress. #27426
  • Ensures consistent data reads by setting propagated safe time only after successful operation replication. #23696
  • Prevents incorrect query results due to invalid seek keys in internal iterator operations. #27641
  • Eliminates inconsistencies by not including inactive tablets in OpenTable operations. #24860
  • Ensures continuous xCluster task operation even if the master temporarily loses the lease but retains leadership. #25480
  • Enhances transactional xCluster accuracy by using majority replicated OpId for ApplySafeTime calculations. #26043
  • Prevents server deadlocks by skipping Finished method during certain task aborts. #23356
  • The update stabilizes WriteBuffer, preventing potential crashes when constructed over non-zeroed memory. #23960
  • Resolves the shutdown issue with the shared exchange causing TServer to hang by properly managing concurrent threads and session destruction, and sets pg_client_use_shared_memory to false by default on Mac to enhance performance. #24000
  • Adds a null check to prevent a system crash when cleaning up a recently applied transaction state after a flush operation. #24026
  • Prevents crashes during compaction when ysql_enable_packed_row is off and existing packed rows are present. #24545
  • Updates YSQL migration script to align with Postgres 15 catalog changes. #24593
  • Switches pg_cron back to using standard SIGTERM handling for cleaner shutdowns. #24658
  • Ensures tablets remain effectively managed during transition from RF1 to higher replication factors. #24575
  • Ensures consistent tablegroup assignments for colocated table backups without using explicit tablespaces. #24809
  • Fixes error for select queries in large tables by adjusting backward scan bounds. #24824
  • Eliminates segmentation faults by ensuring CleanupHiddenTables holds a write lock during Upsert. #24929
  • Prevents fatal errors during multiple splits and PITR restores. #25103
  • Ensures consistency between Slice::Less and Slice::compare methods. #25319
  • Ensures accurate WaitForReplicationDrain behavior by not mislabeling tablets as drained. #25457
  • Prevents crash during transaction abort by adjusting lock handling. #25689
  • Ensures fast backward scans return accurate results by fully checking row changes. #26060
  • Enables cloning databases to any time within the snapshot schedule retention period. #26293
  • Enables lock_timeout for advisory locks, enhancing timeout precision. #26513
  • Fixes handling of db_max_flushing_bytes to properly limit memory usage under high write loads. #26916
  • Fixes crashes when executing SELECT * FROM pg_locks during advisory lock waits. #26972
  • Prevents unbounded growth of the recently_applied_map by not adding read-only transactions, conserving memory. #26666
  • Prevents data loss by ensuring databases are flushed before updating flush markers. #26910
  • Fixes a bug that caused vector indexes to share a folder, preventing crashes. #27049
  • Fixes HTTP 503 response formatting on Master API requests. #26914
  • Fixes crashes in handling session advisory lock statuses. #27030
  • Ensures successful remote bootstrap by removing pre-existing directories. #27123
  • Adjusts DocRowwiseIterator to correctly include nulls for NULLS FIRST sorting. #27031
  • Fixes compaction errors from schema version mismatches by storing missing-value info. #27463
  • Stops retrying failed batches when the session is closed. #27171
  • Prevents TServer crashes during concurrent vector index and read requests. #27699
  • Resolves deadlock during TSHeartbeat by adjusting lock scope. #27773
  • Eliminates potential deadlocks in thread pool by fixing a race condition. #27898
  • Ensures "create table" requests for colocated tables don't fail due to mistaken tablet limit checks. #23922
  • Reduces unnecessary checks when adding tables in alter replication requests. #24164
  • Enhances stability by replacing raw pointers with std::weak_ptr in tablet server handling. #24182
  • Enhances index parameter consistency between Usearch and Hnswlib for balanced performance. #24465
  • Ensures correct metadata sequencing for vector index chunks, preventing data inconsistencies. #24511
  • Speeds up vector LSM loading by using a thread pool. #24588
  • Enables merging of small vector index chunks to enhance search efficiency. #24069
  • Fixes shutdown path issues to prevent fatal errors during RPC completion. #24524
  • Ensures pg_txn_start_us is set for restarted transactions, fixing priority issues in waiter resumption. #24778
  • Fixes mini cluster restarts to ensure master leaders track all tserver reconnections. #24772
  • Reduces latency by enhancing early resume of RPCs blocked on aborted transactions. #24799
  • Fixes memory leak in MasterPathHandlers by properly managing shared pointers. #24823
  • Ensures callback triggers after loading tablet server data if the count meets requirements. #23744
  • Ensures consistent reads by verifying restart conditions before reporting false corruption. #25072
  • Enhances vector index merging for better search efficiency. #24069
  • Clarifies the use of "IncludeInactive" and "IncludeHidden" flags in Master RPCs. #25086
  • Enables direct mapping from row keys to vector IDs in vector indexes. #24232
  • Removes a problematic import to prevent errors during direct script executions in GitHub CI. #25155
  • Fixes crashes and errors during vector index creation on non-first column IDs. #25276
  • Enhances search efficiency by enabling the Merge function to take vector indexes as input for compactions. #24069
  • Fixes crashes when copying large rows with a vector index. #25335
  • Updates Snappy to version 1.1.8.4 for better M1 Mac support. #25359
  • Fixes snapshot deletion during unfinished operations. #25405
  • Enhances XClusterSafeTimeService by integrating it with the upgraded Poller class. #25253
  • Changes xCluster metrics from kSum to kMax to prevent inaccuracies. #25422
  • Eliminates potential crashes when fetching status of sealed transactions. #25439
  • Ensures vector indexes are flushed before deleting intents SST files to prevent data loss. #25454
  • Enables block-based sampling by default using new YSQL configuration parameters. #25557
  • Prevents xCluster failures caused by same-name table re-creation during non-DBScoped DR. #25709
  • Fixes a deadlock issue during index creation and enhances conflict detection. #25737
  • Reduces false deadlock errors in session advisory lock handling. #25753, #25761
  • Ensures correct database IDs are used for xCluster replication setup. #25770
  • Disallows write DML operations in time-traveling sessions set with yb_read_time. #25834
  • Disables pushdown of MD5 and SHA256 to prevent tserver crashes. #25889
  • Ensures pg_locks functions correctly even with active advisory locks by ignoring advisory lock tablets. #25939
  • Corrects the namespace of TSLocalLockManager to yb::tserver. #25941
  • Ensures builds with thirdparty PR artifacts now function correctly. #25970
  • Enables cloning databases with sequences to earlier states without errors. #25929
  • Enables pg_locks to show active PostgreSQL advisory locks. #26057
  • Prevents false conflict detection in snapshot isolation operations. #26142
  • Fixes lock order for vector index creation to prevent deadlocks. #26119
  • Allows xCluster to handle UNKNOWN state TableInfos gracefully. #26019
  • Disables -Wmisleading-indentation warnings in GCC to prevent increased compile times. #26177
  • Adjusts shared memory address range to 0x350000000000-0x3f0000000000 to avoid conflicts. #26200
  • Ensures continuous leader lease revocation by supporting multiple old leader leases. #19447
  • Prevents potential deadlocks by ensuring table locks follow ID order during namespace copies. #26164
  • Separates thread pools for vector index backfill and inserts to avoid deadlocks. #26343
  • Adds warning for unlocking non-existent advisory locks. #26180
  • Escapes non-printable characters in UI and file outputs. #26413
  • Fixes logging of partition keys for new child tablets post-split. #26409
  • Fixes flush failure reporting during shutdown to prevent data loss. #26468
  • Ensures accurate data tracking during master leader transitions by handling chunked tablet reports efficiently. #26554
  • Extends advisory lock timeout to 600 seconds to align with PostgreSQL expectations. #26518
  • Ensures system tables are correctly removed during deletions or upgrades. #26595
  • Reduces thread contention by using a lock-free queue for thread management. #26635
  • Enhances local RPC call handling to execute in the same thread when possible. #26697
  • Stops tracking transactions when use_bootstrap_intent_ht_filter is set to false, preventing memory leaks. #26860
  • Ensures Slice::ToDebugString respects the max_len setting for hex outputs. #26874
  • Prevents yb-admin crashes by correctly handling argument count for create_database_snapshot. #26899
  • Improves error handling for shared memory operations in DocDB. #26740
  • Removes 60-second timeout upper bound on admin RPCs and adds new yb_client_admin_rpc_timeout_sec flag. #26722
  • Prevents deadlocks during background compaction and transaction loading. #26880
  • Fixes the issue of recording "query id 0" in Active Session History samples. #26808
  • Blocks nonconcurrent index creation on xCluster replicated tables. #27006
  • Prevents master process crashes by fixing an iteration modification issue in TriggerDdlVerificationIfNeeded. #26967
  • Enables yb-pbc-dump to decrypt and process encrypted protobuf files using specified keys. #26917
  • Ensures pg_locks query reliability when a node is down by continuing to serve requests. #27035
  • Eliminates the risk of deadlocks during table alterations and snapshot operations. #26565
  • Ensures column ID continuity in backups by preserving next_column_id. #27064
  • Enables YSQL transaction tracing with pg_client_use_shared_memory enabled. #27392
  • Ensures no deadlock when threads wait on PgResponseCache for query results. #27412
  • Increases RollbackYsqlMajorVersionUpgrade RPC timeout to 3 minutes. #24361
  • Adds race conditions in the odyssey library to the TSAN suppressions list. #24735
  • Reduces data race when changing RocksDB options during auto-compactions. #24238
  • Fixes deadlock issue by adjusting lock acquisition order in HierarchicalNSW. #25017
  • Ensures tasks don't hang during shutdown by removing unnecessary checks. #17898
  • Rejects alter table requests during table preparation to prevent state inconsistencies. #25130
  • Reduces mutex load in Catalog manager by optimizing lock usage. #25207
  • Ensures smooth RocksDB shutdown by properly updating compaction counters. #25211
  • Fix ensures /TableExists correctly identifies recently deleted tables. #25223
  • Fixes uninitialized isolation level issue in lock operations. #25270
  • Prevents crashes during vector index flush on shutdown. #26486

CDC

  • Allows sending a null "before image" for CDC if cdc_send_null_before_image_if_not_exists flag is true. #18381
  • Reduces log frequency for certain CDC warnings to every 10 minutes. #23148
  • Enhances accuracy of transaction start time logging for better consistency in CDC. #24521
  • Fixes memory leaks in the walsender's handling of transactions and file nodes. #24788
  • Ensures only relevant COMMIT records are streamed, fixing gRPC connector crashes. #26861
  • Ensures null values are now correctly captured in CDC before image records. #22983
  • Enables removal of dropped tables from the replica identity map to prevent replication errors. #24308
  • Excludes expired or irrelevant entries from metrics calculations for more accurate reporting. #24975
  • Fixes CDC safe time update to ensure data consistency across tablets. #25120
  • Ensures accurate history retention for various replica identities in CDC. #25193
  • Reduces untracked memory growth in CDC by eliminating unnecessary request scopes. #25311
  • Fixes metric lag by adding dummy entries for expired tablets. #25550
  • Stops log cache eviction slowdown due to CDC to prevent untracked memory spikes. #25311
  • Prevents CDC crashes by logging a warning for dropped indexes on colocated tables. #26834
  • Prevents data loss by not streaming records during transaction load. #26835
  • Ensures reliable CDC stream functionality during index creation, preventing schema packing errors. #26891
  • Prevents deletion of child tablet entries during metadata cleanup. #27069
  • Ensures hidden tablets are accessible during CDC stream fetches to prevent errors. #26911
  • Optimizes CDC streams by sending a single BEGIN and COMMIT record for colocated tables. #27248, #2605
  • Ensures newly created tables in logical replication are retained correctly during cleanup. #25206
  • Handles missing CDC streams gracefully during polling by logging warnings. #25605
  • Ensures schema checks during table eligibility evaluations for CDC stream cleanups. #25206
  • Reduces log verbosity by changing the log level for virtual WAL destroy statements. #25547

yugabyted

  • Checks for chrony service before enabling clockbound during node start. #26255
  • Preserves the universe key locally after enabling EAR for recovery scenarios. #26552
  • Nodes now start using private IP as advertise_address instead of hostname. #25037
  • Adds use_client_to_server_encryption flag to secure login data. #25332