Skip to content

Releases: pingcap/tidb

tidb-server v2.1.8

12 May 16:13
Compare
Choose a tag to compare
  • Fix the issue that the processing logic of GROUP_CONCAT function is incompatible with MySQL when there is a NULL-valued parameter #9930
  • Fix the equality check issue of decimal values in the Distinct mode #9931
  • Fix the collation compatibility issue of the date, datetime, and timestamp types for the SHOW FULL COLUMNS statement
  • Fix the issue that the row count estimation is inaccurate when the filtering condition contains correlated columns #9937
  • Fix the compatibility issue between the DATE_ADD and DATE_SUB functions
  • Support the %H format for the STR_TO_DATE function to improve compatibility #9964
  • Fix the issue that the result is wrong when the GROUP_CONCAT function groups by a unique index #9969
  • Return a warning when the Optimizer Hints contains an unmatched table name #9970
  • Unify the log format to facilitate collecting logs using tools for analysis Unified Log Format
  • Fix the issue that a lot of NULL values cause inaccurate statistics estimation #9979
  • Fix the issue that an error is reported when the default value of the TIMESTAMP type is the boundary value #9987
  • Validate the value of time_zone #10000
  • Support the 2019.01.01 time format #10001
  • Fix the issue that the row count estimation is displayed incorrectly in the result returned by the EXPLAIN statement in some cases #10044
  • Fix the issue that KILL TIDB [session id] cannot instantly stop the execution of a statement in some cases #9976
  • Fix the predicate pushdown issue of constant filtering conditions in some cases #10049
  • Fix the issue that a read-only statement is not processed correctly in some cases #10048

tidb-server v2.1.7

12 May 16:13
f5b52cb
Compare
Choose a tag to compare
  • Fix the issue of longer startup time when upgrading the program caused by canceling DDL operations #9768
  • Fix the issue that the check-mb4-value-in-utf8 configuration item is in the wrong position in the config.example.toml file #9852
  • Improve the compatibility of the str_to_date built-in function with MySQL #9817
  • Fix the compatibility issue of the last_day built-in function #9750
  • Add the tidb_table_id column for infoschema.tables to facilitate getting table_id by using SQL statements and add the tidb_indexes system table to manage the relationship between Table and Index #9862
  • Add a check about the null definition of Table Partition #9663
  • Change the privileges required by Truncate Table from Delete to Drop to make it consistent with MySQL #9876
  • Support using subqueries in the DO statement #9877
  • Fix the issue that the default_week_format variable does not take effect in the week function #9753
  • Support the plugin framework #9880, #9888
  • Support checking the enabling state of binlog by using the log_bin system variable #9634
  • Support checking the Pump/Drainer status by using SQL statements #9896
  • Fix the compatibility issue about checking mb4 character on utf8 when upgrading TiDB #9887
  • Fix the panic issue when the aggregate function calculates JSON data in some cases #9927

tidb-server v3.0.0-beta.1

12 May 16:13
Compare
Choose a tag to compare

SQL Optimizer

  • Support calculating the Cartesian product by using Sort Merge Join #9032
  • Support Skyline Pruning, with some rules to prevent the execution plan from relying too heavily on statistics #9337
  • Support Window Functions
  • Add a type of statistic that indicates the order correlation between columns and the handle column #9315

SQL Execution Engine

  • Add built-in functions:
  • Optimize the Chunk size based on the query context, to reduce the execution time of SQL statements and resources consumption of the cluster #6489

Privilege management

  • Support SET ROLE and CURRENT_ROLE #9581
  • Support DROP ROLE #9616
  • Support CREATE ROLE #9461

Server

  • Add the /debug/zip HTTP interface to get information of the current TiDB instance #9651
  • Support the show pump status and show drainer status SQL statements to check the Pump or Drainer status 9456
  • Support modifying the Pump or Drainer status by using SQL statements #9789
  • Support adding HASH fingerprints to SQL text for easy tracking of slow SQL statements #9662
  • Add the log_bin system variable (“0” by default) to control the enabling state of binlog; only support checking the state currently #9343
  • Support managing the sending binlog strategy by using the configuration file #9864
  • Support querying the slow log by using the INFORMATION_SCHEMA.SLOW_QUERY memory table #9290
  • Change the MySQL version displayed in TiDB from 5.7.10 to 5.7.25 #9553
  • Unify the log format for easy collection and analysis by tools
  • Add the high_error_rate_feedback_total monitoring item to record the difference between the actual data volume and the estimated data volume based on statistics #9209
  • Add the QPS monitoring item in the database dimension, which can be enabled by using a configuration item #9151

DDL

  • Add the ddl_error_count_limit global variable (“512” by default) to limit the number of DDL task retries (If this number exceeds the limit, the DDL task is canceled) #9295
  • Support ALTER ALGORITHM INPLACE/INSTANT #8811
  • Support the SHOW CREATE VIEW statement #9309
  • Support the SHOW CREATE USER statement #9240

tidb-server v2.1.6

12 May 16:14
Compare
Choose a tag to compare

SQL Optimizer/Executor

  • Optimize planner to select the outer table based on cost when both tables are specified in Hint of TIDB_INLJ #9615
  • Fix the issue that IndexScan cannot be selected correctly in some cases
    #9587
  • Fix incompatibility with MySQL of check in the agg function in subqueries #9551
  • Make show stats_histograms only output valid columns to avoid panics
    #9502

Server

  • Support the log_bin variable to enable/disable Binlog #9634
  • Add a sanity check for transactions to avoid false transaction commit #9559
  • Fix the issue that setting variables may lead to panic #9539
  • change MySQL version from 5.7.10 to 5.7.25 #9556

DDL

  • Fix the issue that the Create Table Like statement causes panic in some cases #9652
  • Enable the AutoSync feature of etcd clients to avoid connection issues between TiDB and etcd in some cases #9600

tidb-server v2.1.5

12 May 16:14
4dc3093
Compare
Choose a tag to compare

SQL Optimizer/Executor

  • Make SHOW CREATE TABLE do not print the column charset information when the charset information of a column is the same with that of a table, to improve the compatibility of SHOW CREATE TABLE with MySQL #9306
  • Fix the panic or the wrong result of the Sort operator in some cases by extracting ScalarFunc from Sort to a Projection operator for computing to simplify the computing logic of Sort #9319
  • Remove the sorting field with constant values in the Sort operator #9335, #9440
  • Fix the data overflow issue when inserting data into an unsigned integer column #9339
  • Set cast_as_binary to NULL when the length of the target binary exceeds max_allowed_packet #9349
  • Optimize the constant folding process of IF and IFNULL #9351
  • Optimize the index selection of TiDB using skyline pruning to improve the stability of simple queries #9356
  • Support computing the selectivity of the DNF expression #9405
  • Fix the wrong SQL query result of !=ANY() and =ALL() in some cases #9403
  • Fix the panic or the wrong result when the Join Key types of two tables on which the Merge Join operation is performed are different #9438
  • Fix the issue that the result of the RAND() function is not compatible with MySQL #9446
  • Refactor the logic of Semi Join processing NULL and the empty result set to get the correct result and improve the compatibility with MySQL #9449

Server

  • Add the tidb_constraint_check_in_place system variable to check the data uniqueness constraint when executing the INSERT statement #9401
  • Fix the issue that the value of the tidb_force_priority system variable is different from that set in the configuration file #9347
  • Add the current_db field in general logs to print the name of the currently used database #9346
  • Add an HTTP API of obtaining the table information with the table ID #9408
  • Fix the issue that LOAD DATA loads incorrect data in some cases #9414
  • Fix the issue that it takes a long time to build a connection between the MySQL client and TiDB in some cases #9451

DDL

  • Fix some issues when canceling the DROP COLUMN operation #9352
  • Fix some issues when canceling the DROP or ADD partitioned table operation #9376
  • Fix the issue that ADMIN CHECK TABLE mistakenly reports the data index inconsistency in some cases #9399
  • Fix the time zone issue of the TIMESTAMP default value #9108

tidb-server v2.1.4

15 Feb 06:20
a1d10c1
Compare
Choose a tag to compare

SQL Optimizer/Executor

  • Fix the issue that the VALUES function does not handle the FLOAT type correctly #9223
  • Fix the wrong result issue when casting Float to String in some cases #9227
  • Fix the wrong result issue of the FORMAT function in some cases #9235
  • Fix the panic issue when handling the Join query in some cases #9264
  • Fix the issue that the VALUES function does not handle the ENUM type correctly #9280
  • Fix the wrong result issue of DATE_ADD / DATE_SUB in some cases #9284

Server

  • Optimize the "reload privilege success" log and change it to the DEBUG level #9274

DDL

  • Change tidb_ddl_reorg_worker_cnt and tidb_ddl_reorg_batch_size to global variables #9134
  • Fix the bug caused by adding an index to a generated column in some abnormal conditions #9289

tidb-server v2.1.3

28 Jan 06:35
d842dc3
Compare
Choose a tag to compare

SQL Optimizer/Executor

  • Fix the panic issue of Prepared Plan Cache in some cases #8826
  • Fix the issue that Range computing is wrong when the index is a prefix index #8851
  • Make CAST(str AS TIME(N)) return null if the string is in the illegal TIME format when SQL_MODE is not strict #8966
  • Fix the panic issue of Generated Column during the process of UPDATE in some cases #8980
  • Fix the upper bound overflow issue of the statistics histogram in some cases #8989
  • Support Range for _tidb_rowid construction queries, to avoid full table scan and reduce cluster stress #9059
  • Return an error when the CAST(AS TIME) precision is too big #9058
  • Allow using Sort Merge Join in the Cartesian product #9037
  • Fix the issue that the statistics worker cannot resume after the panic in some cases #9085
  • Fix the issue that Sort Merge Join returns the wrong result in some cases #9046
  • Support returning the JSON type in the CASE clause #8355

Server

  • Return a warning instead of an error when the non-TiDB hint exists in the comment #8766
  • Verify the validity of the configured TIMEZONE value #8879
  • Optimize the QueryDurationHistogram metrics item to display more statement types #8875
  • Fix the lower bound overflow issue of bigint in some cases #8544
  • Support the ALLOW_INVALID_DATES SQL mode #9110

DDL

  • Fix a RENAME TABLE compatibility issue to keep the behavior consistent with that of MySQL #8808
  • Support making concurrent changes of ADD INDEX take effect immediately #8786
  • Fix the UPDATE panic issue during the process of ADD COLUMN in some cases #8906
  • Fix the issue of concurrently creating Table Partition in some cases #8902
  • Support converting the utf8 character set to utf8mb4 #8951 #9152
  • Fix the issue of Shard Bits overflow #8976
  • Support outputting the column character sets in SHOW CREATE TABLE #9053
  • Fix the issue of the maximum length limit of the varchar type column in utf8mb4 #8818
  • Support ALTER TABLE TRUNCATE TABLE PARTITION #9093
  • Resolve the charset when the charset is not provided #9147

tidb-server v3.0.0-beta

18 Jan 10:56
ed5fae7
Compare
Choose a tag to compare
Pre-release

New Features

  • Support View
  • Support Window Function
  • Support Range Partition
  • Support Hash Partition

SQL Optimizer

  • Re-support the optimization rule of AggregationElimination #7676
  • Optimize the NOT EXISTS subquery and convert it to Anti Semi Join #7842
  • Add the tidb_enable_cascades_planner variable to support the new Cascades optimizer. Currently, the Cascades optimizer is not yet fully implemented and is turned off by default #7879
  • Support using Index Join in transactions #7877
  • Optimize the constant propagation on the Outer Join, so that the filtering conditions related to the Outer table in the Join result can be pushed down through the Outer Join to the Outer table, reducing the useless calculation of the Outer Join and improving the execution performance #7794
  • Adjust the optimization rule of Projection Elimination to the position after the Aggregation Elimination, to avoid redundant Project operators #7909
  • Optimize the IFNULL function and eliminate this function when the input parameter has a non-NULL attribute #7924
  • Support building range for _tidb_rowid, to avoid full table scan and reduce cluster stress #8047
  • Optimize the IN subquery to do the Inner Join after the aggregation, and add the tidb_opt_insubq_to_join_and_agg variable to control whether to enable this optimization rule and open it by default #7531
  • Support using subqueries in the DO statement #8343
  • Add the optimization rule of Outer Join elimination to reduce unnecessary table scan and Join operations and improve execution performance #8021
  • Modify the Hint behavior of the TIDB_INLJ optimizer, and the optimizer will use the table specified in Hint as the Inner table of Index Join #8243
  • Use PointGet in a wide range so that it can be used when the execution plan cache of the Prepare statement takes effect #8108
  • Introduce the greedy Join Reorder algorithm to optimize the join order selection when joining multiple tables #8394
  • Support View #8757
  • Support Window Function #8630
  • Return warning to the client when TIDB_INLJ is not in effect, to enhance usability #9037
  • Support deducing the statistics for filtered data based on filtering conditions and table statistics #7921
  • Improve the Partition Pruning optimization rule of Range Partition #8885

SQL Executor

  • Optimize the Merge Join operator to support the empty ON condition #9037
  • Optimize the log and print the user variables used when executing the EXECUTE statement #7684
  • Optimize the log to print slow query information for the COMMIT statement #7951
  • Support the EXPLAIN ANALYZE feature to make the SQL tuning process easier #7827
  • Optimize the write performance of wide tables with many columns #7935
  • Support admin show next_row_id #8242
  • Add the tidb_init_chunk_size variable to control the size of the initial Chunk used by the execution engine #8480
  • Improve shard_row_id_bits and cross-check the auto-increment ID #8936

Prepare Statement

  • Prohibit adding the Prepare statement containing subqueries to the query plan cache to guarantee the query plan is correct when different user variables are input #8064
  • Optimize the query plan cache to guarantee the plan can be cached when the statement contains non-deterministic functions #8105
  • Optimize the query plan cache to guarantee the query plan of DELETE/UPDATE/INSERT can be cached #8107
  • Optimize the query plan cache to remove the corresponding plan when executing the DEALLOCATE statement #8332
  • Optimize the query plan cache to avoid the TiDB OOM issue caused by caching too many plans by limiting the memory usage #8339
  • Optimize the Prepare statement to support using the ? placeholder in the ORDER BY/GROUP BY/LIMIT clause #8206

Privilege Management

  • Add the privilege check for the ANALYZE statement #8486
  • Add the privilege check for the USE statement #8414
  • Add the privilege check for the SET GLOBAL statement #8837
  • Add the privilege check for the SHOW PROCESSLIST statement #7858

Server

  • Support the Trace feature #9029
  • Support the plugin framework #8788
  • Support using unix_socket and TCP simultaneously to connect to the database #8836
  • Support the interactive_timeout system variable #8573
  • Support the wait_timeout system variable #8346
  • Support splitting a transaction into multiple transactions based on the number of statements using the tidb_batch_commit variable #8293
  • Support using the ADMIN SHOW SLOW statement to check slow logs #7785

Compatibility

  • Support the ALLOW_INVALID_DATES SQL mode #9027
  • Improve LoadData fault-tolerance for the CSV file #9005
  • Support the MySQL 320 handshake protocol #8812
  • Support using the unsigned bigint column as the auto-increment column #8181
  • Support the SHOW CREATE DATABASE IF NOT EXISTS syntax #8926
  • Abandon the predicate pushdown operation when the filtering condition contains a user variable to improve the compatibility with MySQL’s behavior of using user variables to mock the Window Function behavior #8412

DDL

  • Support fast recovery of mistakenly deleted tables #7937
  • Support adjusting the number of concurrencies of ADD INDEX dynamically #8295
  • Support changing the character set of tables or columns to utf8/utf8mb4 #8037
  • Change the default character set from utf8 to utf8mb4 #7965
  • Support Range Partition #8011

tidb-server v2.0.11

03 Jan 09:22
83889a5
Compare
Choose a tag to compare
  • Fix the issue that the error is not handled properly when PD is in an abnormal condition #8764 #8923
  • Fix the issue that the Rename operation on a table in TiDB is not compatible with that in MySQL #8809
  • Fix the issue that the error message is wrongly reported when the ADMIN CHECK TABLE operation is performed in the process of executing the ADD INDEX statement #8750
  • Fix the issue that the prefix index range is incorrect in some cases #8877
  • Fix the panic issue of the UPDATE statement when columns are added in some cases #8904

tidb-server v2.1.2

21 Dec 10:12
1e06ccc
Compare
Choose a tag to compare
  • Make TiDB compatible with TiDB-Binlog of the Kafka version #8747
  • Improve the exit mechanism of TiDB in a rolling update #8707
  • Fix the panic issue caused by adding the index for the generated column in some cases #8676
  • Fix the issue that the optimizer cannot find the optimal query plan when TIDB_SMJ Hint exists in the SQL statement in some cases #8729
  • Fix the issue that AntiSemiJoin returns an incorrect result in some cases #8730
  • Improve the valid character check of the utf8 character set #8754
  • Fix the issue that the field of the time type might return an incorrect result when the write operation is performed before the read operation in a transaction #8746