Timestamp parsing is now consistent between prepared and non-prepared statements. #16327
If a prepared statement is invalidated by a schema change, it now returns an error instead of an incorrect result. #16335
The replica allocator will no longer remove replicas from a down node if there are no live nodes to receive them. #16218
ConditionalPut failures during initial migrations are now handled gracefully. #16244
EXPLAIN (TRACE) and the sql.trace.txn.enable_threshold cluster setting now work even when the trace.debug.enablecluster setting is false (the default). #16217
Improved the ability of a cluster to restart with some nodes missing. #16353
Backup URLs are now sanitized before being written to the system jobs table. #16386
cockroach zone set with an incomplete config for the special system ranges now merges the given config with the default instead of using zeros. #16212
Performance Improvements
Improved performance of MVCC garbage collection. #16219#16231