You are viewing the documentation of an older version of the TiDB database (TiDB v5.4).

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

TiDB 4.0.12 Release Notes

Release date: April 2, 2021

TiDB version: 4.0.12

New Features

  • TiFlash

    • Add tools to check the status of tiflash replica for online rolling updates


  • TiDB

    • Refine the output information of the EXPLAIN statement for the batch cop mode #23164
    • Add the warning information for expressions that cannot be pushed to the storage layer in the output of the EXPLAIN statement #23020
    • Migrate a part of the DDL package code from Execute/ExecRestricted to the safe API (2) #22935
    • Migrate a part of the DDL package code from Execute/ExecRestricted to the safe API (1) #22929
    • Add optimization-time and wait-TS-time into the slow log #22918
    • Support querying partition_id from the infoschema.partitions table #22489
    • Add last_plan_from_binding to help the users know whether a SQL statement's execution plan is matched with the hints in the binding #21430
    • Scatter truncated tables without the pre-split option #22872
    • Add three format specifiers for the str_to_date expression #22812
    • Record the PREPARE execution failure as Failed Query OPM in the metrics monitor #22672
    • Do not report errors for the PREPARE execution if tidb_snapshot is set #22641
  • TiKV

    • Prevent a large number of reconnections in a short period of time #9879
    • Optimize the write operations and Batch Get in the scenarios of many tombstones #9729
    • Change the default value of leader-transfer-max-log-lag to 128 to increase the success rate of leader transfer #9605
  • PD

    • Update the Region cache only when pending-peers or down-peers changes, which reduces the pressure of updating heartbeats #3471
    • Prevent the Regions in split-cache from becoming the target of merge #3459
  • TiFlash

    • Optimize the configuration file and remove useless items
    • Reduce the size of TiFlash binary files
    • Use an adaptive aggressive GC strategy to reduce memory usage
  • Tools

    • TiCDC

      • Add a double confirmation when users create or resume the changefeed with the start-ts or checkpoint-ts 1 day before the current timestamp #1497
      • Add Grafana panels for the Old Value feature #1571
    • Backup & Restore (BR)

      • Log the HTTP_PROXY and HTTPS_PROXY environmental variables #827
      • Improve the backup performance when there are many tables #745
      • Report errors if the service safe point check fails #826
      • Add the cluster_version and br_version information in backupmeta #803
      • Add retry for external storage errors to increase the success rate of backup #851
      • Reduce memory usage during backup #886
    • TiDB Lightning

      • Check the TiDB cluster version before running TiDB Lightning to avoid unexpected errors #787
      • Fail fast when TiDB Lightning meets the cancel error #867
      • Add tikv-importer.engine-mem-cache-size and tikv-importer.local-writer-mem-cache-size configuration items to balance between memory usage and performance #866
      • Run batch split region in parallel for TiDB Lightning's Local-backend to increase the import speed #868
      • When using TiDB Lightning to import data from a S3 storage, TiDB Lightning no longer requires the s3:ListBucket permission #919
      • When resuming from a checkpoint, TiDB Lightning keeps using the original engine #924

Bug Fixes

  • TiDB

    • Fix the issue that the get variable expression goes wrong when the session variable is hexadecimal literals#23372
    • Fix the issue that wrong collation is used when creating the fast execution plan for the Enum or Set type #23292
    • Fix the possible wrong result of the nullif expression when it is used with is-null #23279
    • Fix the issue that the auto-analysis is triggered outside its time range #23219
    • Fix the issue that the CAST function might ignore errors for the point get plan #23211
    • Fix a bug that prevents SPM from taking effect when CurrentDB is empty #23209
    • Fix the issue of possible wrong table filters for the IndexMerge plan #23165
    • Fix the issue of unexpected NotNullFlag in the returning types of the NULL constant #23135
    • Fix a bug that collation might not be handled by the text type #23092
    • Fix the issue that the range partition might incorrectly handle the IN expression #23074
    • Fix the issue that after marking a TiKV store as tombstone, starting new TiKV stores with different StoreIDs with the same IP address and port keeps returning the StoreNotMatch error #23071
    • Do not adjust the INT type when it is NULL and compared with YEAR #22844
    • Fix the issue of lost connection when loading data on tables with the auto_random column #22736
    • Fix the issue of DDL hangover when the DDL operation meets panic in the cancelling path #23297
    • Fix the wrong key range of index scan when comparing the YEAR column with NULL #23104
    • Fix the issue that a successfully created view is failed to use #23083
  • TiKV

    • Fix the issue that the IN expression does not properly handle unsigned/signed integers #9850
    • Fix the issue that the ingest operation is not re-entrant #9779
    • Fix the issue that the space is missed when converting JSON to string in TiKV coprocessor #9666
  • PD

    • Fix a bug that the isolation level is wrong when the store lacks the label #3474
  • TiFlash

    • Fix the issue of incorrect execution results when the default value of the binary type column contains leading or tailing zero bytes
    • Fix a bug that TiFlash fails to synchronize schema if the name of the database contains special characters
    • Fix the issue of incorrect results when handling the IN expression with decimal values
    • Fix a bug that the metric for the opened file count shown in Grafana is high
    • Fix a bug that TiFlash does not support the Timestamp literal
    • Fix the potential not responding issue while handling the FROM_UNIXTIME expression
    • Fix the issue of incorrect results when casting string as integer
    • Fix a bug that the like function might return wrong results
  • Tools

    • TiCDC

      • Fix a disorder issue of the resolved ts event #1464
      • Fix a data loss issue caused by wrong table scheduling due to the network problem #1508
      • Fix a bug of untimely release of resources after a processor is stopped #1547
      • Fix a bug that the transaction counter is not correctly updated, which might cause database connection leak #1524
      • Fix the issue that multiple owners can co-exist when PD has jitter, which might lead to table missing #1540
    • Backup & Restore (BR)

      • Fix a bug that WalkDir for the s3 storage returns nil if the target path is bucket name #733
      • Fix a bug that the status port is not served with TLS #839
    • TiDB Lightning

      • Fix the error that TiKV Importer might ignore that the file has already existed #848
      • Fix a bug that the TiDB Lightning might use the wrong timestamp and read the wrong data #850
      • Fix a bug that TiDB Lightning's unexpected exit might cause damaged checkpoint file #889
      • Fix the issue of possible data error that occurs because the cancel error is ignored #874
Was this page helpful?