All Versions
50
Latest Version
Avg Release Cycle
26 days
Latest Release
121 days ago

Changelog History
Page 1

  • v4.0.0-rc

    April 08, 2020

    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
  • v4.0.0-beta.2

    March 18, 2020

    πŸ›  Bugfix

    • πŸ›  A panic caused by encoding data with length of MaxUint16 has been fixed 15404
    • πŸ›  Fix load data statement can't be killed.15391
    • Forbiden create nested view.15420
  • v4.0.0-beta.1

    February 28, 2020

    Compatibility Changes

    • Modify the password field name to authentication_string in the mysql.user system table to make it consistent with MySQL 5.7 #14598
    • πŸ”§ Adjust the default value of the txn-total-size-limit configuration item from 1GB to 100MB #14522
    • πŸ‘Œ Support dynamically modifying or updating configuration items read from PD #14750 #14303 #14830

    πŸ†• New Features

    • Support querying slow logs of any time in the SLOW_QUERY / CLUSTER_SLOW_QUERY system table #14840 #14878
    • πŸ‘Œ Support SQL performance diagnosis
      #14843 #14810 #14835 #14801 #14743
      #14718 #14721 #14670 #14663 #14668
      #14896
    • πŸ‘Œ Support the Sequence function #14731 #14589 #14674 #14442 #14303 #14830
    • πŸ‘Œ Support dynamically modifying or updating configuration items read from PD #14750 #14303 #14830
    • βž• Add a 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 #14761
    • βž• Add the Coercibility function #14739
    • πŸ‘Œ Support setting TiFlash replicas in the partitioned table #14735 #14713 #14644
    • πŸ‘Œ Improve the privilege check for the SLOW_QUERY table #14451
    • πŸ‘Œ Support automatically write the intermediate results to the disk file if the memory is insufficient when using a SQL join #14708 #14279
    • πŸ‘Œ Support checking table partitions by querying the information_schema.PARTITIONS system table #14347
    • βž• Add the json_objectagg aggregate function #11154
    • πŸ‘Œ Support logging rejected connection attempts in the audit log #14594
    • βž• Add the max-server-connections configuration item (4096 by default) to control the number of connections to a single server #14409
    • πŸ‘Œ Support the isolation read specifying multiple storage engines at the server level #14440
    • ⚑️ Optimize the cost model of the Apply operator and the Sort operator to improve stability #13550 #14708

    πŸ›  Bugfix

    • πŸ›  Fix the issue that an error is reported when creating view with a column name that exceeds 64 characters #14850
    • πŸ›  Fix the issue that duplicate data exists in information_schema.views because the create or replace view statement is incorrectly processed #14832
    • πŸ›  Fix the incorrect results of BatchPointGet when plan cache is enabled #14855
    • πŸ›  Fix the issue that data is inserted into the wrong partitioned table after the timezone is modified #14370
    • πŸ›  Fix the panic occurred when rebuilding expression using the invalid name of the IsTrue function during the outer join simplification #14515
    • πŸ›  Fix the the incorrect privilege check for theshow binding statement #14443
  • v4.0.0-beta

    January 17, 2020

    πŸ‘Œ Improvements

    • Increase the accuracy of calculating the cost of Index Join by considering the row counts of both driving tables and driven tables #12085
    • πŸ‘Œ Improve the performance when the columns involved in a query can be fully covered by indexes #12022
    • πŸ‘Œ Improve the performance of table query by supporting the Index Merge feature #10121 #10512 #11245 #12225 #12248 #12305 #12843
    • πŸ‘Œ Improve the performance of Range calculation and reduce the CPU overhead by caching index results and eliminating duplicate results #12856
    • πŸ”Š Decouple the level of slow logs from the level of ordinary logs #12359
    • 0️⃣ Increase the default value of the query-log-max-len parameter to 4096 to reduce the number of truncated SQL outputs. This parameter can be adjusted dynamically. #12491
    • Convert a narrow data range of the discrete type into point set and use CMSketch to improve the estimation accuracy when estimating the number of rows #11524
    • Extract the TopN information from CMSketch for normal Analyze and separately maintain the frequently occurring values #11409
    • πŸ‘Œ Support dynamically adjusting the depth and width of CMSketch and the number of TopN information #11278
    • πŸ‘Œ Support automatically capturing and evolving SQL Binding #13199
    • 🐎 Optimize the encoding format of communication with TiKV by using Chunk to improve communication performance #12023 #12536 #12613 #12621 #12899 #13060 #13349
    • πŸ‘Œ Support the new row store format to improve the performance of the wide table #12634
    • πŸ‘Œ Improve the stability of Kill #10841
    • πŸ‘Œ Improve the performance of IndexLookupJoin and reduce memory consumption during execution by splitting IndexLookupJoin into IndexHashJoin and IndexMergeJoin #8861 #12139 #12349 #13238 #13451 #13714
    • 🌲 Output the detailed backoff information of TiKV RPC in the slow log to facilitate troubleshooting #13770
    • ⚑️ Optimize and unify the format of the memory statistics in the expensive log #12809
    • ⚑️ Optimize the explicit format of EXPLAIN and support outputting information about the operator’s usage of memory and disk
    • Optimize the check for duplicate values in LOAD DATA based on the transaction size and support setting the transaction size by configuring the tidb_dml_batch_size parameter #11132
    • ⚑️ Optimize the Recover Binlog interface to ensure waiting all transactions to be committed before returning to the client #13740
    • 🐎 Optimize the performance of LOAD DATA by separating the data preparing routine and the commit routine and assigning the workload to different Workers #11533 #11284

    πŸ†• New Features

    • πŸ‘Œ Support using the LIKE or WHERE clause in ADMIN SHOW DDL JOBS for conditional filtering #12484
    • Add the TIDB_ROW_ID_SHARDING_INFO column in the information_schema.tables table to output the RowID scattering information (for example, the value of the SHARD_ROW_ID_BITS column in table A is "SHARD_BITS={bit_number}") #13418
    • βž• Add the oom-use-tmp-storage parameter (true by default) to control whether to use temporary files to cache intermediate results when the memory usage for the execution of a single SQL statement exceeds mem-quota-query and the SQL contains Hash Join #11832 #11937 #12116 #12067
    • πŸ‘Œ Support querying the binlog statuses enabled by TiDB servers in the cluster through the HTTP info/all interface #13025
    • πŸ‘Œ Support adding the AutoRandom keyword in the column attribute to control whether the system automatically assigns a random integer to the primary key, which avoids the hotspot problem caused by the AUTO_INCREMENT primary key #13127
    • πŸ‘Œ Support Table Locks #11038
    • πŸ‘Œ Support the MySQL-compatible Read Committed transaction isolation level when using the pessimistic transaction mode #14087
    • πŸ‘Œ Support large-sized transactions. The transaction size is limited by the size of the physical memory.
    • πŸ‘Œ Support hexadecimal and binary expressions as separators in LOAD DATA #11029 #13914 #13692 #13686 #11415 #13927 #13764 #13720
    • βž• Add 15 SQL hints to control the behavior of the optimizer and make the optimizer more stable

    πŸ”„ Changed Behaviors

    • ⚑️ Optimize the error code of SQL error messages to eliminate the ERROR 1105 (HY000) code(the Unknown Error type)
    • ⚑️ Print the log or cancel the SQL execution when the memory used during the execution of INSERT/REPLACE/DELETE/UPDATE exceeds the limit specified by the MemQuotaQuery configuration item. The actual behavior depends on the OOMAction configuration #14179 #14289 #14299

    πŸ›  Bugfix

  • v3.1.0

    April 16, 2020

    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
  • v3.1.0-rc

    April 02, 2020

    πŸ†• 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
  • v3.1.0-beta.2

    March 09, 2020

    πŸ†• New Features

    • πŸ‘Œ Support adding the AutoRandom keyword in the column attribute to enable TiDB to automatically assign random integers to the primary key, which avoids the write hot spot caused by the AUTO_INCREMENT primary key #14555
    • πŸ‘Œ Support creating or deleting column store replicas through DDL statements #14537
    • βž• Add the feature that the optimizer can independently select different storage engines #14537
    • βž• Add the feature that the SQL hint supports different storage engines #14537
    • Support reading data from followers by using the tidb_replica_read system variable #13464
  • v3.1.0-beta.1

    January 10, 2020

    πŸš€ (There is no public release note for this version of TiDB Server)

  • v3.0.12

    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

    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