tidb v4.0.8 Release Notes

Release Date: 2020-10-30 // about 4 years ago
  • ๐Ÿ†• New Features

    • ๐Ÿ‘Œ Support the new aggregate function APPROX_PERCENTILE #20197

    ๐Ÿ‘Œ Improvements

    • 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

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  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

Previous changes from v4.0.7

  • ๐Ÿ‘Œ Improvements

    • โž• Add more runtime information for the join operator #20093
    • โž• Add the hit ratio information of coprocessor cache in EXPLAIN ANALYZE #19972
    • ๐Ÿ‘Œ Support pushing down the ROUND function to TiFlash #19967
    • โž• Add the default value of CMSketch for ANALYZE #19927
    • Refine error message desensitization #20004
    • Accept connections from clients using connectors from MySQL 8.0 #19959

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fix a vectorization bug from and/or/COALESCE caused by shortcut #20092
    • ๐Ÿ›  Fix the issue that plan digests are the same when the cop task stores are of different types #20076
    • ๐Ÿ›  Fix the wrong behavior of the != any() function #20062
    • ๐Ÿ›  Fix the query error that occurs when the slow-log file does not exist #20051
    • ๐Ÿ›  Fix the issue that Region requests continue to retry when the context is canceled #20031
    • Fix the issue that querying the time type of the cluster_slow_query table in streaming request might result in an error #19943
    • ๐Ÿ›  Fix the issue that DML statements using case when might cause schema change #20095
    • ๐Ÿ›  Fix the issue that the prev_stmt information in slow log is not desensitized #20048
    • ๐Ÿ›  Fix the issue that tidb-server does not release the table lock when it exits abnormally #20020
    • ๐Ÿ›  Fix the incorrect error message that occurs when inserting data of the ENUM and SET type #19950
    • ๐Ÿ›  Fix the wrong behavior of the IsTrue function in some situations #19903
    • ๐Ÿ›  Fix the issue that the CLUSTER_INFO system table might not work normally after PD is scaled in or out #20026
    • โš  Avoid unnecessary warnings or errors when folding constants in control expressions #19910
    • โšก๏ธ Update the method of updating statistics to avoid Out of Memory (OOM) #20013