All notable changes to this project will be documented in this file. See also Release Notes, TiKV Changelog and PD Changelog.
- Fix the issue that
IndexReaderreads the wrong handle in some cases #8132 - Fix the issue occurred while the
IndexScan Preparedstatement usesPlan Cache#8055 - Fix the issue that the result of the
Unionstatement is unstable #8165
- Improve the performance of TiDB on inserting or updating wide tables #8024
- Support the unsigned
intflag in theTruncatebuilt-in function #8068 - Fix the error occurred while converting JSON data to the decimal type #8109
- Fix the error occurred when you
Updatethe float type #8170
- 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
- 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_thresholdenvironment variable, which dynamically sets the slow log #8094 - Add the original length of a SQL statement truncated while the
tidb_query_log_max_lenenvironment variable dynamically sets logs 8200 - Add the
tidb_opt_write_row_idenvironment variable to control whether to allow writing_tidb_rowid#8218 - Add an upper bound to the
Scancommand of ticlient, to avoid overbound scan #8081, #8247
- Fix the issue that executing DDL statements in transactions encounters an error in some cases #8056
- Fix the issue that executing
truncate tablein 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_idcommand to return the next available row ID #8268
- Fix the issue that column pruning of
UnionAllis incorrect in some cases #7941 - Fix the issue that the result of the
UnionAlloperator is incorrect in some cases #8007
- Fix the precision issue of the
AVGfunction #7874 - Support using the
EXPLAIN ANALYZEstatement 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
PointGetoperator 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
Limitsubclause #8002 - Fix the panic issue during the execution process of the
AddDate/SubDatestatement in some cases #8009
- 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
- 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 BYis an empty string in theLOAD DATAstatement #8005 - Complete the “coprocessor error” log information #8006
- Set the
Commandfield of theSHOW PROCESSLISTresult toSleepwhen the query is empty #7839
- Fix the constant folding issue of the
SYSDATEfunction #7895 - Fix the issue that
SUBSTRING_INDEXpanics in some cases #7897
- Fix the stack overflow issue caused by throwing the
invalid ddl job typeerror #7958 - Fix the issue that the result of
ADMIN CHECK TABLEis incorrect in some cases #7975
- Put forward a proposal of the next generation Planner #7543
- Improve the optimization rules of constant propagation #7276
- Enhance the computing logic of
Rangeto enable it to handle multipleINorEQUALconditions simultaneously #7577 - Fix the issue that the estimation result of
TableScanis incorrect whenRangeis empty #7583 - Support the
PointGetoperator for theUPDATEstatement #7586 - Fix the panic issue during the process of executing the
FirstRowaggregate function in some conditions #7624
- Fix the potential
DataRaceissue when theHashJoinoperator encounters an error #7554 - Make the
HashJoinoperator 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 JOINis incorrect when the Join order is changed #7571 - Improve the performance of Chunk’s iterator #7585
- 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
Analyzerequests #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 BUCKETSstatement #7619 - Fix the panic issue when updating an empty histogram #7640
- Update
information_schema.tables.data_lengthusing the statistics information #7657
- Add Trace related dependencies #7532
- Enable the
mutex profilefeature of Golang #7512 - The
Adminstatement requires theSuper_privprivilege #7486 - Forbid users to
Dropcrucial system tables #7471 - Switch from
juju/errorstopkg/errors#7151 - Complete the functional prototype of SQL Tracing #7016
- Remove the goroutine pool #7564
- Support viewing the goroutine information using the
USER1signal #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
- Add the unsigned flag for the
Yeartype #7542 - Fix the issue of configuring the result length of the
Yeartype in thePrepare/Executemode #7525 - Fix the issue of inserting zero timestamp in the
Prepare/Executemode #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_tabletable #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_SCALEvalue of the float type is incorrect in theinformation_schema.COLUMNStable #7602 - Fix the issue that Parser reports an error when the single line comment is empty #7612
- Check the value of
max_allowed_packetin theinsertfunction #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
DateTimedata #7655
- Set correct
last_insert_idin theInsertOnDuplicateUpdatestatement #7534 - Reduce the cases of updating the
auto_increment_idcounter #7515 - Optimize the error message of
Duplicate Key#7495 - Fix the
insert...select...on duplicate key updateissue #7406 - Support the
LOAD DATA IGNORE LINESstatement #7576
- Add the DDL job type and the current schema version information in the monitor #7472
- Complete the design of the
Admin Restore Tablefeature #7383 - Fix the issue that the default value of the
Bittype exceeds 128 #7249 - Fix the issue that the default value of the
Bittype cannot beNULL#7604 - Reduce the interval of checking
CREATE TABLE/DATABASEin the DDL queue #7608 - Use the
ddl/owner/resignHTTP interface ro release the DDL owner and start electing a new owner #7649
- Support the issue that the
Seekoperation only obtainsKey#7419
Table Partition (Experimental)
- Fix the issue that the
Biginttype 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
- Support showing memory usage of the executing statements in the
SHOW PROCESSLISTstatement - Support setting the table comment using the
Alterstatement
- Clean up the written data while rolling back the
Add Indexoperation, to reduce consumed space - Optimize the insert on duplicate key update statement to improve the performance by 10 times
- Fix the issue about applying the Top-N pushdown rule
- Fix the issue that
Alter Table Modify Columnreports an error in extreme conditions - Fix the issue about the type of the results returned by the
UNIX_TIMESTAMPfunction - 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
- Support
SHOW GRANTS FOR CURRENT_USER(); - Support the
SET TRANSACTIONsyntax - Support displaying floating point numbers using scientific notation
- Improve the execution performance of
DecodeBytes - Optimize
LIMIT 0toTableDual, to avoid building useless execution plans
- Fix the issue that the
ExpressioninUnionScanis 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 VIEWstatement - Fix the panic issue when one statement contains both
ORDER BYandLIMIT 0
- Support closing the
Join Reorderoptimization in the optimizer usingSTRAIGHT_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 INDEXfor disaster recovery - Attach a lower priority to the
ADD INDEXoperation to reduce the impact on online business - Support aggregation functions with JSON type parameters, such as
SUM/AVG - Support modifying the
lower_case_table_namessystem variable in the configuration file, to support the OGG data synchronization tool - Support using implicit
RowIDin CRUD operations
- Improve compatibility with the Navicat management tool
- Use the Stream Aggregation operator when the
GROUP BYclause is empty, to increase the speed - Optimize the execution speed of
ADD INDEXto 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
IndexLookupExecutormemory
- Fix the wrong result issue of
MAX/MINin some scenarios - Fix the issue that the result of
Sort Merge Joindoes not show in order ofJoin Keyin some scenarios - Fix the error of comparison between uint and int in boundary conditions
Only TiKV has this release
- 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
- 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 Indexoperation and give lower priority to all write and read operations, to reduce the impact on online business
- Fix the length of Boolean field to improve compatibility
- Add more monitoring metrics and refine the log
- Add the
tidb_configsession variable to output the current TiDB configuration - Support displaying the table creating time in
information_schema
- Compatible with more MySQL syntax
- Optimize queries containing the
MaxOneRowoperator - 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
- Fix the panic issue in the
UnionandIndex Joinoperators - Fix the wrong result issue of the
Sort Merge Joinoperator in some scenarios - Fix the issue that the
Show Indexstatement shows indexes that are in the process of adding - Fix the failure of the
Drop Statsstatement
- Add limitation (Configurable, the default value is 5000) to the DML statements number within a transaction
- 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 INDEXstatement - Optimize the performance of the
InsertIntoIgnorestatement
- Fix issues in the
Outer Joinresult in some scenarios - Fix the issue in the
ShardRowIDoption - Fix an issue in the
Table/Columnaliases returned by the Prepare statement - Fix an issue in updating statistics delta
- Fix a panic error in the
Drop Columnstatement - Fix an DML issue when running the
Add Column Afterstatement
- Optimize the
FIELD_LISTcommand - 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
RunWorkeris false in DDL - Improve the stability of test results in statistics
- Support
PACK_KEYSsyntax for theCREATE TABLEstatement - Add
row_idcolumn for the null pushdown schema to optimize performance
- Fix the resource leak issue in statistics
- Fix the goroutine leak issue
- Fix an issue about
IndexJoin
- Support the PROXY protocol
- 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 Sketchto 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 IGNOREstatement - Push down more types and functions to TiKV
- Support more
SQL_MODE - Optimize the
Load Dataperformance to increase the speed by 10 times - Optimize the
Use Databaseperformance - Support statistics on the memory usage of physical operators