Skip to content

Latest commit

 

History

History
284 lines (269 loc) · 21.9 KB

CHANGELOG.md

File metadata and controls

284 lines (269 loc) · 21.9 KB

TiDB Changelog

All notable changes to this project will be documented in this file. See also Release Notes, TiKV Changelog and PD Changelog.

[2.1.0-rc.5] - 2018-11-12

SQL Optimizer

  • Fix the issue that IndexReader reads the wrong handle in some cases #8132
  • Fix the issue occurred while the IndexScan Prepared statement uses Plan Cache #8055
  • Fix the issue that the result of the Union statement is unstable #8165

SQL Execution Engine

  • Improve the performance of TiDB on inserting or updating wide tables #8024
  • Support the unsigned int flag in the Truncate built-in function #8068
  • Fix the error occurred while converting JSON data to the decimal type #8109
  • Fix the error occurred when you Update the float type #8170

Statistics

  • Fix the incorrect statistics issue during point queries in some cases #8035
  • Fix the selectivity estimation of statistics for primary key in some cases #8149
  • Fix the issue that the statistics of deleted tables are not cleared up for a long period of time #8182

Server

  • Improve the readability of logs and make logs better
  • Fix the error occurred when obtaining the table data of infoschema.profiling #8096
  • Replace the unix socket with the pumps client to write binlogs #8098
  • Add the threshold value for the tidb_slow_log_threshold environment variable, which dynamically sets the slow log #8094
  • Add the original length of a SQL statement truncated while the tidb_query_log_max_len environment variable dynamically sets logs 8200
  • Add the tidb_opt_write_row_id environment variable to control whether to allow writing _tidb_rowid #8218
  • Add an upper bound to the Scan command of ticlient, to avoid overbound scan #8081, #8247

DDL

  • Fix the issue that executing DDL statements in transactions encounters an error in some cases #8056
  • Fix the issue that executing truncate table in partition tables does not take effect #8103
  • Fix the issue that the DDL operation does not roll back correctly after being cancelled in some cases #8057
  • Add the admin show next_row_id command to return the next available row ID #8268

[2.1.0-rc.4] - 2018-10-23

SQL Optimizer

  • Fix the issue that column pruning of UnionAll is incorrect in some cases #7941
  • Fix the issue that the result of the UnionAll operator is incorrect in some cases #8007

SQL Execution Engine

  • Fix the precision issue of the AVG function #7874
  • Support using the EXPLAIN ANALYZE statement to check the runtime statistics including the execution time and the number of returned rows of each operator during the query execution process #7925
  • Fix the panic issue of the PointGet operator when a column of a table appears multiple times in the result set #7943
  • Fix the panic issue caused by too large values in the Limit subclause #8002
  • Fix the panic issue during the execution process of the AddDate/SubDate statement in some cases #8009

Statistics

  • Fix the issue of judging the prefix of the histogram low-bound of the combined index as out of range #7856
  • Fix the memory leak issue caused by statistics collecting #7873
  • Fix the panic issue when the histogram is empty #7928
  • Fix the issue that the histogram bound is out of range when the statistics is being uploaded #7944
  • Limit the maximum length of values in the statistics sampling process #7982

Server

  • Refactor Latch to avoid misjudgment of transaction conflicts and improve the execution performance of concurrent transactions #7711
  • Fix the panic issue caused by collecting slow queries in some cases #7874
  • Fix the panic issue when ESCAPED BY is an empty string in the LOAD DATA statement #8005
  • Complete the “coprocessor error” log information #8006

Compatibility

  • Set the Command field of the SHOW PROCESSLIST result to Sleep when the query is empty #7839

Expressions

  • Fix the constant folding issue of the SYSDATE function #7895
  • Fix the issue that SUBSTRING_INDEX panics in some cases #7897

DDL

  • Fix the stack overflow issue caused by throwing the invalid ddl job type error #7958
  • Fix the issue that the result of ADMIN CHECK TABLE is incorrect in some cases #7975

[2.1.0-rc.2] - 2018-09-14

SQL Optimizer

  • Put forward a proposal of the next generation Planner #7543
  • Improve the optimization rules of constant propagation #7276
  • Enhance the computing logic of Range to enable it to handle multiple IN or EQUAL conditions simultaneously #7577
  • Fix the issue that the estimation result of TableScan is incorrect when Range is empty #7583
  • Support the PointGet operator for the UPDATE statement #7586
  • Fix the panic issue during the process of executing the FirstRow aggregate function in some conditions #7624

SQL Execution Engine

  • Fix the potential DataRace issue when the HashJoin operator encounters an error #7554
  • Make the HashJoin operator read the inner table and build the hash table simultaneously #7544
  • Optimize the performance of Hash aggregate operators #7541
  • Optimize the performance of Join operators #7493, #7433
  • Fix the issue that the result of UPDATE JOIN is incorrect when the Join order is changed #7571
  • Improve the performance of Chunk’s iterator #7585

Statistics

  • Fix the issue that the auto Analyze work repeatedly analyzes the statistics #7550
  • Fix the statistics update error that occurs when there is no statistics change #7530
  • Use the RC isolation level and low priority when building Analyze requests #7496
  • Support enabling statistics auto-analyze on certain period of a day #7570
  • Fix the panic issue when logging the statistics information #7588
  • Support configuring the number of buckets in the histogram using the ANALYZE TABLE WITH BUCKETS statement #7619
  • Fix the panic issue when updating an empty histogram #7640
  • Update information_schema.tables.data_length using the statistics information #7657

Server

  • Add Trace related dependencies #7532
  • Enable the mutex profile feature of Golang #7512
  • The Admin statement requires the Super_priv privilege #7486
  • Forbid users to Drop crucial system tables #7471
  • Switch from juju/errors to pkg/errors #7151
  • Complete the functional prototype of SQL Tracing #7016
  • Remove the goroutine pool #7564
  • Support viewing the goroutine information using the USER1 signal #7587
  • Set the internal SQL to high priority while TiDB is started #7616
  • Use different labels to filter internal SQL and user SQL in monitoring metrics #7631
  • Store the top 30 slow queries in the last week to the TiDB server #7646
  • Put forward a proposal of setting the global system time zone for the TiDB cluster #7656
  • Enrich the error message of “GC life time is shorter than transaction duration” #7658
  • Set the global system time zone when starting the TiDB cluster #7638

Compatibility

  • Add the unsigned flag for the Year type #7542
  • Fix the issue of configuring the result length of the Year type in the Prepare/Execute mode #7525
  • Fix the issue of inserting zero timestamp in the Prepare/Execute mode #7506
  • Fix the error handling issue of the integer division #7492
  • Fix the compatibility issue when processing ComStmtSendLongData #7485
  • Fix the error handling issue during the process of converting string to integer #7483
  • Optimize the accuracy of values in the information_schema.columns_in_table table #7463
  • Fix the compatibility issue when writing or updating the string type of data using the MariaDB client #7573
  • Fix the compatibility issue of aliases of the returned value #7600
  • Fix the issue that the NUMERIC_SCALE value of the float type is incorrect in the information_schema.COLUMNS table #7602
  • Fix the issue that Parser reports an error when the single line comment is empty #7612

Expressions

  • Check the value of max_allowed_packet in the insert function #7528
  • Support the built-in function json_contains #7443
  • Support the built-in function json_contains_path #7596
  • Support the built-in function encode/decode #7622
  • Fix the issue that some time related functions are not compatible with the MySQL behaviors in some cases #7636
  • Fix the compatibility issue of parsing the time type of data in string #7654
  • Fix the issue that the time zone is not considered when computing the default value of the DateTime data #7655

DML

  • Set correct last_insert_id in the InsertOnDuplicateUpdate statement #7534
  • Reduce the cases of updating the auto_increment_id counter #7515
  • Optimize the error message of Duplicate Key #7495
  • Fix the insert...select...on duplicate key update issue #7406
  • Support the LOAD DATA IGNORE LINES statement #7576

DDL

  • Add the DDL job type and the current schema version information in the monitor #7472
  • Complete the design of the Admin Restore Table feature #7383
  • Fix the issue that the default value of the Bit type exceeds 128 #7249
  • Fix the issue that the default value of the Bit type cannot be NULL #7604
  • Reduce the interval of checking CREATE TABLE/DATABASE in the DDL queue #7608
  • Use the ddl/owner/resign HTTP interface ro release the DDL owner and start electing a new owner #7649

TiKV Go Client

  • Support the issue that the Seek operation only obtains Key #7419

Table Partition (Experimental)

  • Fix the issue that the Bigint type cannot be used as the partition key #7520
  • Support the rollback operation when an issue occurs during adding an index in the partitioned table #7437

[2.0.0-rc.5] - 2018-04-17

New Features

  • Support showing memory usage of the executing statements in the SHOW PROCESSLIST statement
  • Support setting the table comment using the Alter statement

Improvements

  • Clean up the written data while rolling back the Add Index operation, to reduce consumed space
  • Optimize the insert on duplicate key update statement to improve the performance by 10 times

Bug Fixes

  • Fix the issue about applying the Top-N pushdown rule
  • Fix the issue that Alter Table Modify Column reports an error in extreme conditions
  • Fix the issue about the type of the results returned by the UNIX_TIMESTAMP function
  • Fix the issue that the NULL value is inserted while adding NOT NULL columns
  • Fix the estimation of the number of rows for the columns that contain NULL values
  • Fix the zero value of the Binary type
  • Fix the BatchGet issue within a transaction

[2.0.0-rc.4] - 2018-04-01

New Features

  • Support SHOW GRANTS FOR CURRENT_USER();
  • Support the SET TRANSACTION syntax
  • Support displaying floating point numbers using scientific notation

Improvements

  • Improve the execution performance of DecodeBytes
  • Optimize LIMIT 0 to TableDual, to avoid building useless execution plans

Bug Fixes

  • Fix the issue that the Expression in UnionScan is not cloned
  • Fix the potential goroutine leak issue in copIterator
  • Fix the issue that admin check table misjudges the unique index including null
  • Fix the type inference issue during binary literal computing
  • Fix the issue in parsing the CREATE VIEW statement
  • Fix the panic issue when one statement contains both ORDER BY and LIMIT 0

[2.0.0-rc.3] - 2018-03-23

New Features

  • Support closing the Join Reorder optimization in the optimizer using STRAIGHT_JOIN
  • Output more detailed status information of DDL jobs in ADMIN SHOW DDL JOBS
  • Support querying the original statements of currently running DDL jobs using ADMIN SHOW DDL JOB QUERIES
  • Support recovering the index data using ADMIN RECOVER INDEX for disaster recovery
  • Attach a lower priority to the ADD INDEX operation to reduce the impact on online business
  • Support aggregation functions with JSON type parameters, such as SUM/AVG
  • Support modifying the lower_case_table_names system variable in the configuration file, to support the OGG data synchronization tool
  • Support using implicit RowID in CRUD operations

Improvements

  • Improve compatibility with the Navicat management tool
  • Use the Stream Aggregation operator when the GROUP BY clause is empty, to increase the speed
  • Optimize the execution speed of ADD INDEX to greatly increase the speed in some scenarios
  • Optimize checks on length and precision of the floating point type, to improve compatibility with MySQL
  • Improve the parsing error log of time type and add more error information
  • Improve memory control and add statistics about IndexLookupExecutor memory

Bug Fixes

  • Fix the wrong result issue of MAX/MIN in some scenarios
  • Fix the issue that the result of Sort Merge Join does not show in order of Join Key in some scenarios
  • Fix the error of comparison between uint and int in boundary conditions

[2.0.0-rc.2] - 2018-03-15

Only TiKV has this release

[2.0.0-rc.1] - 2018-03-09

New Features

  • Support limiting the memory usage by a single SQL statement, to reduce the risk of OOM
  • Support pushing the Stream Aggregate operator down to TiKV
  • Support validating the configuration file
  • Support obtaining the information of TiDB configuration through HTTP API

Improvements

  • Improve the compatibility with Navicat
  • Improve the optimizer and extract common expressions with multiple OR conditions, to choose better query plan
  • Improve the optimizer and convert subqueries to Join operators in more scenarios, to choose better query plan
  • Compatible with more MySQL syntax in Parser
  • Resolve Lock in the Batch mode to increase the garbage collection speed
  • Optimize the Add Index operation and give lower priority to all write and read operations, to reduce the impact on online business

Bug Fixes

  • Fix the length of Boolean field to improve compatibility

[1.1.0-beta] - 2018-02-24

New Features

  • Add more monitoring metrics and refine the log
  • Add the tidb_config session variable to output the current TiDB configuration
  • Support displaying the table creating time in information_schema

Improvements

  • Compatible with more MySQL syntax
  • Optimize queries containing the MaxOneRow operator
  • Configure the size of intermediate result sets generated by Join, to further reduce the memory used by Join
  • Optimize the query performance of the SQL engine to improve the test result of the Sysbench Select/OLTP by 10%
  • Improve the computing speed of subqueries in the optimizer using the new execution engine; compared with TiDB 1.0, TiDB 1.1 Beta has great improvement in tests like TPC-H and TPC-DS

Bug Fixes

  • Fix the panic issue in the Union and Index Join operators
  • Fix the wrong result issue of the Sort Merge Join operator in some scenarios
  • Fix the issue that the Show Index statement shows indexes that are in the process of adding
  • Fix the failure of the Drop Stats statement

[1.0.8] - 2018-02-11

New Features

  • Add limitation (Configurable, the default value is 5000) to the DML statements number within a transaction

Improvements

  • Improve the stability of the GC process by ignoring the regions with GC errors
  • Run GC concurrently to accelerate the GC process
  • Provide syntax support for the CREATE INDEX statement
  • Optimize the performance of the InsertIntoIgnore statement

Bug Fixes

  • Fix issues in the Outer Join result in some scenarios
  • Fix the issue in the ShardRowID option
  • Fix an issue in the Table/Column aliases returned by the Prepare statement
  • Fix an issue in updating statistics delta
  • Fix a panic error in the Drop Column statement
  • Fix an DML issue when running the Add Column After statement

[1.0.7] - 2018-01-22

Improvements

  • Optimize the FIELD_LIST command
  • Fix data race of the information schema
  • Avoid adding read-only statements to history
  • Add the session variable to control the log query
  • Add schema info API for the http status server
  • Update the behavior when RunWorker is false in DDL
  • Improve the stability of test results in statistics
  • Support PACK_KEYS syntax for the CREATE TABLE statement
  • Add row_id column for the null pushdown schema to optimize performance

Bug Fixes

  • Fix the resource leak issue in statistics
  • Fix the goroutine leak issue
  • Fix an issue about IndexJoin

[1.1.0-alpha] - 2018-01-19

New Features

  • Support the PROXY protocol

Improvements

  • Support more syntax
  • Reduce memory usage of statistics info using more compact structure
  • Speed up loading statistics info when starting tidb-server
  • Provide more accurate query cost evaluation
  • Use Count-Min Sketch to estimate the cost of queries using unique index more accurately
  • Support more complex conditions to make full use of index
  • Refactor all executor operators using Chunk architecture, improve the execution performance of analytical statements and reduce memory usage
  • Optimize performance of the INSERT IGNORE statement
  • Push down more types and functions to TiKV
  • Support more SQL_MODE
  • Optimize the Load Data performance to increase the speed by 10 times
  • Optimize the Use Database performance
  • Support statistics on the memory usage of physical operators