TiDB 5.1.2 Release Notes
Release Date: September 27, 2021
TiDB version: 5.1.2
Compatibility changes
TiDB
The following bug fixes change execution results, which might cause upgrade incompatibilities:
- Fix the issue that
greatest(datetime) union nullreturns empty string #26532 - Fix the issue that the
havingclause might not work correctly #26496 - Fix the wrong execution results that occur when the collations around the
betweenexpression are different #27146 - Fix the wrong execution results that occur when the column in the
group_concatfunction has a non-bin collation #27429 - Fix an issue that using a
count(distinct)expression on multiple columns returns wrong result when the new collation is enabled #27091 - Fix the result wrong that occurs when the argument of the
extractfunction is a negative duration #27236 - Fix the issue that inserting an invalid date does not report an error when the
SQL_MODEis 'STRICT_TRANS_TABLES' #26762 - Fix the issue that using an invalid default date does not report an error when the
SQL_MODEis 'NO_ZERO_IN_DATE' #26766
- Fix the issue that
Tools
TiCDC
- Set the compatible version from
5.1.0-alphato5.2.0-alpha#2659
- Set the compatible version from
Improvements
TiDB
- Trigger auto-analyze by histogram row count and increase the accuracy of this trigger action #24237
TiKV
PD
TiFlash
- Support the
DATE()function - Add Grafana panels for write throughput per instance
- Optimize the performance of the
leader-readprocess - Accelerate the process of canceling MPP tasks
- Support the
Tools
TiCDC
- Optimize memory management when the Unified Sorter is using memory to sort data #2553
- Optimize workerpool for fewer goroutines when concurrency is high #2211
- Reduce goroutine usage when a table's Region transfer away from a TiKV node #2284
- Add a global gRPC connection pool and share gRPC connections among KV clients #2534
- Prohibit operating TiCDC clusters across major and minor versions #2599
Dumpling
- Support backing up MySQL-compatible databases that do not support
START TRANSACTION ... WITH CONSISTENT SNAPSHOTandSHOW CREATE TABLE#309
- Support backing up MySQL-compatible databases that do not support
Bug fixes
TiDB
- Fix the potential wrong results of index hash join when the hash column is the
ENUMtype #27893 - Fix a batch client bug that recycle idle connection might block sending requests in some rare cases #27678
- Fix the issue that the overflow check of the
FLOAT64type is different with that of MySQL #23897 - Fix the issue that TiDB returns an
unknowerror while it should return thepd is timeouterror #26147 - Fix the wrong character set and collation for the
case whenexpression #26662 - Fix the potential
can not found column in Schema columnerror for MPP queries #28148 - Fix a bug that TiDB might panic when TiFlash is shutting down #28096
- Fix the issue of wrong range caused by using
enum like 'x%'#27130 - Fix the Common Table Expression (CTE) dead lock issue when used with IndexLookupJoin #27410
- Fix a bug that retryable deadlocks are incorrectly recorded into the
INFORMATION_SCHEMA.DEADLOCKStable #27400 - Fix the issue that the
TABLESAMPLEquery result from partitioned tables is not sorted as expected #27349 - Remove the unused
/debug/sub-optimal-planHTTP API #27265 - Fix a bug that the query might return wrong results when the hash partitioned table deals with unsigned data #26569
- Fix a bug that creating partition fails if
NO_UNSIGNED_SUBTRACTIONis set #26765 - Fix the issue that the
distinctflag is missing whenApplyis converted toJoin#26958 - Set a block duration for the newly recovered TiFlash node to avoid blocking queries during this time #26897
- Fix a bug that might occur when the CTE is referenced more than once #26212
- Fix a CTE bug when MergeJoin is used #25474
- Fix a bug that the
SELECT FOR UPDATEstatement does not correctly lock the data when a normal table joins a partitioned table #26251 - Fix the issue that the
SELECT FOR UPDATEstatement returns an error when a normal table joins a partitioned table #26250 - Fix the issue that
PointGetdoes not use the lite version of resolving lock #26562
- Fix the potential wrong results of index hash join when the hash column is the
TiKV
- Fix a panic issue that occurs after TiKV is upgraded from v3.x to later versions #10902
- Fix the potential disk full issue caused by corrupted snapshot files #10813
- Make the slow log of TiKV coprocessor only consider the time spent on processing requests #10841
- Drop log instead of blocking threads when the slogger thread is overloaded and the queue is filled up #10841
- Fix a panic issue that occurs when processing Coprocessor requests times out #10852
- Fix the TiKV panic issue that occurs when upgrading from a pre-5.0 version with Titan enabled #10842
- Fix the issue that TiKV of a newer version cannot be rolled back to v5.0.x #10842
- Fix the issue that TiKV might delete files before ingesting data to RocksDB #10438
- Fix the parsing failure caused by the left pessimistic locks #26404
PD
- Fix the issue that PD does not fix the down peers in time #4077
- Fix the issue that the replica count of the default placement rules stays constant after
replication.max-replicasis updated #3886 - Fix a bug that PD might panic when scaling out TiKV #3868
- Fix a bug that the hot Region scheduler cannot work when the cluster has the evict leader scheduler #3697
TiFlash
- Fix the issue of unexpected results when TiFlash fails to establish MPP connections
- Fix the potential issue of data inconsistency that occurs when TiFlash is deployed on multiple disks
- Fix a bug that MPP queries get wrong results when TiFlash server is under high load
- Fix a potential bug that MPP queries hang forever
- Fix the panic issue when operating store initialization and DDL simultaneously
- Fix a bug of incorrect results that occurs when queries contain filters like
CONSTANT,<,<=,>,>=, orCOLUMN - Fix the potential panic issue when
Snapshotis applied simultaneously with multiple DDL operations - Fix the issue that the store size in metrics is inaccurate under heavy writing
- Fix the potential issue that TiFlash cannot garbage-collect the delta data after running for a long time
- Fix the issue of wrong results when the new collation is enabled
- Fix the potential panic issue that occurs when resolving locks
- Fix a potential bug that metrics display wrong values
Tools
Backup & Restore (BR)
- Fix the issue that the average speed is not accurate during data backup and restore #1405
Dumpling
TiCDC
- Fix a bug that the JSON encoding might cause panic when processing a string type value that is
stringor[]byte#2758 - Reduce gRPC window size to avoid OOM #2673
- Fix a gRPC
keepaliveerror under high memory pressure #2202 - Fix a bug that an unsigned
tinyintcauses TiCDC to panic #2648 - Fix an empty value issue in TiCDC Open Protocol. An empty value is no longer output when there is no change in one transaction. #2612
- Fix a bug in DDL handling during manual restarts #2603
- Fix the issue that
EtcdWorker's snapshot isolation might be wrongly violated when managing the metadata #2559 - Fix a bug that multiple processors might write data to the same table when TiCDC is rescheduling the table #2230
- Fix a bug that changefeed might be reset unexpectedly when TiCDC gets the
ErrSchemaStorageTableMisserror #2422 - Fix a bug that changefeed cannot be removed when TiCDC gets the
ErrGCTTLExceedederror #2391 - Fix a bug that TiCDC fails to synchronize large tables to cdclog #1259 #2424
- Fix a bug that the JSON encoding might cause panic when processing a string type value that is