| title | TiDB 2.1.18 Release Notes | ||
|---|---|---|---|
| aliases |
|
||
| summary | 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 theIndexLookUpReaderexecution logic #12380 - Support using parameters in
ORDER BY,GROUP BYandLIMIT OFFSET#12514 - Fix the issue that
IndexJoinon the partition table returns incorrect results #12713 - Fix the issue that the
str_to_datefunction 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
castfunction 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.999999666should be rounded to2019-09-11 11:17:48) #12259 - Fix the issue that the duration by
sql_typefor thePREPAREstatement is not shown in the monitoring record #12329 - Fix the panic issue when the
from_unixtimefunction handles null #12572 - Fix the compatibility issue that when an invalid value is inserted as the
YEARtype, the result isNULLinstead of0000#12744 - Improve the behavior of the
AutoIncrementcolumn 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 multipleAutoIncrementIDs in a single-lineInsertstatement, 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
HashAggserves as a child node ofApply#12769 - Fix the issue that the
ANDandORlogical 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 QUERYstatements #12159 - Fix the issue that no error is reported when
AUTO_INCREMENTincorrectly allocatesMAX int64andMAX 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_countsystem 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 autocommitin TiDB logs #12568 - Record SQL query start time in
SessionVarsto prevent it from being reset during plan execution #12676 - Support
?placeholder inORDER BY,GROUP BYandLIMIT OFFSET#12514 - Add the
Prev_stmtfield in slow query logs to output the previous statement when the last statement isCOMMIT#12724 - Record the last statement before
COMMITinto the log when theCOMMITfails 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 PRIVILEGESstatements under theskip-grant-table=trueconfiguration #12816 - Increase the default minimum step of applying AutoID from
1000to30000to avoid performance bottleneck when there are many write requests in a short time #12891 - Fix the issue that the failed
Preparedstatement is not print in the error log when TiDB panics #12954 - Fix the issue that the
COM_STMT_FETCHtime 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 INCREMENTattribute of a column by default. Modify the value of thetidb_allow_remove_auto_incvariable if you do need to drop this attribute. See System Variables for more details. #12146 - Support multiple
uniques when creating a unique index in theCreate Tablestatement #12469 - Fix a compatibility issue that if the foreign key constraint in
CREATE TABLEstatement has no schema, schema of the created table should be used instead of returning aNo Database selectederror #12678 - Fix the issue that the
invalid list indexerror is reported when executingADMIN CANCEL DDL JOBS#12681
- Disallow dropping the
- Monitor
- Improve the
--helpcommand output of pd-ctl #1772
- TiDB Binlog
- Fix the issue that
ALTER DATABASErelated 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_tsis 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