|
| 1 | +--- |
| 2 | +title: TiDB 2.1 RC2 Release Notes |
| 3 | +category: Releases |
| 4 | +--- |
| 5 | + |
| 6 | +# TiDB 2.1 RC2 Release Notes |
| 7 | + |
| 8 | +On September 14, 2018, TiDB 2.1 RC2 is released. Compared with TiDB 2.1 RC1, this release has great improvement in stability, SQL optimizer, statistics information, and execution engine. |
| 9 | + |
| 10 | +## TiDB |
| 11 | + |
| 12 | +* SQL Optimizer |
| 13 | + * Put forward a proposal of the next generation Planner [#7543](https://github.com/pingcap/tidb/pull/7543) |
| 14 | + * Improve the optimization rules of constant propagation [#7276](https://github.com/pingcap/tidb/pull/7276) |
| 15 | + * Enhance the computing logic of `Range` to enable it to handle multiple `IN` or `EQUAL` conditions simultaneously [#7577](https://github.com/pingcap/tidb/pull/7577) |
| 16 | + * Fix the issue that the estimation result of `TableScan` is incorrect when `Range` is empty [#7583](https://github.com/pingcap/tidb/pull/7583) |
| 17 | + * Support the `PointGet` operator for the `UPDATE` statement [#7586](https://github.com/pingcap/tidb/pull/7586) |
| 18 | + * Fix the panic issue during the process of executing the `FirstRow` aggregate function in some conditions [#7624](https://github.com/pingcap/tidb/pull/7624) |
| 19 | +* SQL Execution Engine |
| 20 | + * Fix the potential `DataRace` issue when the `HashJoin` operator encounters an error [#7554](https://github.com/pingcap/tidb/pull/7554) |
| 21 | + * Make the `HashJoin` operator read the inner table and build the hash table simultaneously [#7544](https://github.com/pingcap/tidb/pull/7544) |
| 22 | + * Optimize the performance of Hash aggregate operators [#7541](https://github.com/pingcap/tidb/pull/7541) |
| 23 | + * Optimize the performance of Join operators [#7493](https://github.com/pingcap/tidb/pull/7493), [#7433](https://github.com/pingcap/tidb/pull/7433) |
| 24 | + * Fix the issue that the result of `UPDATE JOIN` is incorrect when the Join order is changed [#7571](https://github.com/pingcap/tidb/pull/7571) |
| 25 | + * Improve the performance of Chunk’s iterator [#7585](https://github.com/pingcap/tidb/pull/7585) |
| 26 | +* Statistics |
| 27 | + * Fix the issue that the auto Analyze work repeatedly analyzes the statistics [#7550](https://github.com/pingcap/tidb/pull/7550) |
| 28 | + * Fix the statistics update error that occurs when there is no statistics change [#7530](https://github.com/pingcap/tidb/pull/7530) |
| 29 | + * Use the RC isolation level and low priority when building `Analyze` requests [#7496](https://github.com/pingcap/tidb/pull/7496) |
| 30 | + * Support enabling statistics auto-analyze on certain period of a day [#7570](https://github.com/pingcap/tidb/pull/7570) |
| 31 | + * Fix the panic issue when logging the statistics information [#7588](https://github.com/pingcap/tidb/pull/7588) |
| 32 | + * Support configuring the number of buckets in the histogram using the `ANALYZE TABLE WITH BUCKETS` statement [#7619](https://github.com/pingcap/tidb/pull/7619) |
| 33 | + * Fix the panic issue when updating an empty histogram [#7640](https://github.com/pingcap/tidb/pull/7640) |
| 34 | + * Update `information_schema.tables.data_length` using the statistics information [#7657](https://github.com/pingcap/tidb/pull/7657) |
| 35 | +* Server |
| 36 | + * Add Trace related dependencies [#7532](https://github.com/pingcap/tidb/pull/7532) |
| 37 | + * Enable the `mutex profile` feature of Golang [#7512](https://github.com/pingcap/tidb/pull/7512) |
| 38 | + * The `Admin` statement requires the `Super_priv` privilege [#7486](https://github.com/pingcap/tidb/pull/7486) |
| 39 | + * Forbid users to `Drop` crucial system tables [#7471](https://github.com/pingcap/tidb/pull/7471) |
| 40 | + * Switch from `juju/errors` to `pkg/errors` [#7151](https://github.com/pingcap/tidb/pull/7151) |
| 41 | + * Complete the functional prototype of SQL Tracing [#7016](https://github.com/pingcap/tidb/pull/7016) |
| 42 | + * Remove the goroutine pool [#7564](https://github.com/pingcap/tidb/pull/7564) |
| 43 | + * Support viewing the goroutine information using the `USER1` signal [#7587](https://github.com/pingcap/tidb/pull/7587) |
| 44 | + * Set the internal SQL to high priority while TiDB is started [#7616](https://github.com/pingcap/tidb/pull/7616) |
| 45 | + * Use different labels to filter internal SQL and user SQL in monitoring metrics [#7631](https://github.com/pingcap/tidb/pull/7631) |
| 46 | + * Store the top 30 slow queries in the last week to the TiDB server [#7646](https://github.com/pingcap/tidb/pull/7646) |
| 47 | + * Put forward a proposal of setting the global system time zone for the TiDB cluster [#7656](https://github.com/pingcap/tidb/pull/7656) |
| 48 | + * Enrich the error message of “GC life time is shorter than transaction duration” [#7658](https://github.com/pingcap/tidb/pull/7658) |
| 49 | + * Set the global system time zone when starting the TiDB cluster [#7638](https://github.com/pingcap/tidb/pull/7638) |
| 50 | +* Compatibility |
| 51 | + * Add the unsigned flag for the `Year` type [#7542](https://github.com/pingcap/tidb/pull/7542) |
| 52 | + * Fix the issue of configuring the result length of the `Year` type in the `Prepare`/`Execute` mode [#7525](https://github.com/pingcap/tidb/pull/7525) |
| 53 | + * Fix the issue of inserting zero timestamp in the `Prepare`/`Execute` mode [#7506](https://github.com/pingcap/tidb/pull/7506) |
| 54 | + * Fix the error handling issue of the integer division [#7492](https://github.com/pingcap/tidb/pull/7492) |
| 55 | + * Fix the compatibility issue when processing `ComStmtSendLongData` [#7485](https://github.com/pingcap/tidb/pull/7485) |
| 56 | + * Fix the error handling issue during the process of converting string to integer [#7483](https://github.com/pingcap/tidb/pull/7483) |
| 57 | + * Optimize the accuracy of values in the `information_schema.columns_in_table` table [#7463](https://github.com/pingcap/tidb/pull/7463) |
| 58 | + * Fix the compatibility issue when writing or updating the string type of data using the MariaDB client [#7573](https://github.com/pingcap/tidb/pull/7573) |
| 59 | + * Fix the compatibility issue of aliases of the returned value [#7600](https://github.com/pingcap/tidb/pull/7600) |
| 60 | + * Fix the issue that the `NUMERIC_SCALE` value of the float type is incorrect in the `information_schema.COLUMNS` table [#7602](https://github.com/pingcap/tidb/pull/7602) |
| 61 | + * Fix the issue that Parser reports an error when the single line comment is empty [#7612](https://github.com/pingcap/tidb/pull/7612) |
| 62 | +* Expressions |
| 63 | + * Check the value of `max_allowed_packet` in the `insert` function [#7528](https://github.com/pingcap/tidb/pull/7528) |
| 64 | + * Support the built-in function `json_contains` [#7443](https://github.com/pingcap/tidb/pull/7443) |
| 65 | + * Support the built-in function `json_contains_path` [#7596](https://github.com/pingcap/tidb/pull/7596) |
| 66 | + * Support the built-in function `encode/decode` [#7622](https://github.com/pingcap/tidb/pull/7622) |
| 67 | + * Fix the issue that some time related functions are not compatible with the MySQL behaviors in some cases [#7636](https://github.com/pingcap/tidb/pull/7636) |
| 68 | + * Fix the compatibility issue of parsing the time type of data in string [#7654](https://github.com/pingcap/tidb/pull/7654) |
| 69 | + * Fix the issue that the time zone is not considered when computing the default value of the `DateTime` data [#7655](https://github.com/pingcap/tidb/pull/7655) |
| 70 | +* DML |
| 71 | + * Set correct `last_insert_id` in the `InsertOnDuplicateUpdate` statement [#7534](https://github.com/pingcap/tidb/pull/7534) |
| 72 | + * Reduce the cases of updating the `auto_increment_id` counter [#7515](https://github.com/pingcap/tidb/pull/7515) |
| 73 | + * Optimize the error message of `Duplicate Key` [#7495](https://github.com/pingcap/tidb/pull/7495) |
| 74 | + * Fix the `insert...select...on duplicate key update` issue [#7406](https://github.com/pingcap/tidb/pull/7406) |
| 75 | + * Support the `LOAD DATA IGNORE LINES` statement [#7576](https://github.com/pingcap/tidb/pull/7576) |
| 76 | +* DDL |
| 77 | + * Add the DDL job type and the current schema version information in the monitor [#7472](https://github.com/pingcap/tidb/pull/7472) |
| 78 | + * Complete the design of the `Admin Restore Table` feature [#7383](https://github.com/pingcap/tidb/pull/7383) |
| 79 | + * Fix the issue that the default value of the `Bit` type exceeds 128 [#7249](https://github.com/pingcap/tidb/pull/7249) |
| 80 | + * Fix the issue that the default value of the `Bit` type cannot be `NULL` [#7604](https://github.com/pingcap/tidb/pull/7604) |
| 81 | + * Reduce the interval of checking `CREATE TABLE/DATABASE` in the DDL queue [#7608](https://github.com/pingcap/tidb/pull/7608) |
| 82 | + * Use the `ddl/owner/resign` HTTP interface ro release the DDL owner and start electing a new owner [#7649](https://github.com/pingcap/tidb/pull/7649) |
| 83 | +* TiKV Go Client |
| 84 | + * Support the issue that the `Seek` operation only obtains `Key` [#7419](https://github.com/pingcap/tidb/pull/7419) |
| 85 | +* [Table Partition](https://github.com/pingcap/tidb/projects/6) (Experimental) |
| 86 | + * Fix the issue that the `Bigint` type cannot be used as the partition key [#7520](https://github.com/pingcap/tidb/pull/7520) |
| 87 | + * Support the rollback operation when an issue occurs during adding an index in the partitioned table [#7437](https://github.com/pingcap/tidb/pull/7437) |
| 88 | + |
| 89 | +## PD |
| 90 | + |
| 91 | +* Features |
| 92 | + * Support the `GetAllStores` interface [#1228](https://github.com/pingcap/pd/pull/1228) |
| 93 | + * Add the statistics of scheduling estimation in Simulator [#1218](https://github.com/pingcap/pd/pull/1218) |
| 94 | +* Improvements |
| 95 | + * Optimize the handling process of down stores to make up replicas as soon as possible [#1222](https://github.com/pingcap/pd/pull/1222) |
| 96 | + * Optimize the start of Coordinator to reduce the unnecessary scheduling caused by restarting PD [#1225](https://github.com/pingcap/pd/pull/1225) |
| 97 | + * Optimize the memory usage to reduce the overhead caused by heartbeats [#1195](https://github.com/pingcap/pd/pull/1195) |
| 98 | + * Optimize error handling and improve the log information [#1227](https://github.com/pingcap/pd/pull/1227) |
| 99 | + * Support querying the Region information of a specific store in pd-ctl [#1231](https://github.com/pingcap/pd/pull/1231) |
| 100 | + * Support querying the topN Region information based on version comparasion in pd-ctl [#1233](https://github.com/pingcap/pd/pull/1233) |
| 101 | + * Support more accurate TSO decoding in pd-ctl [#1242](https://github.com/pingcap/pd/pull/1242) |
| 102 | +* Bug fix |
| 103 | + * Fix the issue that pd-ctl uses the `hot store` command to exit wrongly [#1244](https://github.com/pingcap/pd/pull/1244) |
| 104 | + |
| 105 | +## TiKV |
| 106 | + |
| 107 | +* Performance |
| 108 | + * Support splitting Regions based on statistics estimation to reduce the I/O cost [#3511](https://github.com/tikv/tikv/pull/3511) |
| 109 | + * Reduce clone in the transaction scheduler [#3530](https://github.com/tikv/tikv/pull/3530) |
| 110 | +* Improvements |
| 111 | + * Add the pushdown support for a large number of built-in functions |
| 112 | + * Add the `leader-transfer-max-log-lag` configuration to fix the failure issue of leader scheduling in specific scenarios [#3507](https://github.com/tikv/tikv/pull/3507) |
| 113 | + * Add the `max-open-engines` configuration to limit the number of engines opened by `tikv-importer` simultaneously [#3496](https://github.com/tikv/tikv/pull/3496) |
| 114 | + * Limit the cleanup speed of garbage data to reduce the impact on `snapshot apply` [#3547](https://github.com/tikv/tikv/pull/3547) |
| 115 | + * Broadcast the commit message for crucial Raft messages to avoid unnecessary delay [#3592](https://github.com/tikv/tikv/pull/3592) |
| 116 | +* Bug fixes |
| 117 | + * Fix the leader election issue caused by discarding the `PreVote` message of the newly split Region [#3557](https://github.com/tikv/tikv/pull/3557) |
| 118 | + * Fix follower related statistics after merging Regions [#3573](https://github.com/tikv/tikv/pull/3573) |
| 119 | + * Fix the issue that the local reader uses obsolete Region information [#3565](https://github.com/tikv/tikv/pull/3565) |
0 commit comments