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 null
returns empty string #26532 - Fix the issue that the
having
clause might not work correctly #26496 - Fix the wrong execution results that occur when the collations around the
between
expression are different #27146 - Fix the wrong execution results that occur when the column in the
group_concat
function 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
extract
function is a negative duration #27236 - Fix the issue that inserting an invalid date does not report an error when the
SQL_MODE
is 'STRICT_TRANS_TABLES' #26762 - Fix the issue that using an invalid default date does not report an error when the
SQL_MODE
is 'NO_ZERO_IN_DATE' #26766
- Fix the issue that
Tools
TiCDC
- Set the compatible version from
5.1.0-alpha
to5.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-read
process - 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 SNAPSHOT
andSHOW 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
ENUM
type #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
FLOAT64
type is different with that of MySQL #23897 - Fix the issue that TiDB returns an
unknow
error while it should return thepd is timeout
error #26147 - Fix the wrong character set and collation for the
case when
expression #26662 - Fix the potential
can not found column in Schema column
error 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.DEADLOCKS
table #27400 - Fix the issue that the
TABLESAMPLE
query result from partitioned tables is not sorted as expected #27349 - Remove the unused
/debug/sub-optimal-plan
HTTP 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_SUBTRACTION
is set #26765 - Fix the issue that the
distinct
flag is missing whenApply
is 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 UPDATE
statement does not correctly lock the data when a normal table joins a partitioned table #26251 - Fix the issue that the
SELECT FOR UPDATE
statement returns an error when a normal table joins a partitioned table #26250 - Fix the issue that
PointGet
does 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-replicas
is 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
Snapshot
is 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
string
or[]byte
#2758 - Reduce gRPC window size to avoid OOM #2673
- Fix a gRPC
keepalive
error under high memory pressure #2202 - Fix a bug that an unsigned
tinyint
causes 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
ErrSchemaStorageTableMiss
error #2422 - Fix a bug that changefeed cannot be removed when TiCDC gets the
ErrGCTTLExceeded
error #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