Releases: pingcap/tidb
Releases · pingcap/tidb
tidb-server v4.0.1
(There is no public release note for this version of TiDB Server)
tidb-server v4.0.0
Bug Fixes
- Do not send batch commands to TiFLASH, to fix unpredictable timeout for TiFLASH engine. #17307
- Fix a bug signed/unsigned integer is not distinguished during the partition pruning, and also optimize performance for some cases. #17230
- Fix a bug that upgrading from 3.1.1 to 4.0 fails #17300
- Fix a partition selection bug for the update statement, partition selection should affect the whole update statement #17305
- Fix panic after sending fail with ambiguous errors #17380
- Fix panic when creating a key partition table #17242
- Fix planner incorrectly choose index merge join in some cases. #17365
- Fix the check of creating and altering table, unique prefix index must not be used on the partition table #17213
- Fix the execution duration metric of the
SELECT
statement. #16561 - Fix the issue that GC worker blocks on channel sending forever when an error occurs. #16915
- Fix the issue that UNIQUE constraint on boolean column results in an incorrect result in a comparison #17306
- Fix the panic when aggregation pushes down enable on the partition table. #17328
- Fix the problem TiDB accesses the down peers in some cases. #17342
- Fix the problem when isolation read engines in tidb.toml do not take effect. #17322
- Fix the wrong result order for enforced stream aggregation. #17347
- Make the aggregation function
distinct
consider collations. #17240 - Support
insert/replace into tbl_name partition(partition_name_list)
#17313 - Support
is null
filter condition in hash partition pruning #17310 - Support admin check index on the partition table #17392
- Support admin cleanup index on the partition table #17405
- Support admin recover index on the partition table. #17317
- Support range partition pruning for 'in' expression #17320
- When
DIV()
is used as partition expression, fix the behavior of insert operation under different sql_mode, handleERROR_FOR_DIVISION_BY_ZERO
correctly. #17314
Changed Behaviors
- Enable Green GC by default. #16955
- Make the error message of
Transaction is too large
easier to understand. #17219
New Features
tidb-server v4.0.0-rc.2
Changed Behaviors
- Remove the size limit for a single transaction (100 MB) when TiDB Binlog is enabled. Now the size limit for a transaction is 10 GB. However, if TiDB Binlog is enabled and the downstream is Kafka, configure the
txn-total-size-limit
parameter according to the message size limit of 1 GB in kafka #16941 - Change the behavior from querying the default time range to returning an error and requesting a specified time range if the time range is not specified when querying the
CLUSTER_LOG
table 17003 - If the unsupported
sub-partition
orlinear hash
option is specified when creating the partitioned table using theCREATE TABLE
statement, the normal table is created rather than the partitioned table with the options ignored #17197
Bug Fixes
- Fix the issue that the wrong partition is chosen when the
WHERE
clause has only one equivalent condition #17054 - Fix the issue of wrong results caused by building the incorrect Index range when the
WHERE
clause only contains the string column #16660 - Fix the panic issue that occurs when executing the
PointGet
query in the transaction after theDELETE
operation #16991 - Fix the issue that the GC worker might encounter the deadlock when an error occurs #16915
- Avoid the unnecessary RegionMiss retry when the TiKV response is slow but not down #16956
- Change the log level in the client in the handshake phase of the MySQL protocol to
DEBUG
to solve the problem that interferes with log output #16881 - Fix the issue that the Region is not pre-split according to the
PRE_SPLIT_REGIONS
information defined by the table after theTRUNCATE
operation #16776 - Fix the issue of soaring goroutine caused by retry when TiKV is unavailable during the second phase of the two-phase commit #16876
- Fix the panic issue of statement execution when some expressions cannot be pushed down #16869
- Fix the wrong execution result of the IndexMerge operation on the partitioned table #17124
- Fix the performance reduction of
wide_table
caused by the mutex contention of Memory Trackers 17234 - Improve the logic that determines whether to use vectorization for expression execution in multiple operators #16383
- Fix the issue that the
IndexMerge
hint fails to check the database name correctly #16932 - Forbid truncating the sequence object #17037
- Fix the issue that the
INSERT
/UPDATE
/ANALYZE
/DELETE
statements can be performed on a sequence object #16957 - Fix the issue that the internal SQL statements in the bootstrap phase are not correctly marked as internal queries in the Statement Summary table #17062
- Fix the error that occurs when a filter condition supported by TiFlash but not by TiKV is pushed down to the
IndexLookupJoin
operator #17036 - Fix the concurrency issue of the
LIKE
expression that might occur after the collation is enabled #16997 - Fix the issue that the
LIKE
function cannot correctly build theRange
query index after the collation is enabled #16783 - Fix the issue that a wrong value is returned when executing
@@LAST_PLAN_FROM_CACHE
after thePlan Cache
statement is triggered #16831 - Fix the issue that
TableFilter
on the index is missed when calculating candidate paths forIndexMerge
#16947 - Fix the issue that a physical query plan cannot be generated when using the
MergeJoin
hint and theTableDual
operator exists #17016 - Fix the wrong capitalization of the values in the
Stmt_Type
column of the Statement Summary table #17018 - Fix the issue that the
Permission Denied
error is reported because the service cannot be started when different users use the sametmp-storage-path
#16996 - Fix the issue that the
NotNullFlag
result type is incorrectly set for an expression whose result type is determined by multiple input columns, such asCASE WHEN
#16995 - Fix the issue that the green GC might leave unresolved locks when dirty stores exist #16949
- Fix the issue that the green GC might leave unresolved locks when encountering a single key with multiple different locks #16948
- Fix the issue of inserting a wrong value in the
INSERT VALUE
statement because a sub-query refers to a parent query column #16952 - Fix the issue of incorrect results when using the
AND
operator on theFloat
value #16666 - Fix the wrong information of the
WAIT_TIME
field in the expensive log #16907 - Fix the issue that the
SELECT FOR UPDATE
statement cannot be recorded in the slow log in the pessimistic transaction mode #16897 - Fix the wrong result that occurs when executing
SELECT DISTINCT
on a column of theEnum
orSet
type #16892 - Fix the display error of
auto_random_base
in theSHOW CREATE TABLE
statement #16864 - Fix the incorrect value of
string_value
in theWHERE
clause #16559 - Fix the issue that the error message of the
GROUP BY
window function is inconsistent with that of MySQL #16165 - Fix the issue that the
FLASH TABLE
statement fails to execute when the database name contains the uppercase letter #17167 - Fix the inaccurate memory tracing of the Projection executor #17118
- Fix the issue of incorrect time filtering of the
SLOW_QUERY
table in different time zones 17164 - Fix the panic issue that occurs when
IndexMerge
is used with the virtual generated column 17126 - Fix the capitalization issue of the
INSTR
andLOCATE
function 17068 - Fix the issue that the
tikv server timeout
error is reported frequently after thetidb_allow_batch_cop
configuration is enabled 17161 - Fix the issue that the result of performing
XOR
operation on the Float type is inconsistent with that of MySQL 8.0 16978 - Fix the issue that no error is reported when the unsupported
ALTER TABLE REORGANIZE PARTITION
statement is executed 17178 - Fix the issue that an error is reported when
EXPLAIN FORMAT="dot" FOR CONNECTION ID
encounters an unsupported plan 17160 - Fix the record issue of the prepared statement in the
EXEC_COUNT
column of the Statement Summary table 17086 - Fix the issue that the value is not validated when setting the Statement Summary system variable 17129
- Fix the issue that an error is reported if an overflow value is used to query the
UNSIGNED BIGINT
primary key when the plan cache is enabled 17120 - Fix the incorrect QPS display by the machine instance and request type on the Grafana TiDB Summary dashboard 17105
New Features
- Add support for the
BACKUP
andRESTORE
commands to back up and restore data 16960 - Support pre-checking the data volume in a single Region before commit and pre-splitting the Region when the data volume exceeds the threshold 16959
- Add the new
LAST_PLAN_FROM_CACHE
variable with aSession
scope to indicate whether the last executed statement hits the plan cache 16830 - Support recording the
Cop_time
information in slow log and theSLOW_LOG
table 16904 - Add in Grafana more metrics that monitor the memory status of Go Runtime 16928
- Support outputting the
forUpdateTS
andRead Consistency
isolation level information in General Log 16946 - Support collapsing duplicate requests of resolving locks in TiKV Region 16925
- Support using the
SET CONFIG
statement to modify the configuration of PD/TiKV nodes [16853](https://github.com/pingcap/tidb/pul...
tidb-server v3.0.14
Bug Fixes
- Fix the issue that the query result of
index join
is incorrect when thejoin
condition has multiple equivalent conditions on the column with thehandle
attribute #15734 - Fix the panic that occurs when performing the
fast analyze
operation on the column with thehandle
attribute #16079 - Fix the issue that the
query
field in the DDL job structure is incorrect when the DDL statement is executed in a way ofprepare
. This issue might cause data inconsistency between the upstream and the downstream when Binlog is used for data replication #15443 - Fix the issue that
WEEKEND
function is not compatible with MySQL when the SQL mode isALLOW_INVALID_DATES
#16170 - Fix the issue that the
DROP INDEX
statement fails to execute when the index column contains the auto-increment primary key #16008 - Fix the issue of incorrect values of the
TABLE_NAMES
column in the Statement Summary #15231 - Fix the issue that some expressions have incorrect results when the plan cache is enabled [#16184(https://github.com//pull/16184)
- Fix the issue that the result of the
not
/istrue
/isfalse
function is incorrect #15916 - Fix the panic caused by the
MergeJoin
operation on tables with redundant indexes #15919 - Fix the issue caused by incorrectly simplifying the link when the predicate only refers to the outer table #16492
- Fix the issue that the
CURRENT_ROLE
function reports an error caused by theSET ROLE
statement #15569 - Fix the issue that the result of the
LOAD DATA
statement is incompatible with MySQL when this statement encounters\
#16633 - Fix the issue that the database visibility is incompatible with MySQL #14939
- Fix the issue of incorrect privilege check for the
SET DEFAULT ROLE ALL
statement #15585 - Fix the issue of partition pruning failure caused by
plan cache
#15818 - Fix the issue that
schema change
is reported during the transaction commit when concurrent DDL operations are performed on a table and blocking exists, because the transaction does not lock the related table #15707 - Fix the incorrect behavior of
IF(not_int, *, *)
#15356 - Fix the incorrect behavior of
CASE WHEN (not_int)
#15359 - Fix the issue that the
Unknown column
error message is returned when using aview
that is not in the current schema #15866 - Fix the issue that the result of parsing time strings is incompatible with MySQL #16242
- Fix the possible panic of the collation operator in
left join
when anull
column exists in the right child node #16528 - Fix the issue that no error message is returned even though the SQL execution is blocked when TiKV keeps returning the
StaleCommand
error message #16528 - Fix the possible panic caused by the port probing when the audit plugin is enabled #15967
- Fix the panic caused when
fast analyze
works on indices only #15967 - Fix the possible panic of the
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
statement execution in some cases #16309 - Fix the issue of TiDB OOM caused by specifying a large number of partitions (
9999999999999
, for example) when the hash partition table is created without checking the number of partitions before allocating memory #16218 - Fix the issue of incorrect information of partitioned tables in
information_schema.tidb_hot_table
#16726 - Fix the issue that the partition selection algorithm does not take effect on the hash partitioned table #16070
- Fix the issue that the HTTP API of the mvcc series does not support partitioned tables #16191
- Keep the error handling of the
UNION
statement consistent with that of theSELECT
statement #16137 - Fix the issue of incorrect behavior when the parameter type of the
VALUES
function isbit (n)
#15486 - Fix the issue that the processing logic of TiDB is inconsistent with MySQL when the
view
column name is too long. In this case, the system automatically generates a short column name. #14873 - Fix the issue that
(not not col)
is incorrectly optimized ascol
#16094 - Fix the issue of incorrect
range
of the inner table built byIndexLookupJoin
plans #15753 - Fix the issue that
only_full_group_by
fails to correctly check expressions with brackets #16012 - Fix the issue that an error is returned when the
select view_name.col_name from view_name
statement is executed #15572
Changed Behaviors
- Adjust the user privilege in performance_schema and metrics_schema from read-write to read-only #15417
New Features
- Add syntax
ALTER TABLE ... AUTO_ID_CACHE
for setting the cache step of auto id explicitly #16287 - Add the schema name column and the table name column to the query results of the
admin show ddl jobs
statement #16428 - Enhance the
RECOVER TABLE
syntax to support recovering truncated tables # 15458 - Support the privilege check for the
SHOW GRANTS
statement #16168 - Support the privilege check for the
LOAD DATA
statement #16736 - Improve the performance of partition pruning when functions related to time and date are used as partition keys #15618
- Adjust the log level of
dispatch error
fromWARN
toERROR
#16232 - Support the
require-secure-transport
startup option to force clients to use TLS #15415 - Support HTTP communication between TiDB components when TLS is configured #15419
- Add the
start_ts
information of the current transaction to theinformation_schema.processlist
table #16160 - Support automatically reloading the TLS certificate information used for communication among clusters #15162
- Improve the read performance of the partitioned tables by restructuring the partition pruning #15628
- Support the partition pruning feature when
floor(unix_timestamp(a))
is used as the partition expression of therange
partition table #16521 - Modify the behavior when the
update
statement contains aview
and does not update theview
, from not allowing execution to normal execution #16787 Allow executing theupdate
statement that contains aview
and does not update the view - Prohibit the creation of nested
view
s #15424 - Prohibit truncating
view
#16420 - Prohibit using the
update
statement to explicitly update the values of a column when this column is not in thepublic
state #15576 - Prohibit starting TiDB when the
status
port is occupied #15466 - Change the character set of the
current_role
function frombinary
toutf8mb4
#16083 - Improve
max-execution-time
usability by checking the interrupt signal when the data of a new Region is read #15615
tidb-server v3.1.1
New Features
- Add the table option for
auto_rand_base
#16812 - Add the
Feature ID
comment: In the special comments of SQL statements, only the registered statement fragment can be parsed by the parser; otherwise, the statement is ignored #16155
Bug Fixes
- Fix the issue that the isolation read setting at the instance level does not take effect, and that the isolation read setting is incorrectly retained after TiDB is upgraded #16482 #16802
- Fix the partition selection syntax on the hash partitioned table so that an error is not reported for syntaxes such as
partition (P0)
#16076 - Fix the issue that when an
UPDATE
SQL statement only queries from a view but does not update the view, the update statement still reports an error #16789 - Fix the issue of wrong results caused by removing the
not not
from the nested query #16423
tidb-server v4.0.0-rc.1
Bug Fixes
- Fix the bug that due to
MemBuffer
is not checked, inserting multiple rows byINSERT ... ON DUPLICATE KEY UPDATE
in an explicit transaction may cause incorrect results.
#16689 - Fix the bug that locking multiple rows with same keys may cause incorrect results
#16769 - Fix the bug that recycling idle gRPC connection may cause the panic of TiDB Server
#16303 - Fix the bug that the
information_schema.PROCESSLIST
cannot show negative integer correctly because of its columns are defined withUNSIGNED
types [#16004] - Forbid sharing the same temporary directory for multiple TiDB server #16026
- Fix the issue that when 'PLAN CACHE' is enabled, panic happened when running
EXPLAIN FOR CONNECTION
#16285 - Fix the issue that system variable
tidb_capture_plan_baselines
may be incorrect #16048 - Fix the issue that the wrong
group by
clause may be wrong in prepared statement #16377 - Fix the issue that
analyze primary key
may lead to a panic of TiDB server #16081 - Fix the wrong node information of TiFlash node in
cluster_info
table [#16024(https://github.com//pull/16024) - Fix the issue that index merge may lead to a panic of TiDB server #16360
- Fix the issue that index merge may cause a wrong result when the query contains generated columns #16359
- Fix wrong Sequence default value issue in
show create table
#16526 - Fix the issue that
not-null
error occured when defining a Sequence as the default value of a column #16510 - Fix the issue that running SQL statement hangs when TiKV keeps reporting
StaleCommand
#16530 - Fix some unexpected errors for specifying charset/collate for CREATE SCHEMA syntax, fix missing COLLATE part for SHOW CREATE SCHEMA syntax #16540
- Fix the issue that when 'plan cache' is enabled, partition pruning is not able to work #16723
- Fix the issue that point get plan returns a wrong result when handle overflows #16755
- Fix the issue that querying
slow_query
table with time-related equality prediction gets a wrong result #16806
New Features
- Support sending
batch coprocessor
request to TiFlash #16226 - Enable 'coprocessor cache' by default #16710
- Add 'feature-id' comment syntax: only the syntax comments in 'feature-id list' will be parsed by TiDB, otherwise they'll be ignored #16157
- Support using
SHOW CONFIG
shows the configuration of PD and TiKV #16475 - Add warnings if
use_index_merge
hint contains non-exist indices #15960
tidb-server v3.0.13
Bugfix
- Fix the issue that the when running a
INSERT ... ON DUPLICATE UPDATE
statement in a an explicit transaction and updates multiple rows, it might be executed incorrectly becauseMemBuffer
is not checked #16690
tidb-server v3.1.0
Compatibility Changes
- Support directly stopping starting of TiDB if the HTTP listening port is unavailable when the
report-status
configuration item is enabled #16291
New Features
- Support displaying the information of Coprocessor tasks in
explain format = "dot"
#16125 - Reduce the redundant stack information of log using the
disable-error-stack
configuration item #16182
Bug Fixes
- Fix the panic issue caused by the merge join operation in some scenarios #15920
- Fix the issue that some expressions are repeatedly counted in selectivity calculation #16052
- Fix the panic issue when loading the statistics information in extreme cases #15710
- Fix the issue that an error is returned in some cases when equivalent expressions cannot be recognized in SQL query #16015
- Fix the issue that an error is returned when querying the view of one database from another database #15867
- Fix the panic issue that occurs when the column is handled using
fast analyze
#16080 - Fix the incorrect character set of the
current_role
print result #16084 - Refine the log of MySQL connection handshake error #15799
- Fix the panic issue caused by port probing after the audit plugin is loaded #16065
- Fix the panic issue of the sort operator on left join because the
TypeNull
class is mistaken as a variable-length type #15739 - Fix the issue of inaccurate count of monitoring session retry error #16120
- Fix the issue of wrong results of
weekday
in theALLOW_INVALID_DATES
mode #16171 - Fix the issue that Garbage Collection (GC) might not work normally when the cluster has TiFlash nodes #15761
- Fix the issue that TiDB goes out of memory (OOM) when users set a large partition count when creating hash partitioned table #16219
- Fix the issue that warnings are mistaken as errors, and make the
union
statement have the same behavior as theselect
statement #16138 - Fix the execution error when TopN is pushed down to mocktikv #16200
- Increase the initial length of
chunk.column.nullBitMap
to avoid unnecessary cost ofruntime.growslice
#16142
tidb-server v4.0.0-rc
Compatibility Changes
- Refuse to get started instead of returning an alert log when the tidb-server status port is occupied #15177
Bug Fixes
- Fix the issue that replication between the upstream and downstream might go wrong when the DDL job is executed using the
PREPARE
statement because of the incorrect job query in the internal records #15435 - Fix the issue of incorrect subquery result in the
Read Commited
isolation level #15471 - Fix the issue of possible wrong behavior when using
INSERT ... VALUES
to specify theBIT(N)
data type #15350 - Fix the issue that the DDL Job internal retry does not fully achieve the expected outcomes because the values of
ErrorCount
fail to be summed correctly #15373 - Fix the issue that Garbage Collection might work abnormally when TiDB connects to TiFlash #15505
- Fix the issue of incorrect result caused by the Inline Projection optimization #15411
- Fix the issue that the SQL Hint
INL_MERGE_JOIN
is executed incorrectly in some cases #15515 - Fix the issue that columns with the
AutoRandom
attribute are rebased when the negative number is explicitly written to these columns #15397
New Features and Improvements
- Add the case-sensitive collation so that users can enable
utf8mb4_general_ci
andutf8_general_ci
in a new cluster #33 - Enhance the
RECOVER TABLE
syntax to support recovering truncated tables #15398 - Refuse to get started instead of returning an alert log when the the tidb-server status port is occupied #15177
- Optimize the write performance of using a sequence as the default column values #15216
- Add the
DDLJobs
system table to query the details of DDL jobs #14837 - Optimize the
aggFuncSum
performance #14887 - Optimize the output of
EXPLAIN
#15507
tidb-server v3.1.0-rc
New Features
- Use the binary search to re-implement partition pruning for better performance #15678
- Support using the
RECOVER
syntax to recover the truncated table #15460 - Add
AUTO_RANDOM
ID cache for retrying statement and recovering table #15393 - Support restoring the state of the
AUTO_RANDOM
ID allocator using therecover table
statement #15393 - Support
YEAR
,MONTH
, andTO_DAY
functions as the partitioning keys of the Hash partitioned table #15619 - Add the table ID to the schema-change related tables only when keys need to be locked in the
SELECT... FOR UPDATE
statement #15708 - Add the feature of automatically reading data from different roles according to the load balancing policy and add the leader-and-follower system variable to enable this feature #15721
- Support dynamically updating the TLS certificate every time TiDB establishes a new connection to update expired client certificate without restarting the RPC client side #15163
- Upgrade PD Client to support loading the latest certificate every time TiDB establishes a new connection #15425
- Forcibly use the HTTPS protocol with the configured TLS certificates between a TiDB server and a PD server, or between two TiDB servers when
cluster-ssl-*
is configured #15430 - Add the MySQL-compatible
--require-secure-transport
startup option to force the client to enable TLS authentication during the configuration #15442 - Add the
cluster-verify-cn
configuration item. After configuration, the status service can only be used when with the corresponding CN certificate #15137
Bug Fixes
- Use the binary search to re-implement partition pruning for better performance #15678
- Fix the information schema error caused by frequently updating the TiFlash replica #14884
- Fix the issue that
last_insert_id
is incorrectly generated when applyingAUTO_RANDOM
#15149 * Fix the issue that updating the status of TiFlash replica might cause the DDL operation to get stuck #15161 * ForbidAggregation
pushdown andTopN
pushdown when there are predicates that can not be pushed down #15141 - Forbid the nested
view
creation #15440 - Fix the error occurred when executing
SELECT CURRENT_ROLE()
afterSET ROLE ALL
#15570 - Fix the failure to identify the
view
name when executing theselect view_name.col_name from view_name
statement #15573 - Fix the issue that an error might occur when pre-processing DDL statements during the write of binlog information #15444
- Fix the panic occurred when accessing both
view
s and partitioned tables #15560 - Fix the error occurred when executing the
VALUES
function with theupdate duplicate key
statement that contains thebit(n)
data type #15487 - Fix the issue that the specified maximum execution time fails to take effect in some scenarios #15616
- Fix the issue that fails to check whether the current ReadEngine contains TiKV server when generating the execution plan using
Index Scan
#15773