You are viewing the documentation of an older version of the TiDB database (TiDB v3.0).

It is recommended that you use the latest LTS version of the TiDB database.

TiDB 3.0.5 Release Notes

Release date: October 25, 2019

TiDB version: 3.0.5

TiDB Ansible version: 3.0.5


  • SQL Optimizer
    • Support boundary checking on Window Functions #12404
    • Fix the issue that IndexJoin on the partition table returns incorrect results #12712
    • Fix the issue that the ifnull function on the top of the outer join Apply operator returns incorrect results #12694
    • Fix the issue of update failure when a subquery was included in the where condition of UPDATE #12597
    • Fix the issue that outer join was incorrectly converted to inner join when the cast function was included in the query conditions #12790
    • Fix incorrect expression passing in the join condition of AntiSemiJoin #12799
    • Fix the statistics error caused by shallow copy when initializing statistics #12817
    • Fix the issue that the str_to_date function in TiDB returns a different result from MySQL when the date string and the format string do not match #12725
  • SQL Execution Engine
    • Fix the panic issue when the from_unixtime function handles null #12551
    • Fix the invalid list index error reported when canceling DDL jobs #12671
    • Fix the issue that arrays were out of bounds when Window Functions are used #12660
    • Improve the behavior of the AutoIncrement column when it is implicitly allocated, to keep it consistent with the default mode of MySQL auto-increment locking ("consecutive" lock mode): for the implicit allocation of multiple AutoIncrement IDs in a single-line Insert statement, TiDB guarantees the continuity of the allocated values. This improvement ensures that the JDBC getGeneratedKeys() method will get the correct results in any scenario. #12602
    • Fix the issue that the query is hanged when HashAgg serves as a child node of Apply #12766
    • Fix the issue that the AND and OR logical expressions return incorrect results when it comes to type conversion #12811
  • Server
    • Implement the interface function that modifies transaction TTL to help support large transactions later #12397
    • Support extending the transaction TTL as needed (up to 10 minutes) to support pessimistic transactions #12579
    • Adjust the number of times that TiDB caches schema changes and corresponding changed table information from 100 to 1024, and support modification by using the tidb_max_delta_schema_count system variable #12502
    • Update the behavior of the kvrpc.Cleanup protocol to no longer clean locks of transactions that are not overtime #12417
    • Support logging Partition table information to the information_schema.tables table #12631
    • Support modifying the TTL of Region Cache by configuring region-cache-ttl #12683
    • Support printing the execution plan compression-encoded information in the slow log. This feature is enabled by default and can be controlled by using the slow-log-plan configuration or the tidb_record_plan_in_slow_log variable. In addition, the tidb_decode_plan function can decode the execution plan column encoded information in the slow log into execution plan information. #12808
    • Support displaying memory usage information in the information_schema.processlist table #12801
    • Fix the issue that an error and an unexpected alarm might occur when the TiKV Client judges an idle connection #12846
    • Fix the issue that the INSERT IGNORE statement performance is decreased because tikvSnapshot does not properly cache the KV results of BatchGet() #12872
    • Fix the issue that the TiDB response speed was relatively low because of slow connection to some KV services #12814
  • DDL
    • Fix the issue that the Create Table operation does not correctly set the Int type default value for the Set column #12267
    • Support multiple uniques when creating a unique index in the Create Table statement #12463
    • Fix the issue that populating the default value of this column for existing rows might cause an error when adding a Bit type column using Alter Table #12489
    • Fix the failure of adding a partition when the Range partitioned table uses a Date or Datetime type column as the partitioning key #12815
    • Support checking the consistency of the partition type and the partition key type when creating a table or adding a partition, for the Range partitioned table with the Date or Datetime type column as the partition key #12792
    • Add a check that the Unique Key column set needs to be greater than or equal to the partitioned column set when creating a Range partitioned table #12718
  • Monitor
    • Add the monitoring metrics of Commit and Rollback operations to the Transaction OPS dashboard #12505
    • Add the monitoring metrics of Add Index operation progress #12390


  • Storage
    • Add a new feature of pessimistic transactions: the transaction cleanup interface supports only cleaning up locks whose TTL is outdated #5589
    • Fix the issue that Rollback of the transaction Primary key is collapsed #5646, #5671
    • Fix the issue that under pessimistic locks, point queries might return the previous version data #5634
  • Raftstore
    • Reduce message flush operations in Raftstore to improve performance and reduce CPU usage #5617
    • Optimize the cost of obtaining the Region size and estimated number of keys, to reduce heartbeat overhead and CPU usage #5620
    • Fix the issue that Raftstore prints an error log and encounters a panic when getting invalid data #5643
  • Engine
    • Enable RocksDB force_consistency_checks to improve data safety #5662
    • Fix the issue that concurrent flush operations in Titan might cause data loss #5672
    • Update the rust-rocksdb version to avoid the issue of TiKV crash and restart caused by intra-L0 compaction #5710


  • Improve the precision of storage occupied by Regions #1782
  • Improve the output of the --help command #1763
  • Fix the issue that the HTTP request fails to redirect after TLS is enabled #1777
  • Fix the panic issue occurred when pd-ctl uses the store shows limit command #1808
  • Improve readability of label monitoring metrics and reset the original leader's monitoring data when the leader switches, to avoid false reports #1815


  • TiDB Binlog
    • Fix the issue that ALTER DATABASE related DDL operations cause Drainer to exit abnormally #769
    • Support querying the transaction status information for Commit binlog to improve replication efficiency #757
    • Fix the issue that a Pump panic might occur when Drainer's start_ts is greater than Pump's largest commit_ts #758
  • TiDB Lightning
    • Integrate the full logic import feature of Loader and support configuring the backend mode #221

TiDB Ansible

  • Add the monitoring metrics of adding index speed #986
  • Simplify the configuration file content and remove parameters that users do not need to configure #1043c, #998
  • Fix the monitoring expression error of performance read and performance write #e90e7
  • Update the monitoring display method and the alarm rules of Raftstore CPU usage #992
  • Update the TiKV CPU monitoring item in the Overview monitoring dashboard to filter out the excess monitoring content #1001
Was this page helpful?