Improvements
- Support pushing down the built-in function
json_unquote()
to TiKV #24415 - Support removing the
union
branch from the dual table #25614 - Optimize the aggregate operator's cost factor #25241
- Allow the MPP outer join to choose the build table based on the table row count #25142
- Support balancing the MPP query workload among different TiFlash nodes based on Regions #24724
- Support invalidating stale Regions in the cache after the MPP query is executed #24432
- Improve the MySQL compatibility of the built-in function
str_to_date
for the format specifiers%b/%M/%r/%T
#25767 - Fix the issue that inconsistent binding caches might be created in multiple TiDB after recreating different bindings for the same query #26015
- Fix the issue that the existing bindings cannot be loaded into cache after upgrade #23295
- Support ordering the result of
SHOW BINDINGS
by (original_sql
,update_time
) #26139 - Improve the logic of query optimization when bindings exist, and reduce optimization times of a query #26141
- Support completing the garbage collection automatically for the bindings in the "deleted" status #26206
- Support showing whether a binding is used for query optimization in the result of
EXPLAIN VERBOSE
#26930 - Add a new status variation
last_plan_binding_update_time
to view the timestamp corresponding to the binding cache in the current TiDB instance #26340 - Support reporting an error when starting binding evolution or running
admin evolve bindings
to ban the baseline evolution (currently disabled in the on-premises TiDB version because it is an experimental feature) affecting other features #26333
Bug Fixes
- Fix the issue that an incorrect result is returned when using merge join on the
SET
type column #25669 - Fix the data corruption issue in the
IN
expression's arguments #25591 - Avoid the sessions of GC being affected by global variables #24976
- Fix the panic issue that occurs when using
limit
in the window function queries #25344 - Fix the wrong value returned when querying a partitioned table using
Limit
#24636 - Fix the issue that
IFNULL
does not correctly take effect on theENUM
orSET
type column #24944 - Fix the wrong results caused by changing the
count
in the join subqueries tofirst_row
#24865 - Fix the query hang issue that occurs when
ParallelApply
is used under theTopN
operator #24930 - Fix the issue that more results than expected are returned when executing SQL statements using multi-column prefix indexes #24356
- Fix the issue that the
<=>
operator cannot correctly take effect #24477 - Fix the data race issue of the parallel
Apply
operator #23280 - Fix the issue that the
index out of range
error is reported when sorting the IndexMerge results of the PartitionUnion operator #23919 - Fix the issue that setting the
tidb_snapshot
variable to an unexpectedly large value might damage the transaction isolation #25680 - Fix the issue that the ODBC-styled constant (for example,
{d '2020-01-01'}
) cannot be used as the expression #25531 - Fix the issue that
SELECT DISTINCT
converted toBatch Get
causes incorrect results #25320 - Fix the issue that backing off queries from TiFlash to TiKV cannot be triggered #23665 #24421
- Fix the
index-out-of-range
error that occurs when checkingonly_full_group_by
#23839) - Fix the issue that the result of index join in correlated subqueries is wrong #25799