title | aliases | summary | ||
---|---|---|---|---|
TiDB 2.1.18 Release Notes |
|
TiDB 2.1.18 was released on November 4, 2019. The release includes various fixes and optimizations for SQL optimizer, SQL engine, server, DDL, monitor, and tools. Some notable improvements include support for using parameters in ORDER BY, GROUP BY, and LIMIT OFFSET, and adding new metrics for monitoring Add Index operation progress. The TiDB Ansible version 2.1.18 also includes updates and new monitoring items for TiDB Binlog. |
Release date: November 4, 2019
TiDB version: 2.1.18
TiDB Ansible version: 2.1.18
- SQL Optimizer
- Fix the issue that invalid query ranges might appear when split by feedback #12172
- Fix the issue that the privilege check is incorrect in point get plan #12341
- Optimize execution performance of the
select ... limit ... offset …
statement by pushing the Limit operator down to theIndexLookUpReader
execution logic #12380 - Support using parameters in
ORDER BY
,GROUP BY
andLIMIT OFFSET
#12514 - Fix the issue that
IndexJoin
on the partition table returns incorrect results #12713 - Fix the issue that the
str_to_date
function in TiDB returns a different result from MySQL when the date string and the format string do not match #12757 - Fix the issue that outer join is incorrectly converted to inner join when the
cast
function is included in the query conditions #12791 - Fix incorrect expression passing in the join condition of
AntiSemiJoin
#12800
- SQL Engine
- Fix the incorrectly rounding of time (for example,
2019-09-11 11:17:47.999999666
should be rounded to2019-09-11 11:17:48
) #12259 - Fix the issue that the duration by
sql_type
for thePREPARE
statement is not shown in the monitoring record #12329 - Fix the panic issue when the
from_unixtime
function handles null #12572 - Fix the compatibility issue that when an invalid value is inserted as the
YEAR
type, the result isNULL
instead of0000
#12744 - Improve the behavior of the
AutoIncrement
column when it is implicitly allocated, to keep it consistent with the default mode of MySQL auto-increment locking ("consecutive" lock mode): for the implicit allocation of multipleAutoIncrement
IDs in a single-lineInsert
statement, TiDB guarantees the continuity of the allocated values. This improvement ensures that the JDBCgetGeneratedKeys()
method will get the correct results in any scenario #12619 - Fix the issue that the query is hanged when
HashAgg
serves as a child node ofApply
#12769 - Fix the issue that the
AND
andOR
logical expressions return incorrect results when it comes to type conversion #12813
- Fix the incorrectly rounding of time (for example,
- Server
- Fix the issue that the
SLEEP()
function is invalid for theKILL TIDB QUERY
statements #12159 - Fix the issue that no error is reported when
AUTO_INCREMENT
incorrectly allocatesMAX int64
andMAX uint64
#12210 - Fix the issue that the slow query logs are not recorded when the log level is
ERROR
#12373 - Adjust the number of times that TiDB caches schema changes and corresponding changed table information from 100 to 1024, and support modification by using the
tidb_max_delta_schema_count
system variable #12515 - Change the query start time from the point of "starting to execute" to "starting to compile" to make SQL statistics more accurate #12638
- Add the record of
set session autocommit
in TiDB logs #12568 - Record SQL query start time in
SessionVars
to prevent it from being reset during plan execution #12676 - Support
?
placeholder inORDER BY
,GROUP BY
andLIMIT OFFSET
#12514 - Add the
Prev_stmt
field in slow query logs to output the previous statement when the last statement isCOMMIT
#12724 - Record the last statement before
COMMIT
into the log when theCOMMIT
fails in an explicitly committed transaction #12747 - Optimize the saving method of the previous statement when the TiDB server executes a SQL statement to improve performance #12751
- Fix the panic issue caused by
FLUSH PRIVILEGES
statements under theskip-grant-table=true
configuration #12816 - Increase the default minimum step of applying AutoID from
1000
to30000
to avoid performance bottleneck when there are many write requests in a short time #12891 - Fix the issue that the failed
Prepared
statement is not print in the error log when TiDB panics #12954 - Fix the issue that the
COM_STMT_FETCH
time record in slow query logs is inconsistent with that in MySQL #12953 - Add an error code in the error message for write conflicts to quickly locate the cause #12878
- Fix the issue that the
- DDL
- Disallow dropping the
AUTO INCREMENT
attribute of a column by default. Modify the value of thetidb_allow_remove_auto_inc
variable if you do need to drop this attribute. See System Variables for more details. #12146 - Support multiple
unique
s when creating a unique index in theCreate Table
statement #12469 - Fix a compatibility issue that if the foreign key constraint in
CREATE TABLE
statement has no schema, schema of the created table should be used instead of returning aNo Database selected
error #12678 - Fix the issue that the
invalid list index
error is reported when executingADMIN CANCEL DDL JOBS
#12681
- Disallow dropping the
- Monitor
- Improve the
--help
command output of pd-ctl #1772
- TiDB Binlog
- Fix the issue that
ALTER DATABASE
related DDL operations cause Drainer to exit abnormally #770 - Support querying the transaction status information for Commit binlog to improve replication efficiency #761
- Fix the issue that a Pump panic might occur when Drainer's
start_ts
is greater than Pump's largestcommit_ts
#759
- Fix the issue that
- Add two monitoring items "queue size" and "query histogram" for TiDB Binlog #952
- Update TiDB alerting rules #961
- Check the configuration file before the deployment and upgrade #973
- Add a new metric to monitor index speed in TiDB #987
- Update TiDB Binlog monitoring dashboard to make it compatible with Grafana v4.6.3 #993