Project: YugabyteDB (App Definition and Development / Database)
File: v2.20.md

title: What's new in the YugabyteDB v2.20 LTS release series headerTitle: What's new in the YugabyteDB v2.20 LTS release series linkTitle: v2.20 series (LTS) description: Enhancements, changes, and resolved issues in the YugabyteDB v2.20 LTS release series recommended for production deployments. aliases: /preview/releases/release-notes/stable-release/ /preview/releases/whats-new/stable-release/ menu: preview_releases: identifier: v2.20 parent: ybdb-releases weight: 2815 rightNav: hideH4: true type: docs {{< tip title="LTS - Feature availability" >}} All features in stable releases are considered to be {{<badge/ga>}} unless marked otherwise. {{< /tip >}} What follows are the release notes for the YugabyteDB v2.20 release series. Content will be added as new notable features and changes are available in the patch releases of the YugabyteDB v2.20 release series. For an RSS feed of all release series to track the latest product updates, point your feed reader to the . {{< warning title="Technical Advisories" >}} Impacts: v2.20.0.0 to 2.20.1.2 - {{<ta 20648>}} - Index update can be wrongly applied on batch writes Impacts: v2.20.1.0 to 2.20.1.3 - {{<ta 20827>}} - Correctness issue for queries using SELECT DISTINCT {{< /warning >}} Build: `2.20.3.1-b2` Third-party licenses: , <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.20.3.1/yugabyte-2.20.3.1-b2-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i> <span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.20.3.1/yugabyte-2.20.3.1-b2-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/2.20.3.1/yugabyte-2.20.3.1-b2-el8-aarch64.tar.gz"> <i class="fa-brands fa-linux"></i> <span>Linux ARM</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.20.3.1-b2 ``` Converted the `ysqlskiprowlockfor_update` to an auto-flag to resolve compatibility issues during upgrade, preventing incorrect DB record creations that can affect row visibility and integrity. {{<issue 22057>}} {{< warning title="Use 2.20.3.1">}} {{< /warning >}} . Ability to roll back a database upgrade in-place and restore the cluster to its state before the upgrade. You can roll back a database upgrade only to the pre-upgrade release. {{<badge/ea>}} Added support for Red Hat Enterprise Linux 9.3 on x86-based systems. Refer to for the complete list of supported operating systems. Alters temporary namespace naming in YB to `pgtemp<tserver-uuid><backendid>` from `pgtemp<backend_id>`, making them unique across nodes and preventing temp tables overwriting or deletion. {{<issue 19255>}} Treats `REFRESH MATERIALIZED VIEW` as a non-disruptive change, preventing unnecessary transaction terminations. The default option, `REFRESH MATERIALIZED VIEW NONCONCURRENTLY`, modifies metadata but without making a disruptive alteration. {{<issue 20420>}} Displays distinct prefix keys explicitly in the explain output, enhancing the clarity of indexing for users. {{<issue 20831>}} Allows correct initialization and propagation of `ybDataSent` and `ybDataSentForCurrQuery` flags for both parent and child transactions, for enhanced error handling and retry mechanism. {{<issue 18638>}} Optimizes the `gettablespacedistance` function, enhancing the speed of the `ybislocal_table` YSQL function. Reduces query time by caching `GeolocationDistance` value. {{<issue 20860>}} Limits the number of rows returned per transaction per tablet in `pg_locks` to avoid potential memory issues during batch inserts, and includes additional fields to indicate partial lock info. {{<issue 20765>}} Introduces a new YSQL configuration parameter `yblockstxnlockspertablet` to limit the number of rows returned by pglocks, preventing the system from running out of memory during large transactions. {{<issue 19934>}} Introduces a new metric for untracked memory which eliminates the need to hardcode child memory trackers. Now users can effortlessly monitor untracked memory for better resource management. {{<issue 18683>}} Limits the number of tablets per node, and hastens reaching the desired number of tablets by lowering the values of FLAGStabletsplitlowphaseshardcountpernode to 1 and FLAGStabletsplitlowphasesizethresholdbytes to

{{<issue 20579>}} Adds a new retrying master-to-master task, allowing for the API `AreNodesSafeToTakeDown` to check if it's safe to remove or upgrade certain nodes without disrupting overall cluster health. {{<issue 17562>}} Introduces `AreNodesSafeToTakeDown` API that ensures safe node removals during cluster upgrades or maintenance operations by checking tablet health and follower lag, facilitating seamless and risk-free updates. {{<issue 17562>}} Enables monitoring of master leader heartbeat delays through a new RPC in the MasterAdmin, ensuring undesired lags can be readily detected and mitigated. {{<issue 18788>}} Introduces two new metrics to alert users when CreateTable function tries to exceed the tablet count limits and to highlight when a tablet server is managing more tablets than its capacity allows. {{<issue 20668>}} Adjusts the tablet guardrail mechanism to wait for TServer registrations when master leadership changes, avoiding false-positive CREATE TABLE rejections due to incomplete TServer data. A new gflag now controls this wait duration. {{<issue 20667>}} Adds a flag `FLAGStabletsplitminsize_ratio` to control tablet splitting based on SST file sizes, ensuring better control over tablet size imbalance. {{<issue 21458>}} Added a test to certify the `safetime` set during `GetChanges` call, reducing data loss during network failures. Ensures consistent `safehybrid_time` in multiple `GetChanges` calls. {{<issue 21240>}} Eliminates unnecessary computation of range bounds in Index-Only Scan precheck condition, preventing crashes for certain queries and improving performance. {{<issue 21004>}} Eliminates risk of data loss by ensuring only the first statement in SQL mutation batches is retried in the event of a transaction conflict, when using PostgreSQL extended query protocol. {{<issue 21297>}} Temporarily reverts new field additions to the PgsqlResponsePB proto to address upgrade failures encountered when transitioning from versions 2.14/2.16 to 2.20.2. {{<issue 21229>}} Fixes table rewrite issue on non-colocated tables/matviews in colocated DB, ensuring the new table uses the original table's colocation setting. Includes a workaround for GH issue 20914. {{<issue 20856>}} Reduces excessive storage metric updates during `EXPLAIN ANALYZE` operation, enhancing performance by incorporating `storagemetricsversion` in `YBCPgExecStats` and `YbInstrumentation`. {{<issue 20917>}} Prevents simultaneous send of read and write operations in the same RPC request that could lead to inconsistent read results, by ensuring that, in case of multiple operations, all buffered ones are flushed first. {{<issue 20864>}} Redesigned expression tree walkers to properly handle NULL nodes in queries with subselects used in an index condition, preventing planner crashes. {{<issue 21133>}} Enforces stricter locking mechanisms during concurrent updates on different columns of the same row, to maintain data consistency and prevent 'write-skew anomaly within a row. Adds a new gflag `ysqlskiprowlockfor_update` to toggle the new row-level locking behavior. {{<issue 15196>}} Adjusts heartbeat mechanism to shut down when an "Unknown Session" error occurs, reducing log alerts. This benefits idle connections with expired sessions. {{<issue 21264>}} Allows BNL's on outer and inner tables, even if the inner table has "unbatchable" join restrictions that can't accept batches of inputs, enhancing queries with complex join conditions. {{<issue 21366>}} Incorporates checks of inequality filters in the YSQL layer to avoid transmitting trivially false inequalities, preventing undesired behavior from DocDB iterators. {{<issue 21383>}} Allows ModifyTable EXPLAIN statements to run as a single row transactions, decreasing latency. Also enables logging for transaction types when `ybdebuglogdocdbrequests` is enabled. {{<issue 19604>}} Corrects an issue where certain unbatchable filters weren't detected during indexpath formation when indexpath accepted batched values from multiple relations. {{<issue 21292>}} Fixes a race condition on kvstore.colocationtotable to prevent undefined behavior and re-enables packed row feature for colocated tables, enhancing data writing and compaction

{{<issue 20638>}} Clears `pendingdeletes` on failed delete tasks thus preventing tablets from being incorrectly retained after task failure or completion. This rectifies a race condition and allows the Load Balancer to perform operations on specific tablets and Tablet Servers. {{<issue 13156>}} Enhances universe upgrade process by incrementing ClusterConfig version during an update and adds checks to prevent universe_uuid modification. Also introduces a yb-ts-cli to clear universe uuid if necessary, improving troubleshooting capabilities. {{<issue 21491>}} Reflects the actual columns locked in conflict resolution instead of the shared in-memory locks in `pg_locks`, providing more accurate output for waiting transactions. {{<issue 18399>}} Modifies the `DocDB` system by shifting the acquirement of `submittoken` of the `WriteQuery` to the post-conflict resolution phase to prevent DDL requests from being blocked, thus optimizing both reads and writes for continued performance and enhanced data consistency. {{<issue 20730>}} Corrects transaction queue behavior allowing multiple waiters for a single transaction per tablet, thereby resolving conflicts and enhancing transaction handling capability. {{<issue 18394>}} Incorporates detection of recently aborted transactions into the transaction coordinator with a new flag `cleardeadlockedtxnsinfoolderthanseconds`. {{<issue 14165>}},{{<issue 19257>}} Disables the packed row feature for colocated tables, effectively preventing a possible encounter with the underlying issue in 21218 during debugging. {{<issue 21218>}} Prevents TServers from crashing due to duplication of tablets in two drives, occurring after repairing a faulty drive, by preventing the creation of new tablets during Raft-based system (RBS) process. {{<issue 20754>}} Eliminates potential issues with colocated tables during heavy DDL operations and compaction, reducing the risk of crashing on newer builds (2.20.0+) where the packed row feature is default. {{<issue 21244>}} Allows database drop operations to proceed smoothly by ignoring missing streams errors and skipping replication checks for already dropped tables. {{<issue 21070>}} Allows ListTabletServers to handle heartbeats older than 24 days by adjusting the setting to the maximum int32 value, avoiding system crash. {{<issue 21096>}} Includes the `indexedtableid` with the index in table listings, eliminating the need for a second lookup to associate a main table with an index. {{<issue 21159>}} Corrects RPATH setting for OpenLDAP libraries that prevents system libraries being picked up or not found. Also refactors library_packager.py for improved library dependency categorization. {{<issue 21236>}} Reduces TPCC NewOrder latency by replacing the ThreadPoolToken with a Strand within a dedicated rpc::ThreadPool in PeerMessageQueue's NotifyObservers functions, enhancing speed and efficiency. {{<issue 20912>}} Early aborts transactions that fail during the promotion process, enhancing throughput in geo-partitioned workloads and offering stability in geo-partitioned tests. {{<issue 21328>}} Corrects block cache metrics discrepancy by ensuring Statistics object passes into LRUCache from TableCache for accurate updates. {{<issue 21407>}} Fixes a segmentation fault in yb-master by checking for a null pointer before dereferencing it, addressing an issue in the CDC run on `2.23.0.0-b37-arm`. {{<issue 21648>}} Validates the use of two arguments for `disabletabletsplitting`, addressing a previous condition where only one was required, thereby enhancing backup process reliability. {{<issue 8744>}} Introduces a fix for data loss issue caused by faulty update of `cdcsdksafe_time` during explicit checkpointing, along with tests to ensure validity. {{<issue 15718>}} Fixed the decoding of NUMERIC value in CDC records to prevent precision loss by ensuring that the decoded string is not converted to scientific notation if its length is more than 20 characters. {{<issue 20414>}} Fixes issue with CDC packed rows, now ensures a single record for large insert operations, providing consistent data regardless of row

{{<issue 20310>}} Ensures consistency in `CDCSDKYsqlTest.TestLargeTxnWithExplicitStream` test by setting `FLAGScdcmaxstreamintentrecords` value from 40 to 41, overcoming the issue of multiple records for a single insert when packed row size exceeds `ysqlpackedrowsize_limit`. {{<issue 20310>}} Updates the condition for HT lease reporting to ensure accurate leaderless tablet detection in RF-1 setup, preventing false alarms. {{<issue 20919>}} Reduces disruptions by throttling the master process log messages related to "tablet server has a pending delete" into 20-second intervals. {{<issue 19331>}} Build: `2.20.2.2-b1` Third-party licenses: , <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.20.2.2/yugabyte-2.20.2.2-b1-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i> <span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.20.2.2/yugabyte-2.20.2.2-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/2.20.2.2/yugabyte-2.20.2.2-b1-el8-aarch64.tar.gz"> <i class="fa-brands fa-linux"></i> <span>Linux ARM</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.20.2.2-b1 ``` This is a , with no changes to the database. Build: `2.20.2.1-b3` Third-party licenses: , <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.20.2.1/yugabyte-2.20.2.1-b3-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i> <span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.20.2.1/yugabyte-2.20.2.1-b3-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/2.20.2.1/yugabyte-2.20.2.1-b3-el8-aarch64.tar.gz"> <i class="fa-brands fa-linux"></i> <span>Linux ARM</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.20.2.1-b3 ``` Enhances universe upgrade process by incrementing ClusterConfig version during an update and adds checks to prevent universe_uuid modification. Also, introduces a yb-ts-cli to clear universe UUID if necessary, improving troubleshooting capabilities. {{<issue 21491>}} Ensures numeric values are decoded without precision loss by utilizing string representation with no length limit and the PostgreSQL numeric_out method. {{<issue 20414>}} Build: `2.20.2.0-b145` Third-party licenses: , <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.20.2.0/yugabyte-2.20.2.0-b145-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i> <span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.20.2.0/yugabyte-2.20.2.0-b145-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/2.20.2.0/yugabyte-2.20.2.0-b145-el8-aarch64.tar.gz"> <i class="fa-brands fa-linux"></i> <span>Linux ARM</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.20.2.0-b145 ``` Added support for read-only mode for DR replica, currently supported for YSQL tables. Tablet splitting now can be enabled on tables with CDC configured. {{<issue 18479>}} Transactional CDC now supports consistent snapshots, ensuring data integrity during replication to a sink. Snapshots, ordered by commit time across all tables and tablets, establish a reliable replication order. {{<issue 19682>}} <!-- #### DocDB Enables a new API to filter Prometheus metric output, providing server-level aggregation for all tablet and table metrics. Users activate it with `version=v2` in the URL. The new setup introduces `serverallowlist`, `serverblocklist`, `tableallowlist`, `tableblocklist` regex filters for greater control. {{<issue 19943>}} Temporarily adjusts the GFlag to not set a limit on the per-tablet overhead memory tracker, enabling the use of the tablet guardrail mechanism without previous issues and allowing for a safer control over the number of tablets created. {{<issue 20667>}} Enhances CDCSDK to communicate tablet splits to clients as soon as they are detected during `GetChanges` calls, offering improved data handling via hash_key checks and facilitating modifications to tests. {{<issue 18479>}} Adds yb-admin CLI support for creating consistent snapshot streams with options NOEXPORTSNAPSHOT and USESNAPSHOT, guarded by the TEST flag ybenablecdcconsistentsnapshot_streams. {{<issue 19682>}} Sets the CDC Consistent Snapshot feature as a preview with `USESNAPSHOT` as the default consistent snapshot option while creating a stream, and guards changes by the PREVIEW flag `ybenablecdcconsistentsnapshotstreams`. {{<issue 20367>}} --> Introduces `ybsilenceadvisorylocksnotsupportederror` as a temporary solution, avoiding disruption while users transition from the use of advisory locks. {{<issue 19974>}} Shifts from the test flag "FLAGSTESTenabledbcatalogversionmode" to the {{<badge/tp>}} flag "FLAGSysqlenabledbcatalogversionmode", enhancing user control over concurrent DDL execution across different databases. {{<issue 12417>}} Issues a notice for unsafe ALTER TABLE operations, including for ADD

to indicate existing rows won't be backfilled with the default value, enhancing user awareness. Suppression possible by setting `ysqlsuppressunsafealternotice` flag to true. {{<issue 19360>}} Added sorting capabilities to BatchNestedLoopJoin to return the rows in the same order as NestedLoopJoin. {{<issue 19589>}} Replaces the `ysqlmaxreadrestartattempts` and `ysqlmaxwriterestartattempts` flags with `ybmaxquerylayerretries`, applies limit to Read Committed isolation statement retries, and adjusts `retrybackoffmultiplier` and `retryminbackoff` defaults. {{<issue 20359>}} Disallows the creation of a temporary index with a tablespace, preventing client hangs and providing a clear error message for temporary index creation with set tablespace. {{<issue 19368>}} Enables index tablespace modification through the `ALTER INDEX SET TABLESPACE` command and regulates column statistics using the `ALTER INDEX ALTER COLUMN SET STATISTICS` command. Also, allows the creation and alteration of materialized views with the specified tablespace. Suppress the beta feature warning by enabling `ysqlbetafeaturetablespacealteration` flag. {{<issue 6639>}} Adds function to log the memory contexts of a specified backend process, enhancing memory usage monitoring and allowing users to troubleshoot memory-related issues more effectively. {{<issue 14025>}} Allows customizing retryable request timeouts to respect client-side YCQL and YSQL timings, optimizing log replay and preventing the tserver from rejecting requests that exceed durations. Adjusts default retryable request timeout to 660 seconds and offers a configuration to eliminate server-side retention of retryable requests with `FLAGSretryablerequesttimeoutsecs =0`. {{<issue 18736>}} Speeds up TServer Init by optimizing the handling of deleted and tombstoned tablets. It ensures faster startup by using a new flag `numopentabletsmetadatasimultaneously`, which sets the number of threads for opening tablet metadata. This allows for parallel opening of metadata, improving response times even in cases with large numbers of tablets. Additionally, the handling of tablets marked as `Deleted` or `Tombstoned` is managed asynchronously, marking tombstoned tablets as dirty for inclusion in the next heartbeat. {{<issue 15088>}} Logs all instances of tablet metadata creation/updation, enabling additional insights for troubleshooting in cases of multiple meta records for the same tablet. {{<issue 20042>}} Adds a 10-second delay (`autoflagsapplydelayms`) between AutoFlag config updates and their application, allowing all tservers to receive the new config before applying it. This change enhances configuration consistency and update safety. {{<issue 19932>}} Enhances thread safety by setting `Wthread-safety-reference` to check when guarded members are passed by reference and resolving all build errors resulting from this change. {{<issue 19365>}} Automates recovery of index tables impacted by a bug, preventing performance degradation and disk size leak, by ensuring schema.tableproperties.retaindelete_markers is reset to false when index backfilling is done. {{<issue 19731>}} Enhances the `demotesingleautoflag` yb-admin command by returning distinct error messages for invalid processname, flagname, or non-promoted flag, thereby aiding easier identification of errors. Replaces `HasSubstring` with `ASSERTSTR_CONTAINS` in the AutoFlags yb-admin test. {{<issue 20004>}} Introduces support for Upgrade and Downgrade of universes with xCluster links, enhancing compatibility checks for AutoFlags during these operations. Data replication between two universes is only catered if AutoFlags of the Target universe are compatible with the Source universe. The compatibility check, stored in `ProducerEntryPB`, triggers if the AutoFlag configuration changes during upgrades and rollbacks. This prevents unnecessary RPC calls if no AutoFlag configurations have changed. Also includes fixes for cds initialization bugs in `TestThreadHolder`. {{<issue 19518>}} Offers redesigned server level aggregation for metrics, thus introducing more metrics for enhanced debugging. Removes several unused URL parameters and makes the new output compatible with YBA and YBM, preventing double-counting issues in charts. Drops unused JSON and Prometheus callbacks from MetricEntity for a cleaner

{{<issue 18078>}} Allows a limit on the addition of new tablet replicas in a cluster to conserve CPU resources, with safeguards for downscaling. Introduces test flags for controlling memory reservation and tablet replica per core limits. {{<issue 16177>}} Introduces verbose logging for global and per table state transitions in the load balancer to facilitate easier debugging. {{<issue 20289>}} Reduces server initialization time by eliminating the accumulation of deleted tablet superblocks during startup, through a modification in the `DeleteTablet` operation. {{<issue 19840>}} Enables automatic recovery of index tables affected by a bug, verifying their backfilling status and correcting the `retaindeletemarkers` property to enhance performance. {{<issue 20247>}} Includes single shard (fast-path) transactions in the pg_locks by querying single shard waiters registered with the local waiting transaction registry at the corresponding Tserver, ensuring more complete transaction tracking and lock status reporting. {{<issue 18195>}} Creates Prometheus metrics for server hard and soft memory limits which allow detailed insight into TServer or master memory usage regardless of Google flag defaults; aids in creating dashboards charts to monitor utilization close to soft limit or TServer TCMalloc overhead. {{<issue 20578>}} Enables control over the batching of non-deferred indexes during backfill via a new flag, improving index management. {{<issue 20213>}} Corrects the CPU usage reporting in the sankey diagram by filtering nodes based on region selection on the performance page. {{<issue 19991>}} Repairs yugabyted-ui functionality when using custom YSQL and YCQL ports by passing values to yugabyted-ui, ensuring the correct operation of the user interface. {{<issue 20406>}} Reduces Proc struct consumption by enabling cleanup for killed background workers, preventing webserver start-up failure after 8 attempts. {{<issue 20154>}} Frees up large volumes of unused memory from the webserver after processing queries, enhancing periodic workloads by reallocating held memory to the OS more effectively. {{<issue 20040>}} Introduces two new boolean flags for YSQL webserver debugging and failure identification.The first will log every endpoint access and its list of arguments before running the path handler. The second will print basic tcmalloc stats after the path handler and garbage collection have run. {{<issue 20157>}} Rectifies an issue causing segmentation faults when the postmaster acquires already owned LWLock, enhancing stability during process cleanup. Uses KilledProcToCleanup instead of MyProc if acquiring locks under the postmaster. {{<issue 20166>}} Introduces two new boolean flags for YSQL webserver debugging and failure identification.The first will log every endpoint access and its list of arguments before running the path handler. The second will print basic tcmalloc stats after the path handler and garbage collection have run. {{<issue 20157>}} Restarts postmaster in critical sections.This applies to backend PG code; defines and improves handling of errors in these sections. {{<issue 20255>}} Introduces the `pgstatstatements.ybqtextsize_limit` flag to control the maximum file size read into memory, preventing system crashes due to oversized or corrupt qtext files. {{<issue 20211>}} Caps the number of attempts to read inconsistent backend entries to 1000 for safer operation and better visibility, limiting potential infinite loops in /rpcz calls and logging every hundredth attempt. {{<issue 20274>}} Resolves segmentation faults in the webserver SIGHUP handler during cleanup. {{<issue 20309>}} Display consistent wait-start times in `pg_locks` view for waiting transactions. {{<issue 18603>}},{{<issue 20120>}} Reduces excessive memory consumption during secondary index scans. {{<issue 20275>}} Allows the finalizeplan function to now apply finalizeprimnode on PushdownExprs, ensuring Parameter nodes in subplans transfer values accurately, especially in Parallel

{{<issue 19694>}} Return correct results when Batch Nested Loop join is used for queries involving Nested LEFT JOINs on LATERAL views. {{<issue 19642>}},{{<issue 19946>}} Upgrades "Unknown session" error to FATAL permitting drivers to instantly terminate stale connections, minimizing manual user intervention. {{<issue 16445>}} Rectifies correctness issues when BatchNestedLoop join is used and the join condition contained a mix of equality and non-equality filters. {{<issue 20531>}} Mitigates incorrect data entry into the default partition by incrementing the schema version when creating a new partition, enhancing data consistency across all connections. {{<issue 17942>}} Rectifies correctness issue when join on inequality condition and join columns contains NULL values. {{<issue 20642>}} Rectifies correctness issue when queries involving outer joins and aggregate use BNL. {{<issue 20660>}} Corrects the Batch Nested Loop's optimization logic for proper handling of cases where the given limit matches the outer table's exact size, ensuring accurate query results. {{<issue 20707>}} Prevents "Not enough live tablet servers to create table" error during ALTER TABLE SET TABLESPACE by correctly supplying the placement_uuid, even when creating a table in the same tablespace. {{<issue 14984>}} Addresses a bug that caused backup failure due to the absence of `ybcatalogversion`, by ensuring the function's existence post-normal migration. {{<issue 18507>}} Corrects an error in the aggregate scans' pushdown eligibility criteria to prevent wrong results from being returned when PG recheck is not expected, but YB preliminary check is required to filter additional rows. {{<issue 20709>}} Ensures the Linux `PDEATH_SIG` mechanism signals child processes of their parent process's exit, by correctly configuring all PG backends immediately after their fork from the postmaster process. {{<issue 20396>}} Fixes a MISMATCHED_SCHEMA error when upgrading from version 2.16 to 2.21 by introducing a 2-second delay for catalog version propagation when a breaking DDL statement is detected. {{<issue 20842>}} Return correct result for join queries using BatchNestedLoop join and DISTINCT scan using the range Index during inner table scan. {{<issue 20827>}} Renders a fix for memory corruption issue that caused failure in creating a valid execution plan for `SELECT DISTINCT` queries. Enables successful execution of queries without errors and prevents server connection closures by disabling `distinct pushdown`. This fix improves the stability and effectiveness of SELECT DISTINCT queries. {{<issue 20893>}} Eliminates unnecessary computation of range bounds in Index-Only Scan precheck condition, preventing crashes for certain queries. {{<issue 21004>}} Resolves potential `WriteQuery` leak issue in CQL workloads, ensuring proper execution and destruction of queries, while preventing possible tablet shutdown blockages during conflict resolution failure. {{<issue 19919>}} Mitigates the issue of uneven tablet partitions and multiple pollers writing to the same consumer tablet by only applying intents on the consumer that match the producer tablet's key range. If some keys/values are filtered out from a batch, it will not delete the consumer's intents, as they may be needed by subsequent applications. Also guarantees idempotency, even if some apply records stutter and fetch older changes. {{<issue 19728>}} Reduces chances of transaction conflicts upon promotion by delaying the sending of UpdateTransactionStatusLocation RPCs until after the first PROMOTED heartbeat response is received, enhancing transaction consistency and accuracy. {{<issue 17319>}} Sets `kMinAutoFlagsConfigVersion` to 1 to resolve flag configuration mismatch issue. {{<issue 19985>}} Unblocks single shard waiters once a blocking subtransaction rolls back, by applying identical conflict check logic for both distributed transactions and single shard

{{<issue 20113>}} Eliminates a race condition that can occur when simultaneous calls to `SendAbortToOldStatusTabletIfNeeded` try to send the abort RPC, thus preventing avoidable FATALs for failed geo promotions. {{<issue 17113>}} Fixes behavior of Tcmalloc sampling; deprecates the enableprocesslifetimeheapsampling flag in favor of directly setting profilersamplefreq_bytes for controlling tcmalloc sampling, enhancing control over sampling process. {{<issue 20236>}} Resolves instances of the leaderless tablet endpoint incorrectly reporting a tablet as leaderless post-leader change, by tweaking the detection logic to depend on the last occurrence of a valid leader, ensuring more accurate tablet reporting. {{<issue 20124>}} Allows early termination of ReadCommitted transactions with a `kConflict` error, enhancing overall system throughput by eliminating unnecessary blockages without waiting for the next rpc restart. {{<issue 20329>}} Fixes FATAL errors occurring during tablet participant shutdown due to in-progress RPCs by ensuring rpcs_.Shutdown is invoked after all status resolvers have been shut down. {{<issue 19823>}} Modifies SysCatalog tablet's retryable request retention duration to consider both YQL and YSQL client timeouts, reducing the likelihood of `request is too old` errors during YSql DDLs. {{<issue 20330>}} Handles backfill responses gracefully even when they overlap across multiple operations, reducing risks of crashes and errors due to network delays or slow masters. {{<issue 20510>}} Reintroduces bloom filters use during multi-row insert, improving conflict resolution and rectifying missing conflict issues, while also addressing GH 20648 problem. {{<issue 20398>}},{{<issue 20648>}} Fixes handling of duplicate placement blocks in under-replication endpoint for better compatibility and correct replica counting, preventing misrepresentation of under-replicated tablespaces. {{<issue 20657>}} Logs the first failure during setup replication instead of the last error, facilitating better error diagnosis. {{<issue 20689>}} Implements a retry mechanism to acquire the shared in-memory locks during waiter resumption. Rather than failing after a single attempt, it now schedules retrying until the request's deadline, reducing request failures due to heavy contention. {{<issue 20651>}},{{<issue 19032>}},{{<issue 19859>}} Reduces log warnings in normal situations by downgrading repeated waiter resumption alerts to VLOG(1), benefiting from the direct signaling of transaction resolution. {{<issue 19573>}} Disables the packed row feature for colocated tables to prevent possible write failures post complications, as a workaround while investigating issue 20638. {{<issue 21047>}} Resolves database deletion failures by skipping replication checks for dropped tables during the database drop process, addressing errors related to missing streams. {{<issue 21070>}} Addresses a race condition on kvstore.colocationtotable reading and permits packed row features for colocated tables, tackling undefined behaviors and failed table writes. {{<issue 20638>}} Disables the packed row feature for colocated tables to prevent the issue 20638 that causes subsequent write failures after certain compactions. {{<issue 21047>}} Corrects RPATH setting for OpenLDAP libraries, preventing the system from picking up wrong versions or failing to find them at all. {{<issue 21236>}} Corrects the computation of the `cdcsdksentlag` metric to prevent steep, disproportionate increases by updating the `lastsentrecord_time` when a `SafePoint` record is spotted, in addition to DMLs and `READ` ops. {{<issue 15415>}} Adjusts `tserver start` and `tserver stop` scripts to successfully terminate all running PG processes, irrespective of their PID digit count. {{<issue 19817>}} Updates the condition for HT lease reporting to ensure accurate leaderless tablet detection in RF-1 setup, preventing false alarms. {{<issue 20919>}} Build: `2.20.1.3-b3` Third-party licenses: , <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.20.1.3/yugabyte-2.20.1.3-b3-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i> <span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.20.1.3/yugabyte-2.20.1.3-b3-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/2.20.1.3/yugabyte-2.20.1.3-b3-el8-aarch64.tar.gz"> <i class="fa-brands fa-linux"></i> <span>Linux ARM</span> </a> </li> </ul> ```sh docker pull

``` Fixed index scans where a query with join on inequality condition incorrectly returns rows with NULL in the key column.{{<issue 20642>}} Restore bloom filter usage during multi-row insert. {{<issue 20398>}},{{<issue 20648>}} <!-- Build: `2.20.1.2-b1` Third-party licenses: , --> {{< warning title="Use 2.20.1.3 or later.">}} {{< /warning >}} Fix BNL local join lookup equality function. {{<issue 20531>}} Fix addition of new tables to stream metadata after drop table. {{<issue 20428>}} <!-- Build: `2.20.1.1-b4` Third-party licenses: , --> {{< warning title="Use 2.20.1.3 or later.">}} {{< /warning >}} In Read Committed Isolation, limit the number of retry attempts when the aborted query is retried. {{<issue 20359>}} Return correct results when Batch Nested Loop join is used for queries involving Nested LEFT JOINs on LATERAL views. {{<issue 19642>}},{{<issue 19946>}} Added a regression test for nested correlated subquery. {{<issue 20316>}} Fixed decimal type precision while decoding CDC record. {{<issue 20414>}} In Read Committed Isolation, immediately abort transactions when conflict is detected. {{<issue 20329>}} <!-- Build: `2.20.1.0-b97` Third-party licenses: , --> {{< warning title="Use 2.20.1.3 or later.">}} {{< /warning >}} Adjusts ysql_dump when run with `--include-yb-metadata` argument, to circumvent unnecessary automatic index backfilling. This avoids unnecessary RPC calls. {{<issue 19457>}} Imports the `pgcrypto: Check for error return of pxcipherdecrypt` upstream PostgreSQL patch; OpenSSL 3.0+ prerequisite. {{<issue 19732>}} Imports the upstream PG commit `Disable OpenSSL EVP digest padding in pgcrypto`; OpenSSL 3.0+ prerequisite. {{<issue 19733>}} Imports an upstream PostgreSQL commit that adds an alternative output when OpenSSL 3 doesn't load legacy modules; OpenSSL 3.0+ prerequisite. {{<issue 19734>}} Removes the need for a table scan when adding a new column with a `NOT NULL` constraint and a non-volatile `DEFAULT` value, enhancing ADD COLUMN operations. {{<issue 19355>}} Mitigates CVE-2023-39417 by importing a security-focused upstream Postgres commit from REL11STABLE for YSQL users. {{<issue 14419>}} Fixes CVE-2020-1720 by importing upstream Postgres commit from REL11STABLE, enabling support for `ALTER <object>DEPENDS ON EXTENSION` in future for objects like function, procedure, routine, trigger, materialized view, and index. {{<issue 14419>}} Modifies the planner to allow ordered index scans with IN conditions on lower columns; this takes advantage of the YB LSM indexes, which maintain index order. {{<issue 19576>}} Increase the oomscoreadj (Out of Memory score adjustment) of the YSQL webserver to 900, the same as PG backends, prioritizing its termination when it significantly consumes memory. {{<issue 20028>}} Blocks the use of advisory locks in YSQL, as they are currently unsupported. {{<issue 18954>}} Introduces `ybsilenceadvisorylocksnotsupportederror` as a temporary solution, avoiding disruption while users transition from the use of advisory locks. {{<issue 19974>}} Enable checks for trailing zeros in SST data files to help identify potential corruption. {{<issue 19691>}} Includes version information in the error message when the yb process crashes due to AutoFlags being enabled on an unsupported older version, enhancing the ease of identifying the issue. {{<issue 16181>}} Prints long trace logs with a continuation marker when a trace is split into multiple LOG(INFO) outputs. This is for log readability. {{<issue 19532>}},{{<issue 19808>}} Upgrades OpenSSL to version 3.0.8, disabling Linuxbrew builds and updating glog for stack unwinding based on the backtrace function. {{<issue 19736>}} Expands debug information to help investigate SELECT command errors that imply faults in read path processing or provisional record writing. {{<issue 19876>}} Adds support for `rocksdbmaxsstwriteretries` flag: maximum allowed number of attempts to write SST file in case of detected corruption after write (by default 0 which means no retries). Implemented for both flushes and

{{<issue 19730>}} Balances load during tablet creation across all drives, preventing bottlenecks and underutilized drives during remote-bootstrapping; uses total number of tablets assigned for tie-breaking. {{<issue 19846>}} Adds tserver page to display all ongoing Remote Bootstrap sessions, and shows the source of bootstrap sessions in the `Last Status` field, for improved visibility. {{<issue 19568>}} Enhances error reporting from XClusterPollers by storing just the error code instead of detailed status, making it safer against master and Tserver restarts and reducing memory usage. {{<issue 19455>}} Incorporates a JoinStringsLimitCount utility for displaying only the first 20 elements in a large array, saving memory and space while logging or reporting tablet IDs. {{<issue 19527>}} Adds a sanity check to prevent restoration of the initial sys catalog snapshot when the `masterjoinexisting_universe` flag is set. {{<issue 19357>}} Parallelizes RPCs in `DoGetLockStatus` to fetch locks swiftly, enhancing the database's response time while retrieving old transactions. {{<issue 18034>}} Simplifies xCluster replication failure debugging via a new `getautoflags_config` yb-admin command, returning the current AutoFlags config. {{<issue 20046>}} Enables automatic recovery of index tables affected by {{<issue 19544>}}, improving performance and disk size management by removing excess tombstones in the SST files. {{<issue 19731>}} Introduces verbose logging for global and per table state transitions in the load balancer to facilitate easier debugging. {{<issue 20289>}} Allows the catalog manager to eliminate erroneous entries from the `cdc_state` table for newly split tablets; prevents race conditions by reversing the order of operations during the `CleanUpCDCStreamsMetadata` process. {{<issue 19746>}} Resolves `0.0.0.0` to `127.0.0.1` as the IP for master, tserver and yugabyted-UI when `0.0.0.0` is specified as the `advertise_address` in `yugabyted start` command. {{<issue 18580>}} Ensures the yugabyted UI can fetch and display `Alert` messages from different nodes by adjusting the `/alerts` endpoint in the API server to include a `node_address` parameter. {{<issue 19972>}} Eliminates the deprecated `useinitialsyscatalogsnapshot` gflag in yugabyted, thus reducing log warning messages. {{<issue 20056>}} Better indentation of multi-line remote trace entry output, for readability. {{<issue 19758>}} Implements a preventative safeguard in tserver operations by adding a check that a tablet has explicitly been deleted before issuing a `DeleteTablet` command, minimizing data loss risks and enhancing reliability. This feature, enabled with `masterenabledeletioncheckfororphanedtablets=true`, is upgrade and downgrade safe. {{<issue 18332>}} Allows the postprocess script in `pgregress` to run on alternative expected files alongside `defaultexpectfile` and `platform_expectfile`, fixing unintended mismatches. {{<issue 19737>}} Prevents stuck PostgreSQL processes and ensures successful acquisition of locks in the future. This enhancement particularly aids in preventing deadlocks when creating replication slots with duplicate names. {{<issue 19509>}} Ensures OID uniqueness within a database in YB environment by introducing a new per-database OID allocator, avoiding risk of collisions across multiple nodes or tenants. This change is safe for upgrades and rollbacks, enabled by a new gflag `ysqlenablepgperdatabaseoidallocator`. {{<issue 16130>}} Prevents postmaster crashes during connection termination cleanup by using the killed process's `ProcStruct` to wait on a lock. {{<issue 18000>}} Fixes the distinct query iteration to distinguish between deleted and live keys; this prevents missing live rows during distinct queries on tables with dead tuples. {{<issue 19911>}} Fixes bug when type-checking bound tuple IN conditions involving binary columns like UUID. {{<issue 19753>}} Ensures PK modification does not disable Row-Level Security (RLS). {{<issue 19815>}} Tracks spinlock acquisition during process initialisation, and reduce the time to detect spinlock

{{<issue 18272>}},{{<issue 18265>}} Reverts to PG restart in rare event of process termination during initiation or cleanup; this avoids needing to determine what subset of shared memory items to clean. {{<issue 19945>}} Prevents unexpected crashes during plan creation when joining two varchar columns. Handles the derivation of `element_typeid` in Batched Nested Loop (BNL) queries; casts both sides to text to ensure valid equality expression. {{<issue 20003>}} Reduces Proc struct consumption by enabling cleanup for killed background workers, preventing webserver start-up failure after 8 attempts. {{<issue 20154>}} Frees up large volumes of unused memory from the webserver after processing queries, enhancing periodic workloads by reallocating held memory to the OS more effectively. {{<issue 20040>}} Introduces two new boolean flags for YSQL webserver debugging and failure identification.The first will log every endpoint access and its list of arguments before running the path handler. The second will print basic tcmalloc stats after the path handler and garbage collection have run. {{<issue 20157>}} Rectifies an issue causing segmentation faults when the postmaster acquires already owned LWLock, enhancing stability during process cleanup. Uses KilledProcToCleanup instead of MyProc if acquiring locks under the postmaster. {{<issue 20166>}} Improves insight into webserver memory usage `:13000/memz` and `:13000/webserver-heap-prof`, which print tcmalloc stats and display currents or peak allocations respectively. {{<issue 20157>}} Restarts postmaster in critical sections.This applies to backend PG code; defines and improves handling of errors in these sections. {{<issue 20255>}} Caps the number of attempts to read inconsistent backend entries to 1000 for safer operation and better visibility, limiting potential infinite loops in `/rpcz` calls and logging every hundredth attempt. {{<issue 20274>}} Resolves segmentation faults in the webserver SIGHUP handler during cleanup. {{<issue 20309>}} Allows the finalizeplan function to now apply finalizeprimnode on PushdownExprs, ensuring Parameter nodes in subplans transfer values accurately, especially in Parallel Queries. {{<issue 19694>}} Enables Masters to decrypt universe key registry correctly when Master turns into a leader following Remote Bootstrap. correctly when it turns into a leader. {{<issue 19513>}} Fixes metric retryable requests mem-tracker metric so it's aggregated at table-level {{<issue 19301>}} Ensure data consistency by checking if there is pending apply record, preventing the removal of large transactions that are still applying intents during bootstrap. {{<issue 19359>}} Prevents a write to freed memory; `RefinedStream::Connected` returns status instead of calling `context_->Destroy(status)`. {{<issue 19727>}} Allows serving remote bootstrap from a follower peer, i.e. initial remote log anchor request is at the follower's last logged operation id index, reducing probability of fallback to bootstrap from the leader; this could increase system efficiency under high load. {{<issue 19536>}} Corrects Master's tablet_overhead memory tracker to correctly display consumption, ensuring accurate reflection of data in Memory Breakdown UI page, and aligns MemTracker metric names between TServer and Master. {{<issue 19904>}} Resolves intermittent index creation failure for empty YCQL tables by validating the `isrunning` state instead of checking the index state directly; prevents inaccurate values in old indexes and ensuring `retaindelete_markers` are correctly set to false. {{<issue 19933>}} Addresses a deadlock issue during tablet shutdown with wait-queues enabled by modifying the Wait-Queue shutdown path to set shutdown flags during `StartShutdown` and process callbacks during `CompleteShutdown`. {{<issue 19867>}} Reduces race conditions in `MasterChangeConfigTest.TestBlockRemoveServerWhenConfigHasTransitioningServer` by letting asynchronous threads operate on `ExternalMaster` copies, not `current_masters`. {{<issue 19927>}} Allows only a single heap profile to run at a time, restricting concurrent profile runs to avoid misinterpretation of sampling frequency reset

{{<issue 19841>}} Eliminates misleading `Transaction Metadata Missing` errors during a deadlock by replacing them with more accurate deadlock-specific messages. {{<issue 20016>}} Fixes behavior of Tcmalloc sampling; deprecates the `enableprocesslifetimeheapsampling` flag in favor of directly setting `profilersamplefreq_bytes` for controlling tcmalloc sampling, enhancing control over sampling process. {{<issue 20236>}} Corrects a deadlock during the deletion of a database with CDC streams by ensuring namespace-level CDC stream does not add the same stream per table more than once. {{<issue 19879>}} Adds a check for a join flag to avoid error when starting two different local RF-1 YugabyteDB instances on mac {{<issue 20018>}} Rectifies the CentOS GCC11 and background worker asan build issues by utilizing stack allocation and eliminating the unsupported std::string::erase with const iterators. {{<issue 20147>}},{{<issue 20087>}} Fixes segmentation fault in stats collector after Postmaster reset by cleaning up after terminated backends and properly resetting shared memory and structures, resulting in improved stability and reliability of the system. {{<issue 19672>}} Allows custom port configurations in multi-region/zone YugabyteDB clusters to prevent connectivity problems during cluster setup. {{<issue 15334>}} <!-- Build: `2.20.0.2-b1` Third-party licenses: , --> {{< warning title="Use 2.20.1.3 or later.">}} {{< /warning >}} This is a , with no changes to the database. <!-- Build: `2.20.0.1-b1` Third-party licenses: , --> {{< warning title="Use 2.20.1.3 or later.">}} {{< /warning >}} ] [YSQL] Fix tuple IN condition type-checking in the presence of binary columns ] [DocDB] Fix Master's tabletoverhead memtracker zero consumption issue ] [DocDB] Avoid AdvanceToNextRow seeking past live rows upon detecting a deleted row during distinct iteration ] [DocDB] Backfill done may not be triggered for empty YCQL table <!-- Build: `2.20.0.0-b76` Third-party licenses: , --> {{< warning title="Use 2.20.1.3 or later.">}} {{< /warning >}} Support for OIDC token-based authentication via Azure AD. This allows YSQL database users to sign in to YugabyteDB universes using their JSON Web Token (JWT) as their password. Support for Transactional CDC. Wait-on conflict concurrency control with pg_locks. This feature is especially important to users that have workloads with many multi-tablet statements, which may have multiple sessions contending for the same locks concurrently. Wait-on conflict concurrency control helps avoid a deadlock scenario as well as ensure fairness so a session is not starved by new sessions. {{<badge/ea>}} Catalog metadata caching to improve YSQL connection scalability and performance with faster warm up times. {{<badge/ea>}} Support for ALTER COLUMN TYPE with on-disk changes is now {{<badge/ga>}} for production deployments. This feature expands ALTER TABLE capabilities with a broader range of data type modifications, including changes to the type itself, not just size

] [DocDB] Introduce the ability to Rollback And Demote an AutoFlag ] [CDCSDK] Change default checkpointing type to EXPLICIT while stream creating ] [YSQL] Uncouple variables `issinglerowtxn` from `isnon_transactional` ] [DocDB] Add metric for the number of running tablet peers on a YB-TServer ] [CDCSDK] Made maxAttempts and sleepTime for retrying RPCs configurable in AsyncClient ] [YSQL] YSQL DDL Atomicity Part 5: YB-Backup support ] [DocDB] Mechanisms to reject table creation requests based on cluster resources, switch the tablet limit gflags from test flags to runtime flags ] [DocDB] Add tracking for event stats metrics ] [DocDB] Prevent YB-TServer heartbeats to master leader in a different universe ] [DocDB] Resume waiters in consistent order across tablets ] [DocDB] Reject ChangeConfig requests for sys catalog when another server is amidst transition ] ] [DocDB] Throw consistent error on detected deadlocks ] [YSQL] Change default unit for `ybfetchsize_limit` to bytes from kilobytes ] [DocDB] Metric to track active WriteQuery objects ] [DocDB] Add estimated bytes/count to pprof memory pages ] [YSQL] [DocDB] Adopt the trace correctly in pgclientsession ] [xCluster] Add xCluster YB-TServer UI page, Switch to throughput in the YB-TServer UI pages from MiBps to KiBps ] [DocDB] Improved timeout handling for YCQL index scan ] [DocDB] Clear ResumedWaiterRunner queue during WaitQueue Shutdown ] [xCluster] Update xCluster apply safe time if there are no active transactions ] [CDCSDK] Publish snapshot_key in `GetCheckpointResponse` only if it is present ] [yugabyted] Password Authentication showing enabled in UI even when it's not turned on. ] [DocDB] Make re-tryable requests mem-tracker metric to be aggregated for Prometheus ] Harden more YSQL backends manager tests ] [xCluster] Introduce XClusterManager, Cleanup code on master and XClusterConsumer ] [DocDB] Support tracing UpdateConsensus API ] build: Move macOS support off of mac11 ] [CDCSDK] Add GFlag to disable tablet split on tables part of CDCSDK stream ] [DocDB] Allow Traces to get past Glog's 30k limit [YSQL] Disable backends manager by default [YSQL] Some extra logging in Postgres Automatically determine upstream branch name from local branch name ] [xCluster] Calculate replication lag metrics for split tablet children ] [DocDB] Prevent GC of any schema packings referenced in xCluster configuration ] ] [DocDB] Update TabletState only for tablets that are involved in write, Ignore statuses from old status tablet on promotion ] [DocDB] Don't pack rows without liveness column ] [xCluster] [TabletSplitting] Fix setting opid in cdc_state for split children ] [YSQL] Fix `pgstatactivity` taking exclusive lock on t-server session ] [DocDB] Don't update cache in LookupByIdRpc if the fetched tablet has been split ] [YSQL] Fix ALTER TYPE on temporary tables ] ] [YSQL] Fix ALTER TYPE null constraint violation and failure for range key tables ] [YSQL] Fix bug in computation of semi/anti join factors during inner unique joins ] [DocDB] PGSQL operation triggered during parent tablet shutting down may be not retried ] [YSQL] Fix table rewrite on a table referenced through a partitioned table's foreign key ] [YSQL] Fix bug where tuple IN filters were not bound to the request ] ] [yugabyted] Bugs regarding `--join` flag provided. ] [YSQL] Avoid O(n^2) complexity in list traversal while generating ybctid for IN operator ] [CDCSDK] Only delete removed tablets from `cdc_state` in `CleanUpCDCStreamsMetadata` ] [YSQL] Fix handling of case where a given RowCompareExpression cannot be bound ] [CDCSDK] Fix WAL GC issue for tables added after stream creation ] [CDCSDK] Only populate key to `GetChangesRequest` when it is not null, Set snapshot key from correct parameter in explicit checkpointing ] [YSQL] Single shard operations should pick read time only after conflict resolution ] [yugabyted] UI bugs ]