All Versions
64
Latest Version
Avg Release Cycle
28 days
Latest Release
1334 days ago

Changelog History
Page 3

  • v3.0.16 Changes

    July 06, 2020

    πŸ‘Œ Improvements

    • πŸ‘Œ Support the is null filter condition in hash partition pruning #17308
    • ⏱ Assign different Backoffers to each Region to avoid the SQL timeout issue when multiple Region requests fail at the same time #17583
    • Split separate Regions for the newly added partition #17668
    • ⚑️ Discard feedbacks generated from the delete or update statement #17841
    • πŸ‘· Correct the usage of json.Unmarshal in job.DecodeArgs to be compatible with future Go versions #17887
    • βœ‚ Remove sensitive information in the slow query log and the statement summary table #18128
    • Match the MySQL behavior with DateTime delimiters #17499
    • πŸ– Handle %h in date formats in the range that is consistent with MySQL #17496

    πŸ› Bug Fixes

    • πŸ›  Fix the data inconsistency issue occurred because the lock of a written and deleted primary key in one transaction is resolved by another transaction #18248
    • πŸ›  Fix the Got too many pings gRPC error log in the PD server-side followers 17944
    • πŸ›  Fix the panic issue that might occur when the child of HashJoin returns the TypeNull column #17935
    • πŸ›  Fix the error message when access is denied #17722
    • πŸ›  Fix JSON comparison issue for the int and float types #17715
    • ⚑️ Update the failpoint which causes data race #17710
    • πŸ›  Fix the issue that the timeout pre-split Regions might not work when creating tables #17617
    • πŸ›  Fix the panic caused by ambiguous error messages after the sending failure #17378
    • πŸ›  Fix the issue that FLASHBACK TABLE might fail in some special cases #17165
    • πŸ›  Fix the issue of inaccurate range calculation results when statements only have string columns #16658
    • Fix the query error occurred when the only_full_group_by SQL mode is set #16620
    • πŸ›  Fix the issue that the field length of results returned from the case when function is inaccurate #16562
    • πŸ›  Fix the type inference for the decimal property in the count aggregate function #17702
  • v3.0.15 Changes

    June 05, 2020

    πŸ†• New Features

    • Forbid the query in partition tables to use the plan cache feature #16759
    • πŸ‘Œ Support the admin recover index and admin check index statements on partition tables #17315 #17390
    • πŸ‘Œ Support partition pruning of the in condition for Range partition tables #17318
    • ⚑️ Optimize the output of SHOW CREATE TABLE, and add quotation marks to the partition name #16315
    • πŸ‘Œ Support the ORDER BY clause in the GROUP_CONCAT function #16988
    • 🐎 Optimize the memory allocation mechanism of CMSketch statistics to reduce the impact of garbage collection (GC) on performance #17543

    πŸ› Bug Fixes

    • πŸ‘‰ Use deep copy to copy the enum and set type data in the Hash aggregate function; fix an issue of correctness #16890
    • πŸ›  Fix the issue that PointGet returns incorrect results because of the wrong processing logic of integer overflow #16753
    • πŸ›  Fix the issue of incorrect results caused by incorrect processing logic when the CHAR() function is used in the query predicate #16557
    • πŸ›  Fix the issue of inconsistent results in the storage layer and calculation layer of the IsTrue and IsFalse functions #16627
    • πŸ›  Fix the incorrect NotNull flags in some expressions, such as case when #16993
    • πŸ›  Fix the issue that the optimizer cannot find a physical plan for TableDual in some scenarios #17014
    • πŸ›  Fix the issue that the syntax for partition selection does not take effect correctly in the Hash partition table #17051
    • πŸ›  Fix the inconsistent results between TiDB and MySQL when XOR operates on a floating-point number #16976
    • πŸ›  Fix the error that occurs when executing DDL statement in the prepared manner #17415
    • πŸ›  Fix the incorrect processing logic of computing the batch size in ID allocator #17548
    • Fix the issue that the MAX_EXECUTION_TIME SQL hint does not take effect when exceeding the expensive threshold #17534
  • v3.0.12 Changes

    March 16, 2020

    Compatibility Changes

    • Fix the issue of inaccurate timing of prewrite binlog in slow query log. The original timing field was called Binlog_prewrite_time. After this fix, the name is changed to Wait_prewrite_binlog_time #15276

    πŸ†• New Features

    • πŸ‘Œ Support dynamic loading of the replaced certificate file by using the alter instance statement #15080, #15292
    • βž• Add the cluster-verify-cn configuration item. After configuration, the status service can only be used when with the corresponding CN certificate #15164
    • βž• Add a flow limiting feature for DDL requests in each TiDB server to reduce the error reporting frequency of DDL request conflicts #15148
    • πŸ‘Œ Support exiting of the TiDB server when binlog write fails #15339

    πŸ›  Bugfixes

    • πŸ‘‰ Make GRANT, REVOKE guarantee atomicity when modifying multiple users #15092
    • πŸ›  Fix the issue that the locking of pessimistic lock on the partition table failed to lock the correct row #15114
    • πŸ”§ Make the error message display according to the value of max-index-length in the configuration when the index length exceeds the limit #15130
    • πŸ›  Fix the incorrect decimal point issue of the FROM_UNIXTIME function #15270
    • πŸ›  Fix the issue of conflict detection failure or data index inconsistency caused by deleting records written by oneself in a transaction #15176
  • v3.0.11 Changes

    March 04, 2020

    Compatibility Changes

    • βž• Add the max-index-length configuration item to control the maximum index length, which is compatible with the behavior of TiDB versions before 3.0.7 or of MySQL #15057

    πŸ†• New Features

    • πŸ‘Œ Support showing the meta information of partitioned tables in the information_schema.PARTITIONS table #14849

    πŸ›  Bugfixes

    • πŸ›  Fix the issue of Goroutine leaks when retrying an optimistic transaction because queries using Union are not marked read-only #15076
    • Fix the issue that SHOW TABLE STATUS fails to correctly output the table status at the snapshot time because the value of the tidb_snapshot parameter is not correctly used when executing the SET SESSION tidb_snapshot = 'xxx'; statement #14391
    • πŸ›  Fix the incorrect result caused by a SQL statement that contains Sort Merge Join and ORDER BY DESC at the same time #14664
    • πŸ›  Fix the panic of TiDB server when creating partition tables using the unsupported expression. The error information This partition function is not allowed is returned after fixing this panic. #14769
    • πŸ›  Fix the incorrect result occurred when executing the select max() from subquery statement with the subquery containing Union #14944
    • πŸ›  Fix the issue that an error message is returned when executing the SHOW BINDINGS statement after executing DROP BINDING that drops the execution binding #14865
    • πŸ›  Fix the issue that the connection is broken because the maximum length of an alias in a query is 256 characters in the MySQL protocol, but TiDB does not [cut the alias] (https://dev.mysql.com/doc/refman/8.0/en/identifier-length.html) in the query results according to this protocol #14940
    • πŸ›  Fix the incorrect query result that might occur when using the string type in DIV. For instance, now you can correctly execute the select 1 / '2007' div 1 statement 14098
  • v3.0.10 Changes

    February 20, 2020

    ⚑️ SQL Optimizer

    • πŸ›  Fix the incorrect time zone results when the unixtimestamp expression calculates the time zone of the table partitions #14476
    • πŸ›  Fix the system panic issue caused by incorrect processing logic during CM-Sketch statistics initialization #14470
    • πŸ›  Fix the issue that the default database name of the SQL statement in SQL bindings is set incorrectly #14548
    • πŸ›  Fix the issue that json_key is not compatible with MySQL #14561
    • βž• Add the feature of automatically updating the statistics of partitioned tables #14566
    • πŸ›  Fix the issue that the plan ID changes when the PointGet operation is executed (the plan ID is expected to be 1 always) #14595
    • πŸ›  Fix the system panic issue caused by incorrect processing logic when SQL bindings do not match exactly #14263
    • πŸ›  Fix the issue that characters in JSON such as &, < and > are incorrectly escaped #14637
    • πŸ›  Fix the panic issue caused by incorrect processing logic when an SQL binding processes illegal records #14645
    • πŸ›  Fix a MySQL incompatibility issue by adding Truncated error detection to decimal division calculation #14673
    • SQL Execution Engine
    • πŸ›  Fix wrong Join results when IndexLookUpJoin uses OtherCondition to construct InnerRange #14599
    • Correct the expression name of the IsTrue function #14516
    • πŸ›  Fix the system panic issue caused by excessive memory usage when the HashJoin operation is building a hash table #14642

    Transaction

    • πŸ›  Fix the issue that data visibility does not meet expectations due to transaction timeout when executing PointGet operations #14480
    • πŸ”„ Change the timing of pessimistic transaction activation to delayed activation, consistent with the optimistic transaction mode #14474

    Server

    • Delete the tidb_pprof_sql_cpu configuration item and add the tidb_pprof_sql_cpu variable #14416
    • πŸ›  Fix the issue that users can query all databases only when they have global privileges #14386
    • Add the tidb_session_statement_deadlock_detect_duration_seconds monitoring item to monitor deadlock detection duration #14484
    • πŸ›  Fix the system panic issue caused by some logic errors of GC workers #14439
    • πŸ›  Fix the issue that some memory usage is counted inaccurately #14533
    • Add the tidb_session_statement_pessimistic_retry_count monitoring item to monitor the number of retries after the failure to lock pessimistic transactions #14619
    • πŸ›  Fix the incorrect privilege check for show binding statements #14618
    • πŸ›  Fix the issue that the query cannot be killed because the backoff logic does not include checking the killed tag #14614
    • πŸ‘Œ Improve the performance of statement summary by reducing the time to hold internal locks #14627
    • πŸ›  Fix the issue that TiDB's result of parsing strings to time is incompatible with MySQL #14570
    • πŸ”Š Record the user login failures in audit logs #14620
    • Add the tidb_session_ statement_lock_keys_count monitoring item to monitor the number of lock keys for pessimistic transactions #14634
    • πŸ›  Fix the issue of successfully granting users privileges on a table that does not exist #14611
  • v3.0.9 Changes

    January 14, 2020

    Executor

    • πŸ›  Fix the incorrect result when the aggregate function is applied to the ENUM column and the collection column #14364

    Server

    • Support system variables auto_increment_increment and auto_increment_offset #14396
    • Add the tidb_tikvclient_ttl_lifetime_reach_total monitoring metric to monitor the number of pessimistic transactions with a TTL of 10 minutes #14300
    • 🌲 Output the SQL information in the log when the SQL query causes a panic during its execution #14322
    • βž• Add the plan and plan_digest fields in the statement summary table to record the plan that is being executed and the plan signature #14285
    • πŸ”§ Adjust the default value of the stmt-summary.max-stmt-count configuration item from 101 to 200 #14285
    • βž• Add the plan_digest field in the slow query table to record the plan signature #14292

    DDL

    • πŸ›  Fix the issue that the results of anonymous indexes created using alter table ... add index on the primary column is inconsistent with MySQL #14310
    • πŸ›  Fix the issue that VIEWs are mistakenly dropped by the drop table syntax #14052

    Planner

    • 🐎 Optimize the performance of statements such as select max(a), min(a) from t. If an index exists in the a column, the statement is optimized to select * from (select a from t order by a desc limit 1) as t1, (select a from t order by a limit 1) as t2 to avoid full table scan #14410
  • v3.0.8 Changes

    December 31, 2019

    ⚑️ SQL Optimizer

    • πŸ›  Fix the wrong SQL binding plan caused by untimely cache updates #13891
    • πŸ›  Fix the issue that the SQL binding might be invalid when an SQL statement contains a symbol list #14004
    • πŸ›  Fix the issue that an SQL binding cannot be created or deleted because an SQL statement ends with ; #14113
    • πŸ›  Fix the issue that a wrong SQL query plan might be selected because the PhysicalUnionScan operator sets wrong statistics #14133
    • βœ‚ Remove the minAutoAnalyzeRatio restriction to make autoAnalyze triggers more frequently at some scenarios and improve the precision of the statistics #14015

    SQL Execution Engine

    • πŸ›  Fix issues that the INSERT/REPLACE/UPDATE ... SET ... = DEFAULT syntax might report an error and combining the usage of the DEFAULT expression with a virtual generated column might report an error #13682
    • πŸ›  Fix the issue that the INSERT statement might report an error when converting a string to a float #14011
    • πŸ›  Fix the issue that sometimes the aggregate operation is low effective because the concurrency value of the HashAgg executor is incorrectly initialized #13811
    • πŸ›  Fix the issue that an error is reported in the execution ofgroup by item when the clause is in the parentheses #13658
    • πŸ›  Fix the issue that the execution of OUTER JOIN might report an error because TiDB incorrectly calculates group by item #14014
    • πŸ›  Fix the issue that the error message is inaccurate when Range-exceeding data is written into Range partitioned tables #14107
    • βͺ Revert PR #10124 and cancel the PadCharToFullLength effect to avoid unexpected query results in special cases, considering that MySQL 8 will discard PadCharToFullLength soon #14157
    • πŸ›  Fix the goroutine leak issue when executing the EXPLAIN ANALYZE statement caused by unguaranteed close() calling in ExplainExec #14226

    DDL

    • ⚑️ Optimize the error message output of change column/modify column to make it easier to understand #13796
    • βž• Add the SPLIT PARTITION TABLE syntax to support splitting Regions for partitioned tables #13929
    • πŸ›  Fix the issue that the index length exceeds 3072 bytes and no error is reported because the index length is incorrectly checked when an index is created #13779
    • πŸ›  Fix the issue that the GC life time is shorter than transaction duration error message might be reported because it takes too much time to add an index in partitioned tables #14132
    • Fix the panic when SELECT * FROM information_schema.KEY_COLUMN_USAGE is executed because the foreign key is not checked when DROP COLUMN/MODIFY COLUMN/CHANGE COLUMN is executed #14105

    Server

    • Statement Summary improvements:
      • Add a large number of SQL metric fields to facilitate analyzing SQL statements in more detail #14151, #14168
      • Add the stmt-summary.refresh-interval parameter to control whether to move the stale data from the events_statements_summary_by_digest table to the events_statements_summary_by_digest_history table (the default interval: 30 minutes) #14161
      • Add the events_statements_summary_by_digest_history table to save the stale data in events_statements_summary_by_digest #14166
    • πŸ›  Fix the issue that the binlog is incorrectly output when RBAC-related internal SQL statements are executed #13890
    • βž• Add the server-version configuration item to control the feature of modifying the TiDB server version #13906
    • βž• Add the feature of using the HTTP interface to recover writing the TiDB binlog #13892
    • ⚑️ Update the privilege required by GRANT roles TO user from GrantPriv to ROLE_ADMIN or SUPER, to keep consistency with the MySQL behavior #13932
    • Modify the TiDB behavior from using the current database to reporting the No database selected error when the GRANT statement does not specify a database name, to keep compatibility with the MySQL behavior #13784
    • Modify the execution privilege for the REVOKE statement from SuperPriv to REVOKE being executable only if the user has the privilege for the corresponding schema, to keep consistency with the MySQL behavior #13306
    • πŸ›  Fix the issue that GrantPriv is mistakenly granted to the target user when the GRANT ALL syntax does not contain WITH GRANT OPTION #13943
    • πŸ›  Fix the issue that the error message does not contain the cause for the LOAD DATA statement’s wrong behavior when LoadDataInfo fails to call addRecord #13980
    • πŸ›  Fix the issue that wrong slow query information is output because multiple SQL statements in a query share the same StartTime #13898
    • πŸ›  Fix the issue that the memory might leak when batchClient processes a large transaction #14032
    • Fix the issue that system_time_zone is always displayed as CST and now TiDB’s system_time_zone is obtained from systemTZ in the mysql.tidb table #14086
    • πŸ›  Fix the issue that the GRANT ALL syntax does not grant all privileges to the user #14092
    • Fix the issue that the Priv_create_user privilege is invalid for CREATE ROLE and DROP ROLE #14088
    • Modify the error code of ErrInvalidFieldSize from 1105(Unknow Error) to 3013#13737
    • βž• Add the SHUTDOWN command to stop a TiDB server and add the ShutdownPriv privilege #14104
    • πŸ›  Fix the atomicity issue for the DROP ROLE statement to avoid some roles being deleted unexpectedly when TiDB fails to execute a statement #14130
    • Fix the issue that the tidb_enable_window_function in the SHOW VARIABLE result incorrectly outputs 1 when a TiDB version is upgraded to 3.0, and replace the wrong result with 0#14131
    • πŸ›  Fix the issue that the goroutine might leak because gcworker continuously retries when the TiKV node is offline #14106
    • 🌲 Record the binlog Prewrite time in the slow query log to improve the usability for issue tracking #14138
    • Make the tidb_enable_table_partition variable support GLOBAL SCOPE #14091
    • πŸ›  Fix the issue that the user privilege might be missing or mistakenly added because the newly added privilege is not correctly granted to the corresponding user when a new privilege is added #14178
    • πŸ›  Fix the issue that the CheckStreamTimeoutLoop goroutine might leak because rpcClient does not close when the TiKV server is disconnected #14227
    • πŸ‘Œ Support certificate-based authentication (User document) #13955

    Transaction

    • Update the default value of the tidb_txn_mode variable from ”” to ”pessimistic” when a new cluster is created #14171
    • πŸ›  Fix the issue that the lock waiting time is too long for a pessimistic transaction because the lock waiting time for a single statement is not reset when a transaction is retried #13990
    • πŸ›  Fix the issue that wrong data might be read because unmodified data is unlocked for the pessimistic transaction model #14050
    • πŸ›  Fix repeated insert value restriction checks because transaction types are not distinguished when prewrite is performed in mocktikv #14175
    • πŸ›  Fix the panic because transactions are not correctly handled when session.TxnState is Invalid #13988
    • πŸ›  Fix the issue that the ErrConfclit structure in mocktikv does not contain ConflictCommitTS #14080
    • πŸ›  Fix the issue that the transaction is blocked because TiDB does not correctly check lock timeout after resolving the lock #14083

    Monitor

    • πŸ”’ Add the pessimistic_lock_keys_duration monitoring item in LockKeys #14194
  • v3.0.4

    October 08, 2019
  • v3.0.3 Changes

    August 29, 2019

    ⚑️ SQL Optimizer

    • Add the opt_rule_blacklist table to disable logic optimization rules such as aggregation_eliminate and column_prune #11658
    • πŸ›  Fix the issue that incorrect results might be returned for Index Join when the join key uses a prefix index or an unsigned index column that is equal to a negative value #11759
    • πŸ›  Fix the issue that " or \ in the SELECT statements of create ... binding ... might result in parsing errors #11726

    SQL Execution Engine

    • πŸ›  Fix the issue that type errors in the return value might occur when the Quote function handles a null value #11619
    • πŸ›  Fix the issue that incorrect results for Ifnull might be returned when Max/min is used for type inferring with NotNullFlag retained #11641
    • πŸ›  Fix the potential error that occurs when comparing bit type data in string form #11660
    • ⬇ Decrease the concurrency for data that requires sequential read to reduce the possibility of OOM #11679
    • πŸ›  Fix the issue that incorrect type inferring might be caused when multiple parameters are unsigned for some built-in functions (e.g. If, Coalesce) #11621
    • πŸ›  Fix the incompatibility with MySQL when the Div function handles unsigned decimal types #11813
    • πŸ›  Fix the issue that panic might occur when executing SQL statements that modify the status of Pump/Drainer #11827
    • πŸ›  Fix the issue that panic might occur for select ... for update when Autocommit = 1 and there is no begin statement #11736
    • πŸ›  Fix the permission check error that might occur when the set default role statement is executed #11777
    • πŸ›  Fix the permission check error that might occur when create user or drop user is executed #11814
    • πŸ›  Fix the issue that the select ... for update statement might auto retry when it is constructed into the PointGetExecutor function #11718
    • πŸ›  Fix the boundary error that might occur when the Window function handles partition #11825
    • πŸ›  Fix the issue that the Time function hits EOF errors when handling an incorrectly formatted argument #11893
    • πŸ›  Fix the issue that the Window function does not check the passed-in parameters #11705
    • πŸ›  Fix the issue that the plan result viewed via Explain is inconsistent with the actually executed plan #11186
    • πŸ›  Fix the issue that duplicate memory referenced by the Window function might result in a crash or incorrect results #11823
    • ⚑️ Update the incorrect information in the Succ field in the slow log #11887

    Server

    • Rename the tidb_back_off_wexight variable to tidb_backoff_weight #11665
    • ⚑️ Update the minimum TiKV version compatible with the current TiDB to v3.0.0 #11618
    • πŸ‘Œ Support make testSuite to ensure the suites in the test are correctly used #11685

    DDL

    • πŸ‘ Skip the execution of unsupported partition-related DDL statements, including statements that modify the partition type while deleting multiple partitions #11373
    • Disallow a Generated Column to be placed before its dependent columns #11686
    • Modify the default values of tidb_ddl_reorg_worker_cnt and tidb_ddl_reorg_batch_size #11874

    Monitor

    • βž• Add new backoff monitoring types to record duration for each backoff type; add more backoff metrics to cover previously uncounted types such as commit backoff #11728
  • v3.0.2 Changes

    August 06, 2019

    ⚑️ SQL Optimizer

    • πŸ›  Fix the issue that the "Can't find column in schema" message is reported when the same table occurs multiple times in a query and logically the query result is always empty #11247
    • Fix the issue that the query plan does not meet the expectation caused by the TIDB_INLJ hint not working correctly in some cases (like explain select /*+ TIDB_INLJ(t1) */ t1.b, t2.a from t t1, t t2 where t1.b = t2.a) #11362
    • πŸ›  Fix the issue that the column name in the query result is wrong in some cases (like SELECT IF(1,c,c) FROM t) #11379
    • πŸ›  Fix the issue that some queries like SELECT 0 LIKE 'a string' return TRUE becausethe LIKE expression is implicitly converted to 0 in some cases #11411
    • πŸ‘Œ Support sub-queries in the SHOW statement, like SHOW COLUMNS FROM tbl WHERE FIELDS IN (SELECT 'a') #11459
    • πŸ›  Fix the issue that the related column of the aggregate function cannot be found and an error is reported caused by the outerJoinElimination optimizing rule not correctly handling the column alias; improve alias parsing in the optimizing process to make optimization cover more query types #11377
    • πŸ›  Fix the issue that no error is reported when the syntax restriction is violated in the Window function (for example, UNBOUNDED PRECEDING is not allowed to appear at the end of the Frame definition) #11543
    • Fix the issue that FUNCTION_NAME is in uppercase in the ERROR 3593 (HY000): You cannot use the window function FUNCTION_NAME in this context error message, which causes incompatibility with MySQL #11535
    • πŸ›  Fix the issue that the unimplemented IGNORE NULLS syntax in the Window function is used but no error is reported #11593
    • πŸ›  Fix the issue that the Optimizer does not correctly estimate time equal conditions #11512
    • πŸ‘Œ Support updating the Top-N statistics based on the feedback information #11507

    SQL Execution Engine

    • πŸ›  Fix the issue that the returned value is not NULL when the INSERT function contains NULL in parameters #11248
    • πŸ›  Fix the issue that the computing result might be wrong when the partitioned table is checked by the ADMIN CHECKSUM operation #11266
    • πŸ›  Fix the issue that the result might be wrong when INDEX JOIN uses the prefix index #11246
    • πŸ›  Fix the issue that result might be wrong caused by incorrectly aligning fractions when the DATE_ADD function does subtraction on date numbers involving microseconds #11288
    • πŸ›  Fix the wrong result caused by the DATE_ADD function incorrectly processing the negative numbers in INTERVAL #11325
    • πŸ›  Fix the issue that the number of fractional digits returned by Mod(%), Multiple(*) or Minus(-) is different from that in MySQL when Mod, Multiple or Minus returns 0 and the number of fractional digits is large (like select 0.000 % 0.11234500000000000000) #11251
    • Fix the issue that NULL with a warning is incorrectly returned when the length of the result returned by CONCAT and CONCAT_WS functions exceeds max_allowed_packet #11275
    • πŸ›  Fix the issue that NULL with a warning is incorrectly returned when parameters in the SUBTIME and ADDTIME functions are invalid #11337
    • πŸ›  Fix the issue that NULL is incorrectly returned when parameters in the CONVERT_TZ function are invalid #11359
    • βž• Add the MEMORY column to the result returned by EXPLAIN ANALYZE to show the memory usage of this query #11418
    • βž• Add CARTESIAN JOIN to the result of EXPLAIN #11429
    • πŸ›  Fix the incorrect data of auto-increment columns of the float and double types #11385
    • πŸ›  Fix the panic issue caused by some nil information when pseudo statistics are dumped #11460
    • πŸ›  Fix the incorrect query result of SELECT … CASE WHEN … ELSE NULL ... caused by constant folding optimization #11441
    • πŸ›  Fix the issue that floatStrToIntStr does not correctly parse the input such as +999.9999e2 #11473
    • βž• Fix the issue that NULL is not returned in some cases when the result of the DATE_ADD and DATE_SUB function overflows #11476
    • πŸ›  Fix the issue that the conversion result is different from that in MySQL if the string contains an invalid character when a long string is converted to an integer #11469
    • πŸ›  Fix the issue that the result of the REGEXP BINARY function is incompatible with MySQL caused by case sensitiveness of this function #11504
    • 0️⃣ Fix the issue that an error is reported when the GRANT ROLE statement receives CURRENT_ROLE; fix the issue that the REVOKE ROLE statement does not correctly revoke the mysql.default_role privilege #11356
    • πŸ›  Fix the display format issue of the Incorrect datetime value warning information when executing statements like SELECT ADDDATE('2008-01-34', -1) #11447
    • πŸ›  Fix the issue that the error message reports constant … overflows float rather than constant … overflows bigint if the result overflows when a float field of the JSON data is converted to an integer #11534
    • πŸ›  Fix the issue that the result might be wrong caused by incorrect type conversion when the DATE_ADD function receives FLOAT, DOUBLE and DECIMAL column parameters #11527
    • πŸ›  Fix the wrong result caused by incorrectly processing the sign of the INTERVAL fraction in the DATE_ADD function #11615
    • πŸ›  Fix the incorrect query result when Index Lookup Join contains the prefix index caused by Ranger not correctly handling the prefix index #11565
    • Fix the issue that the "Incorrect arguments to NAME_CONST" message is reported if the NAME_CONST function is executed when the second parameter of NAME_CONST is a negative number #11268
    • πŸ›  Fix the issue that the result is incompatible with MySQL when an SQL statement involves computing the current time and the value is fetched multiple times; use the same value when fetching the current time for the same SQL statement #11394
    • πŸ›  Fix the issue that Close is not called for ChildExecutor when the Close of baseExecutor reports an error. This issue might lead to Goroutine leaks when the KILL statements do not take effect and ChildExecutor is not closed #11576

    Server

    • πŸ›  Fix the issue that the auto-added value is 0 instead of the current timestamp when LOAD DATA processes the missing TIMESTAMP field in the CSV file #11250
    • πŸ›  Fix issues that the SHOW CREATE USER statement does not correctly check related privileges, and USER and HOST returned by SHOW CREATE USER CURRENT_USER() might be wrong #11229
    • πŸ›  Fix the issue that the returned result might be wrong when executeBatch is used in JDBC #11290
    • ⬇️ Reduce printing the log information of the streaming client when changing the TiKV server's port #11370
    • ⚑️ Optimize the logic of reconnecting the streaming client to the TiKV server so that the streaming client will not be blocked for a long time #11372
    • Add REGION_ID in INFORMATION_SCHEMA.TIDB_HOT_REGIONS #11350
    • ⏱ Cancel the timeout duration of obtaining Region information from the PD API to ensure that obtaining Region information will not end in a failure when TiDB API http://{TiDBIP}:10080/regions/hot is called due to PD timeout when the number of Regions is large #11383
    • πŸ›  Fix the issue that Region related requests do not return partitioned table-related Regions in the HTTP API #11466
    • 0️⃣ Modify some default parameters related to pessimistic locks, these modifications reduce the probability of locking timeout caused by slow operations when the user manually validates pessimistic locking #11521
      • Increase the default TTL of pessimistic locking from 30 seconds to 40 seconds
      • Increase the maximum TTL from 60 seconds to 120 seconds
      • Calculate the pessimistic locking duration from the first LockKeys request
    • πŸ”„ Change the SendRequest function logic in the TiKV client: try to immediately connect to another peer instead of keeping waiting when the connect cannot be built #11531
    • ⚑️ Optimize the Region cache: label the removed store as invalid when a store is moved while another store goes online with a same address, to update the store information in the cache as soon as possible #11567
    • βž• Add the Region ID to the result returned by the http://{TiDB_ADDRESS:TIDB_IP}/mvcc/key/{db}/{table}/{handle} API #11557
    • πŸ›  Fix the issue that Scatter Table does not work caused by the Scatter Table API not escaping the Range key #11298
    • 🐎 Optimize the Region cache: label the store where the Region exists as invalid when the correspondent store is inaccessible to avoid reduced query performance caused by accessing this store #11498
    • πŸ›  Fix the error that the table schema can still be obtained through the HTTP API after dropping the database with the same name multiple times #11585

    DDL

    • πŸ›  Fix the issue that an error occurs when a non-string column with a zero length is being indexed #11214
    • πŸ‘ Disallow modifying the columns with foreign key constraints and full-text indexes (Note: TiDB still supports foreign key constraints and full-text indexes in syntax only) #11274
    • πŸ›  Fix the issue that the index offset of the column might be wrong because the position changed by the ALTER TABLE statement and the default value of the column are used concurrently #11346
    • πŸ›  Fix two issues that occur when parsing JSON files:
      • int64 is used as the intermediate parsing result of uint64 in ConvertJSONToFloat, which leads to the precision overflow error #11433
      • int64 is used as the intermediate parsing result of uint64 in ConvertJSONToInt, which leads to the precision overflow error #11551
    • Disallow dropping indexes on the auto-increment column to avoid that the auto-increment column might get an incorrect result #11399
    • πŸ›  Fix the following issues #11492:
      • The character set and the collation of the column are not consistent when explicitly specifying the collation but not the character set
      • The error is not correctly reported when there is a conflict between the character set and the collation that are specified by ALTER TABLE … MODIFY COLUMN
      • Incompatibility with MySQL when using ALTER TABLE … MODIFY COLUMN to specify character sets and collations multiple times
    • βž• Add the trace details of the subquery to the result of the TRACE query #11458
    • 🐎 Optimize the performance of executing ADMIN CHECK TABLE and greatly reduce its execution time #11547
    • Add the result returned by SPLIT TABLE … REGIONS/INDEX and make TOTAL_SPLIT_REGION and SCATTER_FINISH_RATIO display the number of Regions that have been split successfully before timeout in the result #11484
    • πŸ›  Fix the issue that the precision displayed by statements like SHOW CREATE TABLE is incomplete when ON UPDATE CURRENT_TIMESTAMP is the column attribute and the float precision is specified #11591
    • πŸ›  Fix the issue that the index result of the column cannot be correctly calculated when the expression of a virtual generated column contains another virtual generated column #11475
    • πŸ›  Fix the issue that the minus sign cannot be added after VALUE LESS THAN in the ALTER TABLE … ADD PARTITION … statement #11581

    Monitor

    • πŸ›  Fix the issue that data is not collected and reported because the TiKVTxnCmdCounter monitoring metric is not registered #11316
    • βž• Add the BindUsageCounter, BindTotalGauge and BindMemoryUsage monitoring metrics for the Bind Info #11467