Important

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.8 Release Notes

Release date: October 30, 2020

TiDB version: 4.0.8

New Features

  • TiDB

    • Support the new aggregate function APPROX_PERCENTILE #20197
  • TiFlash

    • Support pushing down CAST functions
  • Tools

    • TiCDC

      • Support snapshot-level consistent replication #932

Improvements

  • TiDB

    • Prioritize low-selectivity indexes in the greedy search procedure of Selectivity() #20154
    • Record more RPC runtime information in Coprocessor runtime statistics #19264
    • Speed up parsing the slow log to improve query performance #20556
    • Wait for timeout execution plans during the plan binding stage to record more debug information when the SQL optimizer is verifying potential new plans #20530
    • Add the execution retry time in the slow log and the slow query result #20495 #20494
    • Add the table_storage_stats system table #20431
    • Add the RPC runtime statistical information for the INSERT/UPDATE/REPLACE statement #20430
    • Add the operator information in the result of EXPLAIN FOR CONNECTION #20384
    • Adjust the TiDB error log to the DEBUG level for the client connection/disconnection activities #20321
    • Add monitoring metrics for Coprocessor Cache #20293
    • Add the runtime information of pessimistic lock keys #20199
    • Add two extra sections of time consumption information in the runtime information and trace span #20187
    • Add the runtime information of transaction commit in the slow log #20185
    • Disable the index merge join #20599
    • Add the ISO 8601 and timezone supports for temporal string literals #20670
  • TiKV

    • Add the Fast-Tune panel page to assist performance diagnostics #8804
    • Add the security.redact-info-log configuration item, which redacts user data from logs #8746
    • Reformat the metafile of error codes #8877
    • Enable dynamically changing the pessimistic-txn.pipelined configuration #8853
    • Enable the memory profiling features by default #8801
  • PD

    • Generate the metafile of errors #3090
    • Add the additional information for the operator #3009
  • TiFlash

    • Add monitoring metrics of Raft logs
    • Add monitoring metrics of memory usage for cop tasks
    • Make the min/max index more accurate when data is deleted
    • Improve query performance in the case of a small data volume
    • Add the errors.toml file to support the standard error code
  • Tools

    • Backup and Restore (BR)

      • Speed up the restore process by pipelining split and ingest #427
      • Support manually restoring PD schedulers #530
      • Use pause schedulers instead of remove schedulers #551
    • TiCDC

      • Print statistics in MySQL sink periodically #1023
    • Dumpling

      • Support dumpling data directly to S3 storages #155
      • Support dumping views #158
      • Support dumping the table that only contains generated columns #166
    • TiDB Lightning

      • Support multi-byte CSV delimiters and separators #406
      • Speed up the restore process by disabling some PD schedulers #408
      • Use the GC-TTL API for checksum GC safepoint in the v4.0 cluster to avoid the GC error #396

Bug Fixes

  • TiDB

    • Fix the unexpected panic that occurs when using partitioned tables #20565
    • Fix the wrong result of outer join when filtering the outer side using index merge join #20427
    • Fix the issue that the NULL value is returned when converting data to the BIT type if the data is too long #20363
    • Fix the corrupted default value for the BIT type column #20340
    • Fix the overflow error that might occur when converting the BIT type to the INT64 type #20312
    • Fix the possible wrong result of the propagate column optimization for the hybrid type column #20297
    • Fix the panic that might occur when storing outdated plans from the plan cache #20246
    • Fix the bug that the returned result is mistakenly truncated if FROM_UNIXTIME and UNION ALL are used together #20240
    • Fix the issue that wrong results might be returned when the Enum type value is converted to the Float type #20235
    • Fix the possible panic of RegionStore.accessStore #20210
    • Fix the wrong result returned when sorting the maximum unsigned integer in BatchPointGet #20205
    • Fix the bug that the coercibilities of Enum and Set are wrong #20364
    • Fix an issue of ambiguous YEAR conversion #20292
    • Fix the issue of wrong reported result that occurs when the KV duration panel contains store0 #20260
    • Fix the issue that the Float type data is mistakenly inserted regardless of the out of range error #20252
    • Fix the bug that the generated column does not handle bad NULL values #20216
    • Fix the inaccurate error information for the YEAR type data that is out of range #20170
    • Fix the unexpected invalid auto-id error that might occur during the pessimistic transaction retry #20134
    • Fix the issue that the constraint is not checked when using ALTER TABLE to change the Enum/Set type #20046
    • Fix the wrong runtime information of cop tasks recorded when multiple operators are used for concurrency #19947
    • Fix the issue that read-only system variables cannot be explicitly selected as the session variables #19944
    • Fix the issue that the duplicate ORDER BY condition might cause sub-optimal execution plans #20333
    • Fix the issue that the generated metric profile might fail if the font size exceeds the maximum allowable value #20637
  • TiKV

    • Fix the bug that the mutex conflict in encryption causes pd-worker to process heartbeats slowly #8869
    • Fix the issue that the memory profile is mistakenly generated #8790
    • Fix the failure to back up databases on GCS when the storage class is specified #8763
    • Fix the bug that a learner cannot find a leader when the Region is restarted or newly split #8864
  • PD

    • Fix a bug that Key Visualizer of TiDB Dashboard might cause PD panic in some cases #3096
    • Fix the bug that PD might panic if a PD store is down for more than 10 minutes #3069
  • TiFlash

    • Fix the issue of wrong timestamp in the log message
    • Fix the issue that during the multi-disk TiFlash deployment, the wrong capacity causes the creation of TiFlash replicas to fail
    • Fix the bug that TiFlash might throw errors about broken data files after restart
    • Fix the issue that broken files might be left on disk after TiFlash crashes
    • Fix the bug that it might take a long time to wait for index during learner reads if the proxy cannot catch up with the latest Raft lease information
    • Fix the bug that the proxy writes too much Region state information to the key-value engine while replaying the outdated Raft log
  • Tools

    • Backup and Restore (BR)

      • Fix the send on closed channel panic during restore #559
    • TiCDC

      • Fix the unexpected exit caused by the failure to update the GC safepoint #979
      • Fix the issue that the task status is unexpectedly flushed because of the incorrect mod revision cache #1017
      • Fix the unexpected empty Maxwell messages #978
    • TiDB Lightning

      • Fix the issue of wrong column information #420
      • Fix the infinity loop that occurs when retrying to get Region information in the local mode #418
Was this page helpful?