polardbx-sql-5.4.19-20240428_17142882
RELEASE NOTE
Feature enhancement
Optimize index selection. For DML operations involving only a single table, the use of GSIs that cannot leverage local indexes is rejected.
Add support for multiple statement modifications in ALTER TABLE compatible with MySQL.Optimized the execution speed of online column type changes and compute node CPU usage.
Improve the cardinality estimation of long strings.
Optimize redundant GROUP BY queries on unique keys (UK).
Support the 'check columnar' command to check data consistency in column storage
Add new binlog-related commands like 'show full binary logs' and 'show full master status'.
Reduce CPU consumption of REPLACE/UPSERT statements on tables with GSIs/UGSIs.
Improve the logic for constructing TopN statistics.
Optimize the creation logic for metadata queries, reducing dependencies.
Unify the plan cache expiration time for read-only and primary instances to a default of 12 hours.
Add the Online Modify Column 2.0 feature.
Optimize the decorrelation logic for subqueries, ignoring the impact of ORDER BY clauses without LIMIT in subqueries.
Add explicit definition for predefined table groups of 'create tablegroup #tgName' command.
Optimize online column type modification to reduce the change time.
Add the ability to stream results during sampling.
Support atomic submission for adding/removing columns, adding/removing indexes, and modifying columns in DDL operations pushed down to DN across multiple shards.
Add support for committing single-instance transactions and XA transactions by acquiring commit timestamps.
Add a feature to show specific reasons when ANALYZE TABLE fails.
Add the ability for ANALYZE TABLE to use columnar tables to accelerate the collection of statistical information.
Add a full verification feature for replicas.
Discontinue the use of HLL when data is clearly abnormal by refining its judgment logic.
Support statistical information in providding limited predictions for uncollected segments of time columns.
Optimize the query performance of the information_schema.columns view.
Support dynamic adjustment of the maximum length for partition table partition names.
Add the SKIP_PHYSICAL_ANALYZE parameter to skip DN's analyze operation during ANALYZE TABLE.
Optimize the ANALYZE TABLE logic to prevent the collection of statistics on GSIs.
Add support for the cohash partitioning strategy for the Auto library.
Optimize error messages after exceeding the limit for Prepare statements within a single CN connection.
Update the version number prefix returned by select version(), upgrading from 5.6.29 to 5.7.25.
Support transaction log cleanup using the AB table scheme by default on new instances.
Optimize index selection in xplan by adopting an adaptive strategy to reduce incorrect choices.
Add the capability to isolate execution plans by instance.
Address the slow table creation issue for the AUTO database when the number of tables in the table group is high.
Optimize table creation times for over 2000 tables in the same table group within the auto database.
Optimize verification speed for data migration in certain scenarios.
Optimize execution plans for IN queries on UK columns when statistical information is incorrect.
Optimize sharding push-down scenarios to hit xplan cache and speed up high concurrency performance.
Add the plan_cache view to show execution plans under the default database.
Optimize the creation and deletion process of stored procedures to prevent metadata residue.
Add a switch to uniformly display database and table names in lowercase, which is turned off by default.
Optimize the issue of slow table creation with specified Locality as the number of tables increases.
Optimize the slow process of adding global secondary indexes to TTL tables.
Optimize the efficiency of concurrent table creation in auto mode.
Bugfix
Fix the issue that caused metadata import to fail when upgrading from the standard edition to the enterprise edition if the database name ended with 's' or 'S'.
Fix the error that occurred when executing DDL with both 'alter table remove partitioning' and an 'option' specified at the same time.
Fix the issue where 'insert ignore' might result in a 'Duplicate entry' error during scaling in and out processes.
Fix the issue where result sets were not properly closed in MPP mode, causing backend connections to freeze.
Fix a very rare chance of data inconsistency when executing DDL operations.
Fix unexpected failures of DDL when records with a value of 0 existed in an auto_increment column.
Fix incorrect results that could arise from the reordering of inner joins and outer joins.
Fix incompatibility issues with transaction types that might occur after upgrading an instance with hotspot updates enabled.
Fix the issue where 'inspect index' gave incorrect suggestions in certain scenarios.
Fix a mishandling problem of instance-level connection pools due to swapping port resources of storage nodes in low-resource scenarios.
Fix the issue that directly analyzing comments containing private DDL, preventing errors during DDL synchronization.
Fix the issue where constant expression folding might lead to incorrect selectivity estimation.
Fix the error that occurring when executing DML on foreign key tables.
Fix incorrect calculation results for hex/length functions on blob types.
Fix the issue where CDC DN list computations could be incorrect during simultaneous scaling of different storage pools.
Fix the issue where statistic collection would fail if a column named 'x' existed in the table.
Fix the issue where transaction log cleaning frequency was too high for instances not in the GMT+8 time zone.
Fix an inability to perform column pruning for window functions using count(*).
Fix the issue of duplicate index names between GSI and Local Index.
Fix the error that occurred when creating tables with partition columns containing backtick characters in the AUTO library.
Fix the issue where data validation failures could happen during scaling or UGSI creation processes when using 'insert ignore (returning)'.
Fix the issue where SQL could still execute successfully with multiple database names in a 'drop table' statement.
Fix a failure to create UGSI when the index name contained special characters.
Fix the errors during the execution of distinct count on multiple columns.
Fix the issue where the statistics correction feature failed due to case sensitivity.
Fix calculation errors within Row expressions.
Fix the 'show index from' statement displaying physical table names instead of logical ones.
Fix the issue where physical shards might not be found after interrupting a 'rename table' operation.
Fix routing errors caused by truncation of primary key columns under primary key splitting.
Fix the non-clearance of plan cache after changes to a view.
Fix the issue where 'inspect index' was unable to diagnose when the current database contained views.
Fix incorrect diagnostic strategies for certain key-partitioned Global Indexes with the index diagnostic feature.
Fix an unexpected pause in DDL when modifying the type of a split key column in a global unique index.
Fix the inability to expand capacity after upgrading from the standard to enterprise edition if the database name exceeded five characters.
Fix occasional failures of 'rename table' operations on TTL tables.
Fix the issue of the index recommendation feature suggesting names that were too long.
Fix partition routing issues caused by incorrect calculation results from CoHash's Right partition function.
Fix the issues where the whitelist manager does not interrupt promptly when errors occur at a low probability during metadata initialization on CN, leading to the loading of incorrect whitelist metadata.
Fix the errors encountered when executing SELECT statements in the Auto library without specifying table names.
Fix the errors that occur when pushing down subqueries made up of multiple single-table layers.
Fix concurrency safety issues with xplan generation.
Fix abnormal behavior when there are multiple identical columns present in an INSERT statement.
Fix the NullPointerException (NPE) errors during the execution of InfoSchemaTableAccess.
Fix count errors in the textual prepare protocol during deallocate operations.
Fix compatibility issues with the default charset modification syntax in ALTER TABLE.
Fix incorrect IO calculation issues for constant true conditions.
Fix disordered matchings in subqueries with three or more join conditions.
Fix inconsistencies in CN statistics caused by DDL operations.
Fix thread leaks caused by sending ping requests in binlog dump connections.
Fix the issue where creating ddl sequences clears the baseline of the entire schema.
Fix NullPointerException (NPE) errors during the execution of certain DML operations in the MovePartition process for subpartitions.
Fix the issues where SHOW CREATE TABLE displays incorrect values for auto_increment.
Fix the issues where transaction may leaks when a connection is KILLED.
Fix the issues where fully pushed-down execution plans enter the Stored Procedure Manager (SPM) incorrectly.
Fix the issues where the Cost-Based Optimizer (CBO) might fail to push down aggregates (agg) to GSI.
Fix failures in the collection of statistical information.
Fix the issue where execution plans could not be deleted normally in spm
Fix an issue where the inspect index function calculated the GSI distinction incorrectly.
Fix execution failures when altering the type of a partition column with uppercase column names present.
Fix the issue where information in some information_schema was not updated after foreign key changesUpdates information in INFORMATION_SCHEMA correctly after foreign key changes.
Fix the issue where json was not supported in DML logic execution
Fix the issue where GSI related data of TableDetail view would be lost after TruncateTable
Fix the issue where some tablature constructs for untemplated level 2 hash partitions would be treated as templated hash partitions
Fix the issue where streaming in XRPC was stopped early, resulting in a small probability of instance level connection pool database cutting failure
Fix the issue where the information_schema.tables view queries too slowly when there are too many partitions
Fix the issue where rollback ddl might not interrupt the analyze table
Fix the issue where data cannot be found due to query conditions IN some views in INFORMATION_SCHEMA
Fix the number of warnings on show warnings
Fix a small probability of connection leaks when closing transactions.
Fix the issue that the string type in the target table may be incorrect if the string type exists in the table during data migration/index addition
Fix the issue where execution fails when alter table modifies AVG_ROW_LENGTH
Fix the issue where the physical table may not be found when a rename file is executed in the drds database;
Fix the table containing clustered index, some of the old execution plan did not clean up the problem when the local index was created
Fix global configuration of max_allowed_packet and max_user_connections
Fix the error using count(1) in window functions
Fix the issue where the query timestamp field of the archive table had probabilistically incorrect results
Fix the issue where the primary key could not be modified directly in the single table of auto-shattering
Fix the risk of incorrect push-down during the single table association operation in the single table splitting function
Fix the issue where group sequence start value change did not take effect when the start value was set to 1.
Fix the issue where excessive cursor data in a stored procedure could cause NPE
Fix the error that might be generated when querying the tables view under information schema
Fix the issue where an error may be reported when the order by and partition by fields in a window function are empty in some execution modes
Fix unfriendly error when alter table specifies a nonexistent library name
Fix execution failure when drop column and modify column appear in the same alter table statement
发布说明
特性更新
优化索引选择的逻辑,对于仅涉及一张表的dml,拒绝使用无法走局部索引的gsi
支持alter table兼容MySQL的多语句修改
优化在线列类型变更执行速度以及计算节点CPU占用
优化长字符串的基数估计
优化对uk的冗余group by查询
支持 check columnar 指令校验列存数据一致性
新增 show full binary logs,show full master status等binlog相关运维指令。
优化 REPLACE/UPSERT 语句在包含 GSI/UGSI 的表上执行时的 CPU 消耗
优化统计信息的TopN构造逻辑
优化 metadata query 创建逻辑, 减少依赖
统一只读/主实例的 plancache 过期时间, 默认为12小时
新增 Online Modify Column 2.0 功能
优化子查询解关联逻辑, 忽略子查询中不带 limit 的 order by 对解关联的影响
新增create tablegroup #tgName 对预定义表组的定义显式
优化在线修改列类型操作,减少变更时间
新增 sample 时流式获取结果集的能力
新增下推到DN上的加减列、加减索引、修改列的DDL进行多分片的原子性提交
新增支持单机事务和XA事务获取提交时间戳进行提交。
新增 ANALYZE TABLE 失败时会显示具体原因
新增analyze table支持使用列存表加速收集统计信息
新增Replica 全量校验功能
优化HLL的判断逻辑,HLL数据明显异常时不再采用
统计信息支持对时间列未采集到的部分进行有限度的预判
优化 infomation_schema.columns 视图的查询性能
支持动态调整分区表分区名字的最大长度
新增 SKIP_PHYSICAL_ANALYZE 参数用于跳过 analyze table 时 dn 的 analyze 操作.
优化analyze table逻辑,避免对GSI做统计信息采集
新增支持Auto库的cohash分区策略
优化 CN 单条连接内Prepare语句超出限制后的报错信息
优化 select version() 返回的版本号前缀,从 5.6.29 升级至 5.7.25
优化使用AB表方案进行事务日志清理,该功能在新实例上默认打开。
优化xplan的索引选择,采用自适应策略减少错选问题
新增按实例隔离执行计划的能力
优化表组的表数目过大时,AUTO库建表过慢的问题
优化auto库同表组表数目在2千张以上时,建表慢问题
优化部分场景下数据迁移过程的校验速度
优化统计信息错误场景下in查询uk列的执行计划
优化 sharding 下推场景, 使其可以命中 xplan 缓存加速高并发性能.
新增plan_cache视图返回默认库下的执行计划
优化存储过程创建和删除流程,避免出现元数据残留
新增开关将库名、表名统一显示为小写,默认关闭
优化建表语句中指定带Locality的表组,速度随着表变多而变慢的问题
优化TTL表添加全局二级索引速度过慢问题
优化auto模式下并发建表效率
问题修复
修复标准版升企业版库名以s或者S结尾,会导致导入元数据失败
修复 alter table remove partitioning 同时指定 option 时 DDL 执行报错问题
修复扩缩容过程中,insert ignore 可能出现 Duplicate entry 报错问题
修复 MPP模式下结果集没有正确关闭导致后端连接卡死的问题
修复执行DDL时极小概率数据不一致的问题
修复 auto_increment 列存在值为0的记录时,DDL 可能非预期失败问题
修复inner join-outer join reorder可能导致结果不正确的问题
修复热点更新开启后升级实例可能会遇到事务类型不兼容的问题。
修复inspect index在个别场景下给出的建议错误的bug
修复 低资源场景下存储节点端口资源互换导致私有协议实例级连接池误用的问题
修复:Parse关闭直接解析注释中的私有DDL,防止同步DDL出错
修复恒真条件折叠可能导致选择率估算错误的问题
修复外键表中执行DML出错
修复hex/length函数对于 blob 类型计算结果错误的问题
修复:不同存储池同时扩缩容可能导致CDC DN列表计算有问题
修复表存在名x
的列时,统计信息采集会失败的Bug
修复非东八区实例的事务日志清理频率过快的问题
修复count(*)无法对window函数进行列裁剪的问题
修复:GSI 和 Local Index索引名重复问题
修复AUTO库分区表的分区列含反引号字符时建表报错的问题
修复在扩缩容或者UGSI创建过程中, insert ignore(returning)可能导致数据校验不通过的问题
修复:drop table语句中包含多个库名时sql依然可以执行成功的问题
修复创建 ugsi 时,如果索引名字存在特殊字符会创建失败的问题
修复distinct count多列执行可能报错的问题
修复统计信息 correction 功能因大小写而失效的问题
修复Row表达式的计算错误问题
修复show index from 语句展示的是物理表名的问题
修复 rename table 在被中断之后可能出现会找不到物理分片问题
修复主键拆分下主键列发生截断时路由报错的问题
修复 view 变更后 plancache 未清理的问题
修复inspect index在当前数据库含视图时无法诊断的问题。
修复索引诊断功能在key分区Global Index上的部分诊断策略有误的问题
修复修改全局唯一索引拆分键列类型时,DDL 可能非预期暂停问题
修复标准版升级至企业版后,数据库名长度大于5时无法扩容的问题
修复 ttl 表 rename table 偶发失败问题
修复索引推荐的索引名太长的问题
修复CoHash的Right分区函数计算结果不正确导致的分区路由问题
修复白名单管理器在CN初始化加载元数据低概率报错时没有及时中断,导致加载错误白名单元数据的问题
修复Auto库Select不带表名语句执行报错的问题
修复多层单表构成的子查询下推时报错的问题
修复xplan生成并发安全问题
修复INSERT中存在多个相同列时的异常行为
修复InfoSchemaTableAccess执行有概率报NPE的问题
修复文本Prepare协议 Deallocate 计数错误的问题
修复alter table 修改default charset 语法不兼容问题
修复永真条件IO计算错误的问题
修复子查询大于等于三项关联项时, 关联匹配错乱的问题
修复ddl操作可能导致cn统计信息不一致的问题
修复在binlog dump连接中发送ping请求导致线程泄漏
修复 ddl seq 创建会将整个 schema 的 baseline 清理掉的问题
修复子分区大MovePartition过程中部分DML执行会NPE报错的问题
修复show create table展示的auto_increment值可能错误的问题
修复连接被 KILL 时小概率导致事务泄露的问题
修复全下推的执行计划进入SPM的问题
修复cbo可能无法下推agg到gsi中的问题
修复统计信息采集失败问题
修复spm中执行计划无法正常删除的问题
修复inspect index功能对GSI区分度计算错误的问题。
修复修改拆分区列类型时,如果存在大写列名会执行失败问题
修复外键变更后部分information_schema中信息未更新的问题
修复 DML逻辑执行中报json不支持的问题
修复TruncateTable后TableDetail视图的GSI相关数据会丢失的问题
修复部分非模板化二级哈希分区建表语法会被当作模板化哈希分区的问题
修复 XRPC下使用流式早停,小概率导致实例级连接池切库失败的问题
修复information_schema.tables视图在分区过多时查询过慢的问题
修复rollback ddl可能无法中断analyze table的问题
修复 INFORMATION_SCHEMA 中部分视图带 IN 查询条件导致无法正常查出数据的问题
修复 show warnings 的警告信息条数
修复关闭事务时有小概率出现连接泄漏的问题。
修复数据迁移/添加索引等过程中,如果表存在字符串类型,可能会导致该类型在目标表数据不正确问题
修复alter table 修改 AVG_ROW_LENGTH 时,执行失败问题
修复多表 rename 在 drds 库下执行时,有概率导致找不到物理表问题
修复包含clustered index的表,在创建local索引时,部分老执行计划没有清理问题
修复支持对max_allowed_packet和max_user_connections的全局配置
修复窗口函数中使用count(1)报错的问题
修复查询归档表的 timestamp 字段概率性结果不正确的问题
修复自动打散的单表无法直接修改主键的问题
修复单表打散功能下,单表关联操作中存在错误下推的风险
修复对group sequence 修改起始值时,当起始值设置为1时不生效的问题。
修复存储过程中游标数据量过大时可能导致NPE的问题
修复查询information schema下的tables视图可能报错的问题
修复窗口函数中order by和partition by字段为空时,在某些执行模式下执行可能报错的问题
修复alter table 指定不存在的库名时,报错不友好问题
修复在同一条alter table语句中drop column和modify column 同时出现时,执行失败问题