v5.4.12
Oldbread3
released this
28 Jan 14:08
·
155 commits
to main
since this release
RELEASE NOTE
Feature enhancement
- Support access GalaxySQL from maxwell and debezium
- Support the separation of reading and writing for RW node
- Support set TLS version based on jdk version
- Support statement SHOW GRANTS FOR CURRENT_USER
- Support disable cost estimation for LogicalView with hint ENABLE_LOGICALVIEW_COST=false
- Support auto rollback for ALTER TABLE ddl task
- Add precheck for ALTER TABLE task
- Add records for information_shema in result of SHOW DATASOURCES
- Avoid pushing uncorrelate node into lv with variables set
- Try transform filter downside of projects with uncorrelate scalar subquery
- Change the level of spm null point log from error to info
- More literal expression supported for SET statement
- Optimize the execution of apply executor for IN subquery
- Optimize duplicate check for insert statement executed with logical multi write
- Optimize physical query with limit
- Remove PostPlanner segmented check
- Optimize Compare function for FactorCostComparator
- Support huge memory size in startup.sh
- Limit length of SHOW JOBS result to 500
- Add sample rate to accurate count num from TopN
- Rollback transaction after ERR_TRANS_DEADLOCK exception
Bugfix
- Fix AES encryption when key length greater than 16 bytes
- Fix the issue of LIMIT + physical sql cache leads to empty result set of SELECT statement with LIMIT clause
- Fix alter table add index without specifying index name issue that can cause failure of inserting index metadata
- Fix index meta missed issue when altering table add multiple indexes with the same columns
- Fix a NPE issue of simple sequence validation
- Fix DDL task issue of executed by 2 CN during leader election
- Fix a concurrent physical ddl issue that cannot recover ddl task after task paused
- Fix the issue of traceid of transaction changed after execution of ddl
- Fix the issue of subtask not exit correctly while there occurs an out of memory exception
- Fix the issue of MOVE DATABASE task cannot be recovered for some case
- Fix cn/dn mapping maintaining issue that can cause failure of scale out task
- Fix the invalidation of baseline caused by DDL
- Fix the NPE issue for baseline sync
- Fix the issue of plan leaking in baseline
- Fix backfillRows of show stats
- Fix memorypool leaking issue for some case
- Fix case sensitive issue for table meta initialization that can cause some column mata not loaded
- Fix virtual_statistic result not correct issue which is caused by lack of table meta
- Fix physical sql for statement using inventory hint
- Fix execution error of statement using SCAN HINT, which is caused by table name not surrounded by backquote
- Fix execution error of BkaJoin, which is caused by physical sql like ' xx in row(EMPTY)' generated
- Fix wrong physical sql of order by [index]
- Fix sql template cache when there exists scalar subquery in logicalview.
- Fix rex literal transform issue in subquery apply executor.
- Fix for get cost after execution
- Fix npe issue when optimizer trying to get the statisic of index
- Fix estimated size in some block
- Fix the issue of "Snapshot Too Old" for long-lasting transaction
- Fix the wrong UPDATE result issue for some case of using ON UPDATE TIMESTAMP column as partition key
- Fix the issue of UPDATE column with property AUTO_INCREMENT
- Fix UPSERT BIT type column issue that can cause UPSERT failure
- Fix UPDATE blob type column issue that in some case can cause wrong update result
- Fix setting value for AUTO_INCREMENT column issue for INSERT SELECT statement without target column
- Fix logical multi-write issue for REPLACE statement in isolation level read committed
- Fix ddl validation for not support using SET type column as sharding key
- Fix undefined user variable for sum
- Fix the issue of SetHandler#parserValue
- Fix DESC issue that can cause executeion failure on system table
- Fix execution issue of statament EXPLAIN ANALYZE LIMIT
- Fix exception "Failed to create vectorized expression"
- Fix aggregation function execution issue for UNION statement without actual table
- Fix the issue of SHOW DS STATUS and KILL ALL not work at RO instance in some case
- Fix execution issue of SHOW TABLES using readonly connection
- Fix the issue that condition derivation not adapted for subquery materialize
- Fix a issue about login
- Fix issues about MySQL compatibility
发布说明
特性更新
- 新增 ALTER TABLE 校验,提前拒绝执行不支持的 ALTER TABLE 语句
- 新增 CN 启动参数,支持设置 LargePage
- 新增 SHOW DATASOURCES 中加入 information_schema 的相关信息
- 新增 兼容 debezium 使用到的特殊 sql 语句
- 新增 在主实例上引入读写分离能力
- 新增 基于 JDK 版本自适应设置 TLS 版本号
- 新增 支持 SHOW GRANTS FOR CURRENT_USER 语句
- 新增 通过 HINT ENABLE_LOGICALVIEW_COST 关闭 LogicalView 的代价估算
- 新增 限制 SHOW JOBS 的 phyProcess 最长为500
- 优化 非相关联子查询物理 SQL 结构
- 优化 IN 类 APPLY 子查询的执行效率, APPLY 执行器支持物化方式执行
- 优化 逻辑多写 Duplicate Check 的执行性能
- 优化 SET 语句支持的表达式范围
- 优化 ALTER TABLE 支持自动回滚
- 优化 物理 SQL 包含 LIMIT 的场景
- 优化 去除 PostPlanner segmented check
- 优化 禁用集合类型作为拆分键
- 优化 FactorCostComparator 中的 Compare 函数性能
问题修复
- 修复 AES加密函数当密钥长度超过16字节时结果不正确
- 修复 LIMIT + 物理 SQL CACHE 导致 LIMIT 查询结果为空的问题
- 修复 ALTER TABLE 为同一列多次新增不带索引名的索引时元数据插入失败的问题
- 修复 ALTER TABLE 新增多个包含同一字段的索引后,部分索引元数据缺失
- 修复 ALTER TABLE 语句通过 Auto_Increment 子句修改 Sequence 起始值时发生 NPE
- 修复 CN 发生切主时,2 个 CN 可能同时执行同一个 DDL 任务的问题
- 修复 DDL 分库间并行策略下的任务中断后,任务恢复执行卡住的问题
- 修复 DDL 导致事务 ID 发生变化
- 修复 OOM 时 DDL 引擎中子线程没有正确退出的问题
- 修复 MOVE DATABASE 任务中断恢复的问题
- 修复 创建建连接池异常,导致 scaleout 任务中断的问题
- 修复 SPM 在 fix sql 时不会受 DDL 影响而失效
- 修复 baseline fix 时会概率性 sync 失败的问题
- 修复 在复杂 SQL 较多的场景中, baseline 存储的 plan 有概率超出最大值泄露的问题
- 修复 TopN 因采集数据过大导致的估算问题
- 修复 SHOW STATS 中的 backfillRows 统计
- 修复 异常情况下,memory pool 对象未被 destory 情况
- 修复 批量加载 table meta 时候,表名的大小写会导致列加载不到的问题
- 修复 virtual_statistic 视图因 table meta 获取不到导致的展示问题
- 修复 热点更新的下推 SQL
- 修复 通过 HINT 下推的 SQL 表名没有带反引号,导致报错的问题
- 修复 物理 SQL 中出现' xx in row(EMPTY)' 导致报错的问题
- 修复 物理 SQL 生成 ORDER BY 带 index 的问题
- 修复 物理 SQL CACHE 涉及子查询问题
- 修复 执行结束后 getCost 报错问题
- 修复 统计信息涉及索引部分场景下 NPE 问题
- 修复 部分 block 的 estimatedSize 不准确问题
- 修复 部分场景下,只读实例上 SHOW DS STATUS 和 KILL ALL 指令不能正确执行的问题
- 修复 长事务导致 Snapshot too old 报错的问题
- 修复 死锁检测报错 ERR_TRANS_DEADLOCK 之后未主动回滚事务
- 修复 ON UPDATE TIMESTAMP 作为拆分键时,部分场景下 UPDATE 结果不符合预期的问题
- 修复 UPDATE 自增列的问题
- 修复 UPSERT BIT 类型报错的问题
- 修复 部分场景下 UPDATE blob 字段结果不符合预期的问题
- 修复 使用隐式目标列 + LIMIT 且不可下推的 INSERT SELECT 语句,主键没有使用 Sequence 填充的问题
- 修复 禁止 LogicalReplace 在隔离级别为 RC 时的下推
- 修复 未知的用户变量问题
- 修复 SetHandler#parserValue 的问题
- 修复 DESC 系统表报错的问题
- 修复 EXPLAIN ANALYZE + LIMIT 报错的问题
- 修复 Failed to create vectorized expression 错误
- 修复 不包含表的 FROM UNION 上聚合函数执行报错的问题
- 修复 使用只读连接串执行 SHOW TABLES 报错问题
- 修复 子查询物化适配条件推导
- 修复 登陆相关问题
- 修复 SQL 兼容性相关问题修复