Releases: pingcap/tidb
Releases · pingcap/tidb
tidb-server v4.0.9
Compatibility Changes
- Deprecate the
enable-streaming
configuration item #21055
Improvements
- Avoid the (index) merge join in a heuristical way when converting equal conditions to other conditions #21146
- Differentiate the types of user variables #21107
- Support setting the
GOGC
variable in the configuration file #20922 - Make the dumped binary time (
Timestamp
andDatetime
) more compatible with MySQL #21135 - Provide an error message for statements that use the
LOCK IN SHARE MODE
syntax #21005 - Avoid outputting unnecessary warnings or errors when folding constants in shortcut-able expressions #21040
- Raise an error when preparing the
LOAD DATA
statement #21199 - Ignore the attribute of the integer zero-fill size when changing the integer column types #20986
- Add the executor-related runtime information of DML statements in the result of
EXPLAIN ANALYZE
#21066 - Disallow multiple updates on the primary key in a singe SQL statements #21113
- Add a monitoring metric for the connection idle time #21301
- Temporarily enable the slow log when the
runtime/trace
tool is running #20578
Bug Fixes
- Fix the issue that incorrect result is returned for indeterministic function when executing a prepared point-get update with "prepared plan cache" is disabled #21883
- Fix the issue of incorrect results when using a prefix index with the
OR
condition #21287 - Fix a bug that might cause panic when automatic retry is enabled #21285
- Fix a bug that occurs when checking partition definition according to column type #21273
- Fix a bug that the value type of the partition expression is not consistent with the partition column type #21136
- Fix a bug that the hash-type partition does not check whether the partition name is unique #21257
- Fix the wrong results returned after inserting a value of the non-
INT
type into the hash partitioned table #21238 - Fix the unexpected error when using index join in the
INSERT
statement in some cases #21249 - Fix the issue that the
BigInt
unsigned column value in theCASE WHEN
operator is incorrectly converted to theBigInt
signed value #21236 - Fix a bug that index hash join and index merge join do not consider collation #21219
- Fix a bug that the partitioned table does not consider collation in the
CREATE TABLE
andSELECT
syntax #21181 - Fix the issue that the query result of
slow_query
might miss some rows #21211 - Fix the issue that
DELETE
might not delete data correctly when the database name is not in a pure lower representation #21206 - Fix a bug that causes schema change after DML operations #21050
- Fix the bug that the coalesced column cannot be queried when using join #21021
- Fix the wrong results of some semi-join queries #21019
- Fix the issue that the table lock does not take effect on the
UPDATE
statement #21002 - Fix the issue of stack overflow that occurs when building the recursive view #21001
- Fix the unexpected result returned when performing index merge join operations on outer join #20954
- Fix the issue that sometimes a transaction that has an undetermined result might be treated as failed #20925
- Fix the issue that
EXPLAIN FOR CONNECTION
cannot show the last query plan #21315 - Fix the issue that when Index Merge is used in a transaction with the Read Committed isolation level, the result might be incorrect #21253
- Fix the auto-ID allocation failure caused by the transaction retry after the write conflict #21079
- Fix the issue that JSON data cannot be correctly imported to TiDB using
LOAD DATA
#21074 - Fix the issue that the default value of newly added
Enum
-type columns is incorrect #20998 - Fix the issue that the
adddate
function inserts invalid characters #21176 - Fix the issue that the wrong
PointGet
plan generated in some situations causes wrong results #21244 - Ignore the conversion of daylight saving time in the
ADD_DATE
function to be compatible with MySQL #20888 - Fix a bug that prevents inserting strings with trailing spaces that exceed
varchar
orchar
's length constraint #21282 - Fix a bug that does not converting the integer from
[1, 69]
to[2001, 2069]
or from[70, 99]
to[1970, 1999]
when comparingint
withyear
#21283 - Fix the panic caused by the overflowing result of the
sum()
function when calculating theDouble
type field #21272 - Fix a bug that
DELETE
fails to add lock on the unique key #20705 - Fix a bug that snapshot reads hits the lock cache #21539
- Fix an issue of potential memory leak after reading a lot of data in a long-lived transaction #21129
- Fix the issue that omitting the table alias in a subquery will have a syntax error returned #20367
tidb-server v3.0.20
Compatibility Change
- Deprecate the
enable-streaming
configuration item #21054
Improvements
- Raise an error when preparing the
LOAD DATA
statement #21222
Bug Fixes
- Fix the resolved txn status cache for pessimistic transactions. #21706
- Fix the issue of inaccurate statistics that occurs when querying
INFORMATION_SCHEMA.TIDB_HOT_REGIONS
#21319 - Fix the issue that
DELETE
might not delete data correctly when the database name is not in a pure lower representation #21205 - Fix the issue of stack overflow that occurs when building the recursive view #21000
- Fix the issue of goroutine leak in TiKV client #20863
- Fix the wrong default zero value for the
year
type #20828 - Fix the issue of goroutine leak in index lookup join #20791
- Fix the issue that executing
INSERT SELECT FOR UPDATE
returns the malformed packet in the pessimistic transaction #20681 - Fix the unknown time zone
'posixrules'
#20605 - Fix the issue that occurs when converting the unsigned integer type to the bit type #20362
- Fix the corrupted default value of the bit type column #20339
- Fix the potentially incorrect results when one of the equal condition is the
Enum
orSet
type #20296 - Fix a wrong behavior of
!= any()
#20061 - Fix the issue that type conversion in
BETWEEN...AND...
returns invalid results #21503 - Fix a compatibility issue with the
ADDDATE
function #21008 - Set the correct default value for newly added
Enum
column #20999 - Fix the result of SQL statements like
SELECT DATE_ADD('2007-03-28 22:08:28',INTERVAL "-2.-2" SECOND)
to be compatible with MySQL #20627 - Fix the incorrect default value when modifying the column type #20532
- Fix the issue that the
timestamp
function gets wrong result when the input argument is thefloat
ordecimal
type #20469 - Fix a potential deadlock issue in statistics #20424
- Fix the issue that the overflown float type data is inserted #20251
tidb-server v4.0.8
New Features
- Support the new aggregate function
APPROX_PERCENTILE
#20197
Improvements
- Prioritize low-selectivity indexes in the greedy search procedure of
Selectivity()
#20154 - Record more RPC runtime information in Coprocessor runtime statistics #19264
- Speed up parsing the slow log to improve query performance #20556
- Wait for timeout execution plans during the plan binding stage to record more debug information when the SQL optimizer is verifying potential new plans #20530
- Add the execution retry time in the slow log and the slow query result #20495 #20494
- Add the
table_storage_stats
system table #20431 - Add the RPC runtime statistical information for the
INSERT
/UPDATE
/REPLACE
statement #20430 - Add the operator information in the result of
EXPLAIN FOR CONNECTION
#20384 - Adjust the TiDB error log to the
DEBUG
level for the client connection/disconnection activities #20321 - Add monitoring metrics for Coprocessor Cache #20293
- Add the runtime information of pessimistic lock keys #20199
- Add two extra sections of time consumption information in the runtime information and
trace
span #20187 - Add the runtime information of transaction commit in the slow log #20185
- Disable the index merge join #20599
- Add the ISO 8601 and timezone supports for temporal string literals #20670
Bug Fixes
- Fix the unexpected panic that occurs when using partitioned tables #20565
- Fix the wrong result of outer join when filtering the outer side using index merge join #20427
- Fix the issue that the
NULL
value is returned when converting data to theBIT
type if the data is too long #20363 - Fix the corrupted default value for the
BIT
type column #20340 - Fix the overflow error that might occur when converting the
BIT
type to theINT64
type #20312 - Fix the possible wrong result of the propagate column optimization for the hybrid type column #20297
- Fix the panic that might occur when storing outdated plans from the plan cache #20246
- Fix the bug that the returned result is mistakenly truncated if
FROM_UNIXTIME
andUNION ALL
are used together #20240 - Fix the issue that wrong results might be returned when the
Enum
type value is converted to theFloat
type #20235 - Fix the possible panic of
RegionStore.accessStore
#20210 - Fix the wrong result returned when sorting the maximum unsigned integer in
BatchPointGet
#20205 - Fix the bug that the coercibilities of
Enum
andSet
are wrong #20364 - Fix an issue of ambiguous
YEAR
conversion #20292 - Fix the issue of wrong reported result that occurs when the KV duration panel contains
store0
#20260 - Fix the issue that the
Float
type data is mistakenly inserted regardless of theout of range
error #20252 - Fix the bug that the generated column does not handle bad
NULL
values #20216 - Fix the inaccurate error information for the
YEAR
type data that is out of range #20170 - Fix the unexpected
invalid auto-id
error that might occur during the pessimistic transaction retry #20134 - Fix the issue that the constraint is not checked when using
ALTER TABLE
to change theEnum
/Set
type #20046 - Fix the wrong runtime information of
cop
tasks recorded when multiple operators are used for concurrency #19947 - Fix the issue that read-only system variables cannot be explicitly selected as the session variables #19944
- Fix the issue that the duplicate
ORDER BY
condition might cause sub-optimal execution plans #20333 - Fix the issue that the generated metric profile might fail if the font size exceeds the maximum allowable value #20637
tidb-server v4.0.7
Improvements
- Add more runtime information for the
join
operator #20093 - Add the hit ratio information of coprocessor cache in
EXPLAIN ANALYZE
#19972 - Support pushing down the
ROUND
function to TiFlash #19967 - Add the default value of
CMSketch
forANALYZE
#19927 - Refine error message desensitization #20004
- Accept connections from clients using connectors from MySQL 8.0 #19959
Bug Fixes
- Fix a vectorization bug from
and
/or
/COALESCE
caused by shortcut #20092 - Fix the issue that plan digests are the same when the cop task stores are of different types #20076
- Fix the wrong behavior of the
!= any()
function #20062 - Fix the query error that occurs when the
slow-log
file does not exist #20051 - Fix the issue that Region requests continue to retry when the context is canceled #20031
- Fix the issue that querying the time type of the
cluster_slow_query
table in streaming request might result in an error #19943 - Fix the issue that DML statements using
case when
might cause schema change #20095 - Fix the issue that the
prev_stmt
information in slow log is not desensitized #20048 - Fix the issue that tidb-server does not release the table lock when it exits abnormally #20020
- Fix the incorrect error message that occurs when inserting data of the
ENUM
andSET
type #19950 - Fix the wrong behavior of the
IsTrue
function in some situations #19903 - Fix the issue that the
CLUSTER_INFO
system table might not work normally after PD is scaled in or out #20026 - Avoid unnecessary warnings or errors when folding constants in
control
expressions #19910 - Update the method of updating statistics to avoid Out of Memory (OOM) #20013
tidb-server v3.0.19
Improvements
- Mitigate the impact of failure recovery on QPS performance #19764
- Support adjusting the concurrency of the
union
operator #19885
Bug Fixes
- Fix the query error that occurs when the
slow-log
file does not exist #20050 - Add the privilege check for
SHOW STATS_META
andSHOW STATS_BUCKET
#19759 - Forbid changing the decimal type to the integer type #19681
- Fix the issue that alter enum/set type does not check constraint #20045
- Fix the bug that tidb-server does not release table locks after a panic #20021
- Fix the bug that the
OR
operator is not handled correctly in theWHERE
clause #19901
tidb-server v4.0.6
Improvements
- Replace error codes and messages with standard errors #19888
- Improve the write performance of partitioned table #19649
- Record more RPC runtime information in Cop Runtime statistics #19264
- Forbid creating tables in
metrics_schema
andperformance_schema
#19792 - Support adjusting the concurrency of the union executor #19886
- Support out join in broadcast join #19664
- Add SQL digest for the process list #19829
- Switch to the pessimistic transaction mode for autocommit statement retry #19796
- Support the
%r
and%T
data format inStr_to_date()
#19693 - Enable
SELECT INTO OUTFILE
to require the file privilege #19577 - Support the
stddev_pop
function #19541 - Add the
TiDB-Runtime
dashboard #19396 - Improve compatibility for the
ALTER TABLE
algorithms #19364 - Encode
insert
/delete
/update
plans in the slow logplan
field #19269
Bug Fixes
- Fix an issue of
tikv_cop_wait
time in metric profile #19881 - Fix the wrong result of
SHOW GRANTS
#19834 - Fix the incorrect query result of
!= ALL (subq)
#19831 - Fix a bug of converting the
enum
andset
types #19778 - Add a privilege check for
SHOW STATS_META
andSHOW STATS_BUCKET
#19760 - Fix the error of unmatched column lengths caused by
builtinGreatestStringSig
andbuiltinLeastStringSig
#19758 - If unnecessary errors or warnings occur, the vectorized control expresions fall back to their scalar execution #19749
- Fix an error of the
Apply
executor when the type of the correlation column isBit
#19692 - Fix an issue that occurs when the user queries
processlist
andcluster_log
in MySQL 8.0 client #19690 - Fix an issue that plans of the same type have different plan digests #19684
- Forbid changing the column type from
Decimal
toInt
#19682 - Fix an issue that
SELECT ... INTO OUTFILE
returns the runtime error #19672 - Fix an incorrect implementation of
builtinRealIsFalseSig
#19670 - Fix an issue that the partition expression check misses the parentheses expression #19614
- Fix a query error when there is an
Apply
executor uponHashJoin
#19611 - Fix an incorrect result of vectorization that casts
Real
asTime
#19594 - Fix a bug that the
SHOW GRANTS
statement shows grants for non-existent users #19588 - Fix a query error when there is an
Apply
executor uponIndexLookupJoin
#19566 - Fix the wrong results when converting
Apply
toHashJoin
on a partitioned table #19546 - Fix incorrect results when there is an
IndexLookUp
executor under the inner side of anApply
#19508 - Fix an unexpected panic when using view #19491
- Fix an incorrect result of
anti-semi-join
query #19477 - Fix a bug that topN statistics is not deleted when the statistics is dropped #19465
- Fix a wrong result caused by mistaken usage of batch point get #19460
- Fix a bug that a column cannot be found in
indexLookupJoin
with a virtual generated column #19439 - Fix an error that different plans of the
select
andupdate
queries compare datum #19403 - Fix a data race for TiFlash work index in region cache #19362
- Fix a bug that the
logarithm
function does not show a warning #19291 - Fix an unexpected error that occurs when TiDB persists data to disk #19272
- Support using a single partitioned table on the inner side of index join #19197
- Fix the wrong hash key value generated for decimal #19188
- Fix an issue that TiDB returns an
no regions
error when table endKey and region endKey are the same #19895 - Fix the unexpected success of alter partition #19891
- Fix the wrong value of the default maximum packet length allowed for pushed down expressions #19876
- Fix a wrong behavior for the
Max
/Min
functions on theENUM
/SET
columns #19869 - Fix read failure from the
tiflash_segments
andtiflash_tables
system tables when some TiFlash nodes are offline #19748 - Fix a wrong result of the
Count(col)
aggregation function #19628 - Fix a runtime error of the
TRUNCATE
operation #19445 - Fix the issue that
PREPARE statement FROM @Var
will fail whenVar
contains uppercase characters #19378 - Fix a bug that schema charset modification in an uppercase schema will cause panic #19302
- Fix inconsistency of plans between
information_schema.statements_summary
andexplain
, when the information containstikv/tiflash
#19159 - Fix the error in tests that the file does not exist for
select into outfile
#19725 - Fix the issue that
INFORMATION_SCHEMA.CLUSTER_HARDWARE
does not have raid device information #19457 - Make the
add index
operation that has a generated column with thecase-when
expression can exit normally when it encounters a parse error #19395 - Fix a bug that DDL takes too long to retry #19488
- Make statements like
alter table db.t1 add constraint fk foreign key (c2) references t2(c1)
execute without first executinguse db
#19471 - Change the dispatch error from an Error to an Info message in the server log file #19454
tidb-server v4.0.5
Compatibility Changes
- Change
drop partition
andtruncate partition
's job arguments to support the ID array of multiple partitions #18930 - Add the delete-only state for checking
add partition
replicas #18865
Improvements
- Optimize the performance of
DecodePlan
for big union queries #18941 - Reduce the number of GC lock scans when meeting the
Region cache miss
error #18876 - Ease the impact of statistical feedback on cluster performance #18772
- Support canceling operations before the RPC response is returned #18580
- Add the HTTP API to generate the TiDB metric profile #18531
- Support scattering partitioned tables #17863
- Add detailed memory usage of each instance in Grafana #18679
- Show the detailed runtime information of the
BatchPointGet
executor in the result ofEXPLAIN
#18892 - Show the detailed runtime information of the
PointGet
executor in the result ofEXPLAIN
#18817 - Warn the potential deadlock for
Consume
inremove()
#18395 - Support the Action when memory exceed quota for TableReader Executor #18392
- Refine the behaviors of
StrToInt
andStrToFloat
and support converting JSON to thedate
,time
, andtimestamp
types #18159 - Support limiting the memory usage of the
TableReader
executor #18392 - Avoid too many times of backoff when retrying the
batch cop
request #18999 - Improve compatibility for
ALTER TABLE
algorithms #19270 - Make the single partitioned table support
IndexJoin
on the inner side #19151 - Support searching the log file even when the log includes invalid lines #18579
Bug Fixes
- Fix the
should ensure all columns have the same length
error that occurs because theErrTruncate/Overflow
error is incorrectly handled in thebuiltinCastRealAsDecimalSig
function #18967 - Fix the issue that the
pre_split_regions
table option does not work in the partitioned table #18837 - Fixe the issue that might cause a large transaction to be terminated prematurely #18813
- Fix the issue that using the
collation
functions get wrong query results #18735 - Fix the bug that the
getAutoIncrementID()
function does not consider thetidb_snapshot
session variable, which might cause the dumper tool to fail with thetable not exist
error #18692 - Fix the
unknown column error
for SQL statement likeselect a from t having t.a
#18434 - Fix the panic issue that writing the 64-bit unsigned type into the hash partitioned table causes overflow and gets an unexpected negative number when the partition key is the integer type #18186
- Fix the wrong behavior of the
char
function #18122 - Fix the issue that the
ADMIN REPAIR TABLE
statement cannot parse integer in the expressions on the range partition #17988 - Fix the wrong behavior of the
SET CHARSET
statement #17289 - Fix the bug caused by the wrong collation setting which leads to the wrong result of the
collation
function #17231 - Fix the issue that
STR_TO_DATE
's handling of the format tokens '%r', '%h' is inconsistent with that of MySQL #18727 - Fix issues that the TiDB version information is inconsistent with that of PD/TiKV in the
cluster_info
table #18413 - Fix the existent checks for pessimistic transactions #19004
- Fix the issue that executing
union select for update
might cause concurrent race #19006 - Fix the wrong query result when
apply
has a child of thePointGet
operator #19046 - Fix the incorrect result that occurs when
IndexLookUp
is in the inner side of theApply
operator #19496 - Fix the incorrect result of
anti-semi-join
queries #19472 - Fix the incorrect result caused by the mistaken usage of
BatchPointGet
#19456 - Fix the incorrect result that occurs when
UnionScan
is in the inner side of theApply
operator #19447 - Fix the panic caused by using the
EXECUTE
statement to print an expensive query log #17419 - Fix the index join error when the join key is
ENUM
orSET
#19235 - Fix the issue that the query range cannot be built when the
NULL
value exists on the index column #19358 - Fix the data race issue caused by updating the global configuration #17964
- Fix the panic issue caused when modifying the character set in an uppercase schema #19286
- Fix an unexpected error caused by changing the temporary directory during the disk spill action #18970
- Fix the wrong hash key for the decimal type #19131
- Fix the issue that the
PointGet
andBatchPointGet
operators do not consider the partition selection syntax and get incorrect results #19141 - Fix the incorrect results when using the
Apply
operator together with theUnionScan
operator #19104 - Fix the bug that causes the indexed virtual generated column to return wrong value #17989
- Add the lock for runtime statistics to fix a panic caused by concurrent execution #18983
- Check
ErrTruncate
/Overflow
locally forbuiltinCastRealAsDecimalSig
to fix theshould ensure all columns have the same length
error #18961
tidb-server v3.0.18
Bug Fixes
- Fix the issue that the wrong handling of the
decimal
type by theHash
function causes the wrong HashJoin result #19185 - Fix the issue that the wrong handling of the
set
andenum
types by theHash
function causes the wrong HashJoin result #19175 - Fix the issue that the check for duplicate keys fails in the pessimistic locking mode #19236
- Fix the issue that the
Apply
andUnion Scan
operators cause the wrong execution result #19297 - Fix the issue that some cached execution plans are incorrectly executed in transaction #19274
tidb-server v3.0.17
Improvements
- Ease the impact of statistics feedback on the cluster #18770
- Limit batch split count for one request #18694
- Accelerate
/tiflash/replica
HTTP API when there are many history DDL jobs in the TiDB cluster #18386 - Improve row count estimation for index equal condition #17609
- Speed up the execution of
kill tidb conn_id
#18506
Bug Fixes
- Return the actual error message instead of an empty set when a query which contains
IndexHashJoin
orIndexMergeJoin
encounters a panic #18498 - Fix the unknown column error for SQL statements like
SELECT a FROM t HAVING t.a
#18432 - Forbid adding a primary key for a table when the table has no primary key or when the table already has an integer primary key #18342
- Return an empty set when executing
EXPLAIN FORMAT="dot" FOR CONNECTION
#17157 - Fix
STR_TO_DATE
's handling for format token '%r', '%h' #18725
tidb-server v4.0.4
Bug Fixes
- Fix the issue of getting stuck when querying
information_schema.columns
#18849 - Fix the errors that occur when the
PointGet
andBatchPointGet
operators encounterin null
#18848 - Fix the wrong result of
BatchPointGet
#18815 - Fix the issue of incorrect query result that occurs when the
HashJoin
operator encounters theset
orenum
type #18859