Compatibility Changes
- Remove sensitive information in the slow query log and the statement summary table #18130
- Forbid negative value in the sequence cache #18103
- Remove tombstone TiKV and TiFlash stores from the
CLUSTER_INFO
table #17953 - Change the diagnostic rule from
current-load
tonode-check
#17660
New Features
- Support the
MEMORY_QUOTA()
hint inINSERT
statements #18101 - Support authentication based on the
SAN
field of TLS certificate #17698 - Support collation for the
REGEXP()
function #17581 - Support the
sql_select_limit
session and global variable #17604 - Support splitting the Region for the newly added partition by default #17665
- Support pushing the
IF()
/BITXOR()
/BITNEG()
/JSON_LENGTH()
functions to the TiFlash Coprocessor #17651 #17592 - Support a new aggregate function
APPROX_COUNT_DISTINCT()
to calculate the approximate result ofCOUNT(DISTINCT)
#18120 - Support collation in TiFlash and pushing collation-related functions to TiFlash #17705
- Add the
STATUS_ADDRESS
column in theINFORMATION_SCHEMA.INSPECTION_RESULT
table to indicate the status address of servers #17695 - Add the
SOURCE
column in theMYSQL.BIND_INFO
table to indicate the how the bindings are created #17587 - Add the
PLAN_IN_CACHE
andPLAN_CACHE_HITS
columns in thePERFORMANCE_SCHEMA.EVENTS_STATEMENTS_SUMMARY_BY_DIGEST
table to indicate the plan cache usage of SQL statements #17493 - Add the
enable-collect-execution-info
configuration item and thetidb_enable_collect_execution_info
session variable to control whether to collect execution information of each operator and record the information in the slow query log #18073 #18072 - Add the
tidb_slow_log_masking
global variable to control whether to desensitize the queries in slow query log #17694 - Add a diagnostic rule in the
INFORMATION_SCHEMA.INSPECTION_RESULT
table for thestorage.block-cache.capacity
TiKV configuration item #17671 - Add the
BACKUP
andRESTORE
SQL statements to back up and restore data #15274
Improvements
- Reduce the query latency caused by the Golang memory allocation when CM-Sketch consumes too much memory #17545
- Reduce the QPS recovery duration of a cluster when a TiKV server is in the failure recovery process #17681
- Support pushing aggregate functions to TiKV/TiFlash Coprocessor on partition tables #17655
- Improve the accuracy of row count estimation for index equal conditions #17611
Bug Fixes
- Fix the issue of incorrect execution plan obtained from the plan cache after
tidb_isolation_read_engines
is changed #17570 - Fix the occasional runtime error that occurs when executing the
EXPLAIN FOR CONNECTION
statement #18124 - Fix the incorrect result of the
last_plan_from_cache
session variable in some cases #18111 - Fix the runtime error that occurs when executing the
UNIX_TIMESTAMP()
function from the plan cache #18002 #17673 - Fix the runtime error when the child of
HashJoin
executor returns theNULL
column #17937 - Fix the runtime error caused by concurrently executing the
DROP DATABASE
statement and other DDL statements in the same database #17659 - Fix the incorrect result of the
COERCIBILITY()
function on user variables #17890 - Fix the issue that the
IndexMergeJoin
executor occasionally gets stuck #18091 - Fix the hang issue of the
IndexMergeJoin
executor when out of memory quota and query cancelling is triggered #17654 - Fix the excessive counting memory usage of the
Insert
andReplace
executors #18062 - Fix the issue that the data replication to TiFlash storage is stopped when
DROP DATABASE
andDROP TABLE
are executed concurrently in the same database #17901 - Fix the
BACKUP
/RESTORE
failure between TiDB and the object storage service #17844 - Fix the incorrect error message of privilege check failure when access is denied #17724
- Discard the query feedbacks generated from the
DELETE
/UPDATE
statement #17843 - Forbid altering
AUTO_RANDOM_BASE
for a table withoutAUTO_RANDOM
property #17828 - Fix the issue that some system tables cannot be accessed when setting the value of
tidb_isolation_read_engines
withouttidb
#17719 - Fix the inaccurate result of JSON comparison on large integers and float values #17717
- Fix the incorrect decimal property for the result of the
COUNT()
function #17704 - Fix the incorrect result of the
HEX()
function when the type of input is the binary string #17620 - Fix the issue that an empty result is returned when querying the
INFORMATION_SCHEMA.INSPECTION_SUMMARY
table without filter condition #17697 - Fix the issue that the hashed password used by the
ALTER USER
statement to update user information is unexpected #17646 - Support collation for
ENUM
andSET
values #17701 - Fix the issue that the timeout mechanism for pre-splitting Regions does not work when creating a table #17619
- Fix the issue that the schema is unexpectedly updated when a DDL job is retried, which might break the atomicity of DDL jobs #17608
- Fix the incorrect result of the
FIELD()
function when the argument contains the column #17562 - Fix the issue that the
max_execution_time
hint does not work occasionally #17536 - Fix the issue that the concurrency information is redundantly printed in the result of
EXPLAIN ANALYZE
#17350 - Fix the incompatible behavior of
%h
on theSTR_TO_DATE
function #17498 - Fix the issue that the follower/learner keeps retrying when
tidb_replica_read
is set tofollower
and there is a network partition between the leader and the follower/learner #17443 - Fix the issue that TiDB sends too many pings to PD follower in some cases #17947
- Fix the issue that the range partition table of older versions cannot be loaded in TiDB v4.0 #17983
- Fix the SQL statement timeout issue when multiple Region requests fail at the same time by assigning different
Backoffer
for each Region #17585 - Fix the MySQL incompatible behavior when parsing
DateTime
delimiters #17501 - Fix the issue that TiKV requests are occasionally sent to the TiFlash server #18105