Skip to content

Releases: pingcap/tidb

tidb-server v4.0.9

21 Dec 11:02
69f05ea
Compare
Choose a tag to compare

Compatibility Changes

  • Deprecate the enable-streaming configuration item #21055

Improvements

  • Avoid the (index) merge join in a heuristical way when converting equal conditions to other conditions #21146
  • Differentiate the types of user variables #21107
  • Support setting the GOGC variable in the configuration file #20922
  • Make the dumped binary time (Timestamp and Datetime) more compatible with MySQL #21135
  • Provide an error message for statements that use the LOCK IN SHARE MODE syntax #21005
  • Avoid outputting unnecessary warnings or errors when folding constants in shortcut-able expressions #21040
  • Raise an error when preparing the LOAD DATA statement #21199
  • Ignore the attribute of the integer zero-fill size when changing the integer column types #20986
  • Add the executor-related runtime information of DML statements in the result of EXPLAIN ANALYZE #21066
  • Disallow multiple updates on the primary key in a singe SQL statements #21113
  • Add a monitoring metric for the connection idle time #21301
  • Temporarily enable the slow log when the runtime/trace tool is running #20578

Bug Fixes

  • Fix the issue that incorrect result is returned for indeterministic function when executing a prepared point-get update with "prepared plan cache" is disabled #21883
  • Fix the issue of incorrect results when using a prefix index with the OR condition #21287
  • Fix a bug that might cause panic when automatic retry is enabled #21285
  • Fix a bug that occurs when checking partition definition according to column type #21273
  • Fix a bug that the value type of the partition expression is not consistent with the partition column type #21136
  • Fix a bug that the hash-type partition does not check whether the partition name is unique #21257
  • Fix the wrong results returned after inserting a value of the non-INT type into the hash partitioned table #21238
  • Fix the unexpected error when using index join in the INSERT statement in some cases #21249
  • Fix the issue that the BigInt unsigned column value in the CASE WHEN operator is incorrectly converted to the BigInt signed value #21236
  • Fix a bug that index hash join and index merge join do not consider collation #21219
  • Fix a bug that the partitioned table does not consider collation in the CREATE TABLE and SELECT syntax #21181
  • Fix the issue that the query result of slow_query might miss some rows #21211
  • Fix the issue that DELETE might not delete data correctly when the database name is not in a pure lower representation #21206
  • Fix a bug that causes schema change after DML operations #21050
  • Fix the bug that the coalesced column cannot be queried when using join #21021
  • Fix the wrong results of some semi-join queries #21019
  • Fix the issue that the table lock does not take effect on the UPDATE statement #21002
  • Fix the issue of stack overflow that occurs when building the recursive view #21001
  • Fix the unexpected result returned when performing index merge join operations on outer join #20954
  • Fix the issue that sometimes a transaction that has an undetermined result might be treated as failed #20925
  • Fix the issue that EXPLAIN FOR CONNECTION cannot show the last query plan #21315
  • Fix the issue that when Index Merge is used in a transaction with the Read Committed isolation level, the result might be incorrect #21253
  • Fix the auto-ID allocation failure caused by the transaction retry after the write conflict #21079
  • Fix the issue that JSON data cannot be correctly imported to TiDB using LOAD DATA #21074
  • Fix the issue that the default value of newly added Enum-type columns is incorrect #20998
  • Fix the issue that the adddate function inserts invalid characters #21176
  • Fix the issue that the wrong PointGet plan generated in some situations causes wrong results #21244
  • Ignore the conversion of daylight saving time in the ADD_DATE function to be compatible with MySQL #20888
  • Fix a bug that prevents inserting strings with trailing spaces that exceed varchar or char's length constraint #21282
  • Fix a bug that does not converting the integer from [1, 69] to [2001, 2069] or from [70, 99] to [1970, 1999] when comparing int with year #21283
  • Fix the panic caused by the overflowing result of the sum() function when calculating the Double type field #21272
  • Fix a bug that DELETE fails to add lock on the unique key #20705
  • Fix a bug that snapshot reads hits the lock cache #21539
  • Fix an issue of potential memory leak after reading a lot of data in a long-lived transaction #21129
  • Fix the issue that omitting the table alias in a subquery will have a syntax error returned #20367

tidb-server v3.0.20

25 Dec 04:27
9ab0bbf
Compare
Choose a tag to compare

Compatibility Change

  • Deprecate the enable-streaming configuration item #21054

Improvements

  • Raise an error when preparing the LOAD DATA statement #21222

Bug Fixes

  • Fix the resolved txn status cache for pessimistic transactions. #21706
  • Fix the issue of inaccurate statistics that occurs when querying INFORMATION_SCHEMA.TIDB_HOT_REGIONS #21319
  • Fix the issue that DELETE might not delete data correctly when the database name is not in a pure lower representation #21205
  • Fix the issue of stack overflow that occurs when building the recursive view #21000
  • Fix the issue of goroutine leak in TiKV client #20863
  • Fix the wrong default zero value for the year type #20828
  • Fix the issue of goroutine leak in index lookup join #20791
  • Fix the issue that executing INSERT SELECT FOR UPDATE returns the malformed packet in the pessimistic transaction #20681
  • Fix the unknown time zone 'posixrules' #20605
  • Fix the issue that occurs when converting the unsigned integer type to the bit type #20362
  • Fix the corrupted default value of the bit type column #20339
  • Fix the potentially incorrect results when one of the equal condition is the Enum or Set type #20296
  • Fix a wrong behavior of != any() #20061
  • Fix the issue that type conversion in BETWEEN...AND... returns invalid results #21503
  • Fix a compatibility issue with the ADDDATE function #21008
  • Set the correct default value for newly added Enum column #20999
  • Fix the result of SQL statements like SELECT DATE_ADD('2007-03-28 22:08:28',INTERVAL "-2.-2" SECOND) to be compatible with MySQL #20627
  • Fix the incorrect default value when modifying the column type #20532
  • Fix the issue that the timestamp function gets wrong result when the input argument is the float or decimal type #20469
  • Fix a potential deadlock issue in statistics #20424
  • Fix the issue that the overflown float type data is inserted #20251

tidb-server v4.0.8

30 Oct 08:13
66ac9fc
Compare
Choose a tag to compare

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

tidb-server v4.0.7

29 Sep 06:50
ed939f3
Compare
Choose a tag to compare

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

tidb-server v3.0.19

25 Sep 06:18
7f2b135
Compare
Choose a tag to compare

Improvements

  • Mitigate the impact of failure recovery on QPS performance #19764
  • Support adjusting the concurrency of the union operator #19885

Bug Fixes

  • Fix the query error that occurs when the slow-log file does not exist #20050
  • Add the privilege check for SHOW STATS_META and SHOW STATS_BUCKET #19759
  • Forbid changing the decimal type to the integer type #19681
  • Fix the issue that alter enum/set type does not check constraint #20045
  • Fix the bug that tidb-server does not release table locks after a panic #20021
  • Fix the bug that the OR operator is not handled correctly in the WHERE clause #19901

tidb-server v4.0.6

15 Sep 08:08
51d365f
Compare
Choose a tag to compare

Improvements

  • Replace error codes and messages with standard errors #19888
  • Improve the write performance of partitioned table #19649
  • Record more RPC runtime information in Cop Runtime statistics #19264
  • Forbid creating tables in metrics_schema and performance_schema #19792
  • Support adjusting the concurrency of the union executor #19886
  • Support out join in broadcast join #19664
  • Add SQL digest for the process list #19829
  • Switch to the pessimistic transaction mode for autocommit statement retry #19796
  • Support the %r and %T data format in Str_to_date() #19693
  • Enable SELECT INTO OUTFILE to require the file privilege #19577
  • Support the stddev_pop function #19541
  • Add the TiDB-Runtime dashboard #19396
  • Improve compatibility for the ALTER TABLE algorithms #19364
  • Encode insert/delete/update plans in the slow log plan field #19269

Bug Fixes

  • Fix an issue of tikv_cop_wait time in metric profile #19881
  • Fix the wrong result of SHOW GRANTS #19834
  • Fix the incorrect query result of != ALL (subq) #19831
  • Fix a bug of converting the enum and set types #19778
  • Add a privilege check for SHOW STATS_META and SHOW STATS_BUCKET #19760
  • Fix the error of unmatched column lengths caused by builtinGreatestStringSig and builtinLeastStringSig #19758
  • If unnecessary errors or warnings occur, the vectorized control expresions fall back to their scalar execution #19749
  • Fix an error of the Apply executor when the type of the correlation column is Bit #19692
  • Fix an issue that occurs when the user queries processlist and cluster_log in MySQL 8.0 client #19690
  • Fix an issue that plans of the same type have different plan digests #19684
  • Forbid changing the column type from Decimal to Int #19682
  • Fix an issue that SELECT ... INTO OUTFILE returns the runtime error #19672
  • Fix an incorrect implementation of builtinRealIsFalseSig #19670
  • Fix an issue that the partition expression check misses the parentheses expression #19614
  • Fix a query error when there is an Apply executor upon HashJoin #19611
  • Fix an incorrect result of vectorization that casts Real as Time #19594
  • Fix a bug that the SHOW GRANTS statement shows grants for non-existent users #19588
  • Fix a query error when there is an Apply executor upon IndexLookupJoin #19566
  • Fix the wrong results when converting Apply to HashJoin on a partitioned table #19546
  • Fix incorrect results when there is an IndexLookUp executor under the inner side of an Apply #19508
  • Fix an unexpected panic when using view #19491
  • Fix an incorrect result of anti-semi-join query #19477
  • Fix a bug that topN statistics is not deleted when the statistics is dropped #19465
  • Fix a wrong result caused by mistaken usage of batch point get #19460
  • Fix a bug that a column cannot be found in indexLookupJoin with a virtual generated column #19439
  • Fix an error that different plans of the select and update queries compare datum #19403
  • Fix a data race for TiFlash work index in region cache #19362
  • Fix a bug that the logarithm function does not show a warning #19291
  • Fix an unexpected error that occurs when TiDB persists data to disk #19272
  • Support using a single partitioned table on the inner side of index join #19197
  • Fix the wrong hash key value generated for decimal #19188
  • Fix an issue that TiDB returns an no regions error when table endKey and region endKey are the same #19895
  • Fix the unexpected success of alter partition #19891
  • Fix the wrong value of the default maximum packet length allowed for pushed down expressions #19876
  • Fix a wrong behavior for the Max/Min functions on the ENUM/SET columns #19869
  • Fix read failure from the tiflash_segments and tiflash_tables system tables when some TiFlash nodes are offline #19748
  • Fix a wrong result of the Count(col) aggregation function #19628
  • Fix a runtime error of the TRUNCATE operation #19445
  • Fix the issue that PREPARE statement FROM @Var will fail when Var contains uppercase characters #19378
  • Fix a bug that schema charset modification in an uppercase schema will cause panic #19302
  • Fix inconsistency of plans between information_schema.statements_summary and explain, when the information contains tikv/tiflash #19159
  • Fix the error in tests that the file does not exist for select into outfile #19725
  • Fix the issue that INFORMATION_SCHEMA.CLUSTER_HARDWARE does not have raid device information #19457
  • Make the add index operation that has a generated column with the case-when expression can exit normally when it encounters a parse error #19395
  • Fix a bug that DDL takes too long to retry #19488
  • Make statements like alter table db.t1 add constraint fk foreign key (c2) references t2(c1) execute without first executing use db #19471
  • Change the dispatch error from an Error to an Info message in the server log file #19454

tidb-server v4.0.5

28 Aug 10:02
9c1c212
Compare
Choose a tag to compare

Compatibility Changes

  • Change drop partition and truncate partition's job arguments to support the ID array of multiple partitions #18930
  • Add the delete-only state for checking add partition replicas #18865

Improvements

  • Optimize the performance of DecodePlan for big union queries #18941
  • Reduce the number of GC lock scans when meeting the Region cache miss error #18876
  • Ease the impact of statistical feedback on cluster performance #18772
  • Support canceling operations before the RPC response is returned #18580
  • Add the HTTP API to generate the TiDB metric profile #18531
  • Support scattering partitioned tables #17863
  • Add detailed memory usage of each instance in Grafana #18679
  • Show the detailed runtime information of the BatchPointGet executor in the result of EXPLAIN #18892
  • Show the detailed runtime information of the PointGet executor in the result of EXPLAIN #18817
  • Warn the potential deadlock for Consume in remove() #18395
  • Support the Action when memory exceed quota for TableReader Executor #18392
  • Refine the behaviors of StrToInt and StrToFloat and support converting JSON to the date, time, and timestamp types #18159
  • Support limiting the memory usage of the TableReader executor #18392
  • Avoid too many times of backoff when retrying the batch cop request #18999
  • Improve compatibility for ALTER TABLE algorithms #19270
  • Make the single partitioned table support IndexJoin on the inner side #19151
  • Support searching the log file even when the log includes invalid lines #18579

Bug Fixes

  • Fix the should ensure all columns have the same length error that occurs because the ErrTruncate/Overflow error is incorrectly handled in the builtinCastRealAsDecimalSig function #18967
  • Fix the issue that the pre_split_regions table option does not work in the partitioned table #18837
  • Fixe the issue that might cause a large transaction to be terminated prematurely #18813
  • Fix the issue that using the collation functions get wrong query results #18735
  • Fix the bug that the getAutoIncrementID() function does not consider the tidb_snapshot session variable, which might cause the dumper tool to fail with the table not exist error #18692
  • Fix the unknown column error for SQL statement like select a from t having t.a #18434
  • Fix the panic issue that writing the 64-bit unsigned type into the hash partitioned table causes overflow and gets an unexpected negative number when the partition key is the integer type #18186
  • Fix the wrong behavior of the char function #18122
  • Fix the issue that the ADMIN REPAIR TABLE statement cannot parse integer in the expressions on the range partition #17988
  • Fix the wrong behavior of the SET CHARSET statement #17289
  • Fix the bug caused by the wrong collation setting which leads to the wrong result of the collation function #17231
  • Fix the issue that STR_TO_DATE's handling of the format tokens '%r', '%h' is inconsistent with that of MySQL #18727
  • Fix issues that the TiDB version information is inconsistent with that of PD/TiKV in the cluster_info table #18413
  • Fix the existent checks for pessimistic transactions #19004
  • Fix the issue that executing union select for update might cause concurrent race #19006
  • Fix the wrong query result when apply has a child of the PointGet operator #19046
  • Fix the incorrect result that occurs when IndexLookUp is in the inner side of the Apply operator #19496
  • Fix the incorrect result of anti-semi-join queries #19472
  • Fix the incorrect result caused by the mistaken usage of BatchPointGet #19456
  • Fix the incorrect result that occurs when UnionScan is in the inner side of the Apply operator #19447
  • Fix the panic caused by using the EXECUTE statement to print an expensive query log #17419
  • Fix the index join error when the join key is ENUM or SET #19235
  • Fix the issue that the query range cannot be built when the NULL value exists on the index column #19358
  • Fix the data race issue caused by updating the global configuration #17964
  • Fix the panic issue caused when modifying the character set in an uppercase schema #19286
  • Fix an unexpected error caused by changing the temporary directory during the disk spill action #18970
  • Fix the wrong hash key for the decimal type #19131
  • Fix the issue that the PointGet and BatchPointGet operators do not consider the partition selection syntax and get incorrect results #19141
  • Fix the incorrect results when using the Apply operator together with the UnionScan operator #19104
  • Fix the bug that causes the indexed virtual generated column to return wrong value #17989
  • Add the lock for runtime statistics to fix a panic caused by concurrent execution #18983
  • Check ErrTruncate/Overflow locally for builtinCastRealAsDecimalSig to fix the should ensure all columns have the same length error #18961

tidb-server v3.0.18

21 Aug 09:48
e5c832c
Compare
Choose a tag to compare

Bug Fixes

  • Fix the issue that the wrong handling of the decimal type by the Hash function causes the wrong HashJoin result #19185
  • Fix the issue that the wrong handling of the set and enum types by the Hash function causes the wrong HashJoin result #19175
  • Fix the issue that the check for duplicate keys fails in the pessimistic locking mode #19236
  • Fix the issue that the Apply and Union Scan operators cause the wrong execution result #19297
  • Fix the issue that some cached execution plans are incorrectly executed in transaction #19274

tidb-server v3.0.17

03 Aug 03:44
7fbf8d7
Compare
Choose a tag to compare

Improvements

  • Ease the impact of statistics feedback on the cluster #18770
  • Limit batch split count for one request #18694
  • Accelerate /tiflash/replica HTTP API when there are many history DDL jobs in the TiDB cluster #18386
  • Improve row count estimation for index equal condition #17609
  • Speed up the execution of kill tidb conn_id #18506

Bug Fixes

  • Return the actual error message instead of an empty set when a query which contains IndexHashJoin or IndexMergeJoin encounters a panic #18498
  • Fix the unknown column error for SQL statements like SELECT a FROM t HAVING t.a #18432
  • Forbid adding a primary key for a table when the table has no primary key or when the table already has an integer primary key #18342
  • Return an empty set when executing EXPLAIN FORMAT="dot" FOR CONNECTION #17157
  • Fix STR_TO_DATE's handling for format token '%r', '%h' #18725

tidb-server v4.0.4

31 Jul 03:12
c61fc72
Compare
Choose a tag to compare

Bug Fixes

  • Fix the issue of getting stuck when querying information_schema.columns #18849
  • Fix the errors that occur when the PointGet and BatchPointGet operators encounter in null #18848
  • Fix the wrong result of BatchPointGet #18815
  • Fix the issue of incorrect query result that occurs when the HashJoin operator encounters the set or enum type #18859