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
IndexReader
reads the wrong handle in some cases #8132 - Fix the issue occurred while the
IndexScan Prepared
statement usesPlan Cache
#8055 - Fix the issue that the result of the
Union
statement is unstable #8165
- Improve the performance of TiDB on inserting or updating wide tables #8024
- Support the unsigned
int
flag in theTruncate
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
- 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_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
- 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
- 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
- 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
- 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 BY
is an empty string in theLOAD DATA
statement #8005 - Complete the “coprocessor error” log information #8006
- Set the
Command
field of theSHOW PROCESSLIST
result toSleep
when the query is empty #7839
- Fix the constant folding issue of the
SYSDATE
function #7895 - Fix the issue that
SUBSTRING_INDEX
panics in some cases #7897
- 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
- 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 multipleIN
orEQUAL
conditions simultaneously #7577 - Fix the issue that the estimation result of
TableScan
is incorrect whenRange
is empty #7583 - Support the
PointGet
operator for theUPDATE
statement #7586 - Fix the panic issue during the process of executing the
FirstRow
aggregate function in some conditions #7624
- Fix the potential
DataRace
issue when theHashJoin
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
- 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
- Add Trace related dependencies #7532
- Enable the
mutex profile
feature of Golang #7512 - The
Admin
statement requires theSuper_priv
privilege #7486 - Forbid users to
Drop
crucial system tables #7471 - Switch from
juju/errors
topkg/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
- Add the unsigned flag for the
Year
type #7542 - Fix the issue of configuring the result length of the
Year
type in thePrepare
/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 theinformation_schema.COLUMNS
table #7602 - Fix the issue that Parser reports an error when the single line comment is empty #7612
- Check the value of
max_allowed_packet
in theinsert
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
- Set correct
last_insert_id
in theInsertOnDuplicateUpdate
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
- 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 beNULL
#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
- Support the issue that the
Seek
operation only obtainsKey
#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
- Support showing memory usage of the executing statements in the
SHOW PROCESSLIST
statement - Support setting the table comment using the
Alter
statement
- 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
- 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
- Support
SHOW GRANTS FOR CURRENT_USER();
- Support the
SET TRANSACTION
syntax - Support displaying floating point numbers using scientific notation
- Improve the execution performance of
DecodeBytes
- Optimize
LIMIT 0
toTableDual
, to avoid building useless execution plans
- Fix the issue that the
Expression
inUnionScan
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
andLIMIT 0
- Support closing the
Join Reorder
optimization 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 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
- 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
- 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 ofJoin Key
in 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 Index
operation 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_config
session 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
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
- Fix the panic issue in the
Union
andIndex 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
- 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 INDEX
statement - Optimize the performance of the
InsertIntoIgnore
statement
- 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
- 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 theCREATE TABLE
statement - Add
row_id
column 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 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