Skip to content

Releases: pingcap/tidb

tidb-server v4.0.1

12 Jun 05:35
689a6b6
Compare
Choose a tag to compare

(There is no public release note for this version of TiDB Server)

tidb-server v4.0.0

28 May 02:53
689a6b6
Compare
Choose a tag to compare

Bug Fixes

  • Do not send batch commands to TiFLASH, to fix unpredictable timeout for TiFLASH engine. #17307
  • Fix a bug signed/unsigned integer is not distinguished during the partition pruning, and also optimize performance for some cases. #17230
  • Fix a bug that upgrading from 3.1.1 to 4.0 fails #17300
  • Fix a partition selection bug for the update statement, partition selection should affect the whole update statement #17305
  • Fix panic after sending fail with ambiguous errors #17380
  • Fix panic when creating a key partition table #17242
  • Fix planner incorrectly choose index merge join in some cases. #17365
  • Fix the check of creating and altering table, unique prefix index must not be used on the partition table #17213
  • Fix the execution duration metric of the SELECT statement. #16561
  • Fix the issue that GC worker blocks on channel sending forever when an error occurs. #16915
  • Fix the issue that UNIQUE constraint on boolean column results in an incorrect result in a comparison #17306
  • Fix the panic when aggregation pushes down enable on the partition table. #17328
  • Fix the problem TiDB accesses the down peers in some cases. #17342
  • Fix the problem when isolation read engines in tidb.toml do not take effect. #17322
  • Fix the wrong result order for enforced stream aggregation. #17347
  • Make the aggregation function distinct consider collations. #17240
  • Support insert/replace into tbl_name partition(partition_name_list) #17313
  • Support is null filter condition in hash partition pruning #17310
  • Support admin check index on the partition table #17392
  • Support admin cleanup index on the partition table #17405
  • Support admin recover index on the partition table. #17317
  • Support range partition pruning for 'in' expression #17320
  • When DIV() is used as partition expression, fix the behavior of insert operation under different sql_mode, handle ERROR_FOR_DIVISION_BY_ZERO correctly. #17314

Changed Behaviors

  • Enable Green GC by default. #16955
  • Make the error message of Transaction is too large easier to understand. #17219

New Features

  • Make goroutine count in retry commit-phase can be controlled by committer-concurrency #16876
  • Support show table partition regions. #17294
  • Support temporary storage usage limitation for tidb-server #16211

tidb-server v4.0.0-rc.2

15 May 10:28
dfbb1ff
Compare
Choose a tag to compare

Changed Behaviors

  • Remove the size limit for a single transaction (100 MB) when TiDB Binlog is enabled. Now the size limit for a transaction is 10 GB. However, if TiDB Binlog is enabled and the downstream is Kafka, configure the txn-total-size-limit parameter according to the message size limit of 1 GB in kafka #16941
  • Change the behavior from querying the default time range to returning an error and requesting a specified time range if the time range is not specified when querying the CLUSTER_LOG table 17003
  • If the unsupported sub-partition or linear hash option is specified when creating the partitioned table using the CREATE TABLE statement, the normal table is created rather than the partitioned table with the options ignored #17197

Bug Fixes

  • Fix the issue that the wrong partition is chosen when the WHERE clause has only one equivalent condition #17054
  • Fix the issue of wrong results caused by building the incorrect Index range when the WHERE clause only contains the string column #16660
  • Fix the panic issue that occurs when executing the PointGet query in the transaction after the DELETE operation #16991
  • Fix the issue that the GC worker might encounter the deadlock when an error occurs #16915
  • Avoid the unnecessary RegionMiss retry when the TiKV response is slow but not down #16956
  • Change the log level in the client in the handshake phase of the MySQL protocol to DEBUG to solve the problem that interferes with log output #16881
  • Fix the issue that the Region is not pre-split according to the PRE_SPLIT_REGIONS information defined by the table after the TRUNCATE operation #16776
  • Fix the issue of soaring goroutine caused by retry when TiKV is unavailable during the second phase of the two-phase commit #16876
  • Fix the panic issue of statement execution when some expressions cannot be pushed down #16869
  • Fix the wrong execution result of the IndexMerge operation on the partitioned table #17124
  • Fix the performance reduction of wide_table caused by the mutex contention of Memory Trackers 17234
  • Improve the logic that determines whether to use vectorization for expression execution in multiple operators #16383
  • Fix the issue that the IndexMerge hint fails to check the database name correctly #16932
  • Forbid truncating the sequence object #17037
  • Fix the issue that the INSERT/UPDATE/ANALYZE/DELETE statements can be performed on a sequence object #16957
  • Fix the issue that the internal SQL statements in the bootstrap phase are not correctly marked as internal queries in the Statement Summary table #17062
  • Fix the error that occurs when a filter condition supported by TiFlash but not by TiKV is pushed down to the IndexLookupJoin operator #17036
  • Fix the concurrency issue of the LIKE expression that might occur after the collation is enabled #16997
  • Fix the issue that the LIKE function cannot correctly build the Range query index after the collation is enabled #16783
  • Fix the issue that a wrong value is returned when executing @@LAST_PLAN_FROM_CACHE after the Plan Cache statement is triggered #16831
  • Fix the issue that TableFilter on the index is missed when calculating candidate paths for IndexMerge #16947
  • Fix the issue that a physical query plan cannot be generated when using the MergeJoin hint and the TableDual operator exists #17016
  • Fix the wrong capitalization of the values in the Stmt_Type column of the Statement Summary table #17018
  • Fix the issue that the Permission Denied error is reported because the service cannot be started when different users use the same tmp-storage-path #16996
  • Fix the issue that the NotNullFlag result type is incorrectly set for an expression whose result type is determined by multiple input columns, such as CASE WHEN #16995
  • Fix the issue that the green GC might leave unresolved locks when dirty stores exist #16949
  • Fix the issue that the green GC might leave unresolved locks when encountering a single key with multiple different locks #16948
  • Fix the issue of inserting a wrong value in the INSERT VALUE statement because a sub-query refers to a parent query column #16952
  • Fix the issue of incorrect results when using the AND operator on the Float value #16666
  • Fix the wrong information of the WAIT_TIME field in the expensive log #16907
  • Fix the issue that the SELECT FOR UPDATE statement cannot be recorded in the slow log in the pessimistic transaction mode #16897
  • Fix the wrong result that occurs when executing SELECT DISTINCT on a column of the Enum or Set type #16892
  • Fix the display error of auto_random_base in the SHOW CREATE TABLE statement #16864
  • Fix the incorrect value of string_value in the WHERE clause #16559
  • Fix the issue that the error message of the GROUP BY window function is inconsistent with that of MySQL #16165
  • Fix the issue that the FLASH TABLE statement fails to execute when the database name contains the uppercase letter #17167
  • Fix the inaccurate memory tracing of the Projection executor #17118
  • Fix the issue of incorrect time filtering of the SLOW_QUERY table in different time zones 17164
  • Fix the panic issue that occurs when IndexMerge is used with the virtual generated column 17126
  • Fix the capitalization issue of the INSTR and LOCATE function 17068
  • Fix the issue that the tikv server timeout error is reported frequently after the tidb_allow_batch_cop configuration is enabled 17161
  • Fix the issue that the result of performing XOR operation on the Float type is inconsistent with that of MySQL 8.0 16978
  • Fix the issue that no error is reported when the unsupported ALTER TABLE REORGANIZE PARTITION statement is executed 17178
  • Fix the issue that an error is reported when EXPLAIN FORMAT="dot" FOR CONNECTION ID encounters an unsupported plan 17160
  • Fix the record issue of the prepared statement in the EXEC_COUNT column of the Statement Summary table 17086
  • Fix the issue that the value is not validated when setting the Statement Summary system variable 17129
  • Fix the issue that an error is reported if an overflow value is used to query the UNSIGNED BIGINT primary key when the plan cache is enabled 17120
  • Fix the incorrect QPS display by the machine instance and request type on the Grafana TiDB Summary dashboard 17105

New Features

  • Add support for the BACKUP and RESTORE commands to back up and restore data 16960
  • Support pre-checking the data volume in a single Region before commit and pre-splitting the Region when the data volume exceeds the threshold 16959
  • Add the new LAST_PLAN_FROM_CACHE variable with a Session scope to indicate whether the last executed statement hits the plan cache 16830
  • Support recording the Cop_time information in slow log and the SLOW_LOG table 16904
  • Add in Grafana more metrics that monitor the memory status of Go Runtime 16928
  • Support outputting the forUpdateTS and Read Consistency isolation level information in General Log 16946
  • Support collapsing duplicate requests of resolving locks in TiKV Region 16925
  • Support using the SET CONFIG statement to modify the configuration of PD/TiKV nodes [16853](https://github.com/pingcap/tidb/pul...
Read more

tidb-server v3.0.14

12 May 04:21
62e8314
Compare
Choose a tag to compare

Bug Fixes

  • Fix the issue that the query result of index join is incorrect when the join condition has multiple equivalent conditions on the column with the handle attribute #15734
  • Fix the panic that occurs when performing the fast analyze operation on the column with the handle attribute #16079
  • Fix the issue that the query field in the DDL job structure is incorrect when the DDL statement is executed in a way of prepare. This issue might cause data inconsistency between the upstream and the downstream when Binlog is used for data replication #15443
  • Fix the issue that WEEKEND function is not compatible with MySQL when the SQL mode is ALLOW_INVALID_DATES #16170
  • Fix the issue that the DROP INDEX statement fails to execute when the index column contains the auto-increment primary key #16008
  • Fix the issue of incorrect values of the TABLE_NAMES column in the Statement Summary #15231
  • Fix the issue that some expressions have incorrect results when the plan cache is enabled [#16184(https://github.com//pull/16184)
  • Fix the issue that the result of the not/ istrue/isfalse function is incorrect #15916
  • Fix the panic caused by the MergeJoin operation on tables with redundant indexes #15919
  • Fix the issue caused by incorrectly simplifying the link when the predicate only refers to the outer table #16492
  • Fix the issue that the CURRENT_ROLE function reports an error caused by the SET ROLE statement #15569
  • Fix the issue that the result of the LOAD DATA statement is incompatible with MySQL when this statement encounters \ #16633
  • Fix the issue that the database visibility is incompatible with MySQL #14939
  • Fix the issue of incorrect privilege check for the SET DEFAULT ROLE ALL statement #15585
  • Fix the issue of partition pruning failure caused by plan cache #15818
  • Fix the issue that schema change is reported during the transaction commit when concurrent DDL operations are performed on a table and blocking exists, because the transaction does not lock the related table #15707
  • Fix the incorrect behavior of IF(not_int, *, *) #15356
  • Fix the incorrect behavior of CASE WHEN (not_int) #15359
  • Fix the issue that the Unknown column error message is returned when using a view that is not in the current schema #15866
  • Fix the issue that the result of parsing time strings is incompatible with MySQL #16242
  • Fix the possible panic of the collation operator in left join when a null column exists in the right child node #16528
  • Fix the issue that no error message is returned even though the SQL execution is blocked when TiKV keeps returning the StaleCommand error message #16528
  • Fix the possible panic caused by the port probing when the audit plugin is enabled #15967
  • Fix the panic caused when fast analyze works on indices only #15967
  • Fix the possible panic of the SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST statement execution in some cases #16309
  • Fix the issue of TiDB OOM caused by specifying a large number of partitions (9999999999999, for example) when the hash partition table is created without checking the number of partitions before allocating memory #16218
  • Fix the issue of incorrect information of partitioned tables in information_schema.tidb_hot_table #16726
  • Fix the issue that the partition selection algorithm does not take effect on the hash partitioned table #16070
  • Fix the issue that the HTTP API of the mvcc series does not support partitioned tables #16191
  • Keep the error handling of the UNION statement consistent with that of the SELECT statement #16137
  • Fix the issue of incorrect behavior when the parameter type of the VALUES function is bit (n) #15486
  • Fix the issue that the processing logic of TiDB is inconsistent with MySQL when the view column name is too long. In this case, the system automatically generates a short column name. #14873
  • Fix the issue that (not not col) is incorrectly optimized as col #16094
  • Fix the issue of incorrect range of the inner table built by IndexLookupJoin plans #15753
  • Fix the issue that only_full_group_by fails to correctly check expressions with brackets #16012
  • Fix the issue that an error is returned when the select view_name.col_name from view_name statement is executed #15572

Changed Behaviors

  • Adjust the user privilege in performance_schema and metrics_schema from read-write to read-only #15417

New Features

  • Add syntax ALTER TABLE ... AUTO_ID_CACHE for setting the cache step of auto id explicitly #16287
  • Add the schema name column and the table name column to the query results of the admin show ddl jobs statement #16428
  • Enhance the RECOVER TABLE syntax to support recovering truncated tables # 15458
  • Support the privilege check for the SHOW GRANTS statement #16168
  • Support the privilege check for the LOAD DATA statement #16736
  • Improve the performance of partition pruning when functions related to time and date are used as partition keys #15618
  • Adjust the log level of dispatch error from WARN to ERROR #16232
  • Support the require-secure-transport startup option to force clients to use TLS #15415
  • Support HTTP communication between TiDB components when TLS is configured #15419
  • Add the start_ts information of the current transaction to the information_schema.processlist table #16160
  • Support automatically reloading the TLS certificate information used for communication among clusters #15162
  • Improve the read performance of the partitioned tables by restructuring the partition pruning #15628
  • Support the partition pruning feature when floor(unix_timestamp(a)) is used as the partition expression of the range partition table #16521
  • Modify the behavior when the update statement contains a view and does not update the view, from not allowing execution to normal execution #16787 Allow executing the update statement that contains a view and does not update the view
  • Prohibit the creation of nested views #15424
  • Prohibit truncating view #16420
  • Prohibit using the update statement to explicitly update the values of a column when this column is not in the public state #15576
  • Prohibit starting TiDB when the status port is occupied #15466
  • Change the character set of the current_role function from binary to utf8mb4 #16083
  • Improve max-execution-time usability by checking the interrupt signal when the data of a new Region is read #15615

tidb-server v3.1.1

13 May 02:40
df4c9f0
Compare
Choose a tag to compare

New Features

  • Add the table option for auto_rand_base #16812
  • Add the Feature ID comment: In the special comments of SQL statements, only the registered statement fragment can be parsed by the parser; otherwise, the statement is ignored #16155

Bug Fixes

  • Fix the issue that the isolation read setting at the instance level does not take effect, and that the isolation read setting is incorrectly retained after TiDB is upgraded #16482 #16802
  • Fix the partition selection syntax on the hash partitioned table so that an error is not reported for syntaxes such as partition (P0) #16076
  • Fix the issue that when an UPDATE SQL statement only queries from a view but does not update the view, the update statement still reports an error #16789
  • Fix the issue of wrong results caused by removing the not not from the nested query #16423

tidb-server v4.0.0-rc.1

13 May 02:45
7267747
Compare
Choose a tag to compare

Bug Fixes

  • Fix the bug that due to MemBuffer is not checked, inserting multiple rows by INSERT ... ON DUPLICATE KEY UPDATE in an explicit transaction may cause incorrect results.
    #16689
  • Fix the bug that locking multiple rows with same keys may cause incorrect results
    #16769
  • Fix the bug that recycling idle gRPC connection may cause the panic of TiDB Server
    #16303
  • Fix the bug that the information_schema.PROCESSLIST cannot show negative integer correctly because of its columns are defined with UNSIGNED types [#16004]
  • Forbid sharing the same temporary directory for multiple TiDB server #16026
  • Fix the issue that when 'PLAN CACHE' is enabled, panic happened when running EXPLAIN FOR CONNECTION #16285
  • Fix the issue that system variable tidb_capture_plan_baselines may be incorrect #16048
  • Fix the issue that the wrong group by clause may be wrong in prepared statement #16377
  • Fix the issue that analyze primary key may lead to a panic of TiDB server #16081
  • Fix the wrong node information of TiFlash node in cluster_info table [#16024(https://github.com//pull/16024)
  • Fix the issue that index merge may lead to a panic of TiDB server #16360
  • Fix the issue that index merge may cause a wrong result when the query contains generated columns #16359
  • Fix wrong Sequence default value issue in show create table #16526
  • Fix the issue that not-null error occured when defining a Sequence as the default value of a column #16510
  • Fix the issue that running SQL statement hangs when TiKV keeps reporting StaleCommand #16530
  • Fix some unexpected errors for specifying charset/collate for CREATE SCHEMA syntax, fix missing COLLATE part for SHOW CREATE SCHEMA syntax #16540
  • Fix the issue that when 'plan cache' is enabled, partition pruning is not able to work #16723
  • Fix the issue that point get plan returns a wrong result when handle overflows #16755
  • Fix the issue that querying slow_query table with time-related equality prediction gets a wrong result #16806

New Features

  • Support sending batch coprocessor request to TiFlash #16226
  • Enable 'coprocessor cache' by default #16710
  • Add 'feature-id' comment syntax: only the syntax comments in 'feature-id list' will be parsed by TiDB, otherwise they'll be ignored #16157
  • Support using SHOW CONFIG shows the configuration of PD and TiKV #16475
  • Add warnings if use_index_merge hint contains non-exist indices #15960

tidb-server v3.0.13

13 May 02:42
Compare
Choose a tag to compare

Bugfix

  • Fix the issue that the when running a INSERT ... ON DUPLICATE UPDATE statement in a an explicit transaction and updates multiple rows, it might be executed incorrectly because MemBuffer is not checked #16690

tidb-server v3.1.0

12 May 12:11
1347df8
Compare
Choose a tag to compare

Compatibility Changes

  • Support directly stopping starting of TiDB if the HTTP listening port is unavailable when the report-status configuration item is enabled #16291

New Features

  • Support displaying the information of Coprocessor tasks in explain format = "dot"
    #16125
  • Reduce the redundant stack information of log using the disable-error-stack configuration item #16182

Bug Fixes

  • Fix the panic issue caused by the merge join operation in some scenarios #15920
  • Fix the issue that some expressions are repeatedly counted in selectivity calculation #16052
  • Fix the panic issue when loading the statistics information in extreme cases #15710
  • Fix the issue that an error is returned in some cases when equivalent expressions cannot be recognized in SQL query #16015
  • Fix the issue that an error is returned when querying the view of one database from another database #15867
  • Fix the panic issue that occurs when the column is handled using fast analyze #16080
  • Fix the incorrect character set of the current_role print result #16084
  • Refine the log of MySQL connection handshake error #15799
  • Fix the panic issue caused by port probing after the audit plugin is loaded #16065
  • Fix the panic issue of the sort operator on left join because the TypeNull class is mistaken as a variable-length type #15739
  • Fix the issue of inaccurate count of monitoring session retry error #16120
  • Fix the issue of wrong results of weekday in the ALLOW_INVALID_DATES mode #16171
  • Fix the issue that Garbage Collection (GC) might not work normally when the cluster has TiFlash nodes #15761
  • Fix the issue that TiDB goes out of memory (OOM) when users set a large partition count when creating hash partitioned table #16219
  • Fix the issue that warnings are mistaken as errors, and make the union statement have the same behavior as the select statement #16138
  • Fix the execution error when TopN is pushed down to mocktikv #16200
  • Increase the initial length of chunk.column.nullBitMap to avoid unnecessary cost of runtime.growslice #16142

tidb-server v4.0.0-rc

12 May 10:29
79db9e3
Compare
Choose a tag to compare

Compatibility Changes

  • Refuse to get started instead of returning an alert log when the tidb-server status port is occupied #15177

Bug Fixes

  • Fix the issue that replication between the upstream and downstream might go wrong when the DDL job is executed using the PREPARE statement because of the incorrect job query in the internal records #15435
  • Fix the issue of incorrect subquery result in the Read Commited isolation level #15471
  • Fix the issue of possible wrong behavior when using INSERT ... VALUES to specify the BIT(N) data type #15350
  • Fix the issue that the DDL Job internal retry does not fully achieve the expected outcomes because the values of ErrorCount fail to be summed correctly #15373
  • Fix the issue that Garbage Collection might work abnormally when TiDB connects to TiFlash #15505
  • Fix the issue of incorrect result caused by the Inline Projection optimization #15411
  • Fix the issue that the SQL Hint INL_MERGE_JOIN is executed incorrectly in some cases #15515
  • Fix the issue that columns with the AutoRandom attribute are rebased when the negative number is explicitly written to these columns #15397

New Features and Improvements

  • Add the case-sensitive collation so that users can enable utf8mb4_general_ci and utf8_general_ci in a new cluster #33
  • Enhance the RECOVER TABLE syntax to support recovering truncated tables #15398
  • Refuse to get started instead of returning an alert log when the the tidb-server status port is occupied #15177
  • Optimize the write performance of using a sequence as the default column values #15216
  • Add the DDLJobs system table to query the details of DDL jobs #14837
  • Optimize the aggFuncSum performance #14887
  • Optimize the output of EXPLAIN #15507

tidb-server v3.1.0-rc

12 May 14:04
340ecb8
Compare
Choose a tag to compare

New Features

  • Use the binary search to re-implement partition pruning for better performance #15678
  • Support using the RECOVER syntax to recover the truncated table #15460
  • Add AUTO_RANDOM ID cache for retrying statement and recovering table #15393
  • Support restoring the state of the AUTO_RANDOM ID allocator using the recover table statement #15393
  • Support YEAR, MONTH, and TO_DAY functions as the partitioning keys of the Hash partitioned table #15619
  • Add the table ID to the schema-change related tables only when keys need to be locked in the SELECT... FOR UPDATE statement #15708
  • Add the feature of automatically reading data from different roles according to the load balancing policy and add the leader-and-follower system variable to enable this feature #15721
  • Support dynamically updating the TLS certificate every time TiDB establishes a new connection to update expired client certificate without restarting the RPC client side #15163
  • Upgrade PD Client to support loading the latest certificate every time TiDB establishes a new connection #15425
  • Forcibly use the HTTPS protocol with the configured TLS certificates between a TiDB server and a PD server, or between two TiDB servers when cluster-ssl-* is configured #15430
  • Add the MySQL-compatible --require-secure-transport startup option to force the client to enable TLS authentication during the configuration #15442
  • Add the cluster-verify-cn configuration item. After configuration, the status service can only be used when with the corresponding CN certificate #15137

Bug Fixes

  • Use the binary search to re-implement partition pruning for better performance #15678
  • Fix the information schema error caused by frequently updating the TiFlash replica #14884
  • Fix the issue that last_insert_id is incorrectly generated when applying AUTO_RANDOM #15149 * Fix the issue that updating the status of TiFlash replica might cause the DDL operation to get stuck #15161 * Forbid Aggregation pushdown and TopN pushdown when there are predicates that can not be pushed down #15141
  • Forbid the nested view creation #15440
  • Fix the error occurred when executing SELECT CURRENT_ROLE() after SET ROLE ALL #15570
  • Fix the failure to identify the view name when executing the select view_name.col_name from view_name statement #15573
  • Fix the issue that an error might occur when pre-processing DDL statements during the write of binlog information #15444
  • Fix the panic occurred when accessing both views and partitioned tables #15560
  • Fix the error occurred when executing the VALUES function with the update duplicate key statement that contains the bit(n) data type #15487
  • Fix the issue that the specified maximum execution time fails to take effect in some scenarios #15616
  • Fix the issue that fails to check whether the current ReadEngine contains TiKV server when generating the execution plan using Index Scan #15773