TiDB 2.1.18 Release Notes
Release date: November 4, 2019
TiDB version: 2.1.18
TiDB Ansible version: 2.1.18
TiDB
- 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
PD
- Improve the
--helpcommand output of pd-ctl #1772
Tools
- 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
TiDB Ansible
- 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