matrixorigin / matrixorigin/matrixone
[Task] Maintain Top-ROI assigned bug groups
- Dominant language
- Go
- Stars
- 1.9k
- Forks
- 311
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 768
Description
## 目的
持续跟踪当前仍由 `XuPeng-SH` 负责的全部 open issues,按模块、根因方向、用户影响和交付信号分组排序。这个 issue 是工作队列,不把相似标题强行认定为同一个根因或同一个 PR。
## 当前快照
- 抓取时间:2026-09-15 00:38:25 CST(Asia/Shanghai)。
- Source of truth:GitHub live query `state=open&assignee=XuPeng-SH`,排除 pull request,并排除本 tracker #28647 本身。
- 当前队列:**124 个 issue**,其中 `kind/bug` **73 个**,其他 label **51 个**。
- 保留规则:issue 仍 open 且当前 assignee 包含 `XuPeng-SH` 就保留;关闭或 assignee 不再包含 `XuPeng-SH`(包括转测/转交/取消分配)就移除。共同 assignee 仍算在队列中。
- 完成定义:仅以 CLOSED 或 assignee 不再是我为完成/转测;open PR、merged PR 或“代码看起来已修”本身不会从队列移除 issue。
- 本次只更新本 issue 正文;不修改任何 issue 的 label、assignee、milestone 或 project。
## 相对上一次 tracker 的变化
- 上一次正文中的 `kind/bug` 队列为 61 个;当前 live query 为 73 个:增加 12 个,移除 0 个。
- 新增到 bug 队列:#28538, #28854, #28856, #28859, #28860, #28861, #28864, #28865, #28870, #28871, #28875, #28876。
- 从 bug 队列移除:无。
- 为满足“所有 issues”,本次另列出 51 个当前 open 且 assignee 为我的非 `kind/bug` backlog;这些不与 bug 数重复计算。
## 推荐处理顺序
| Rank | Workstream | Count | Execution reason |
|---:|---|---:|---|
| 1 | DECIMAL256 与聚合执行/值规范化 | 15 | 先处理可触发 panic、错误结果或错误拒绝的共享数值/聚合契约;现有 severity/s0 仅作排序依据,本次不改标签。 |
| 2 | UT/CI 超时、flaky 与清理可靠性 | 10 | 直接影响交付信号和回归可信度;先区分 runner 资源/调度压力与真实生命周期缺陷,避免为了过 CI 单纯放大 timeout。 |
| 3 | ClickBench 查询性能 | 16 | 问题数量最多、潜在 ROI 高;一次统一 profiling 可以覆盖多个 query,而不是逐条猜测优化。 |
| 4 | 写入/导入与向量索引性能 | 3 | 涉及高成本用户路径和潜在 OOM/陈旧结果;需要 55 机器基线后再动实现。 |
| 5 | Spatial/geography 兼容性 | 5 | 已有可合并的相似 PR,适合一次性完成精确 CI/BVT 验证,避免继续扩散 scope。 |
| 6 | 事务、replay 与并发 race | 6 | 可能影响提交一致性、恢复完整性和 race 安全,但根因分散,必须以状态/所有权证据驱动。 |
| 7 | shardservice 生命周期与快照 | 4 | 四个 issue 共享 Close/cancel/published snapshot 主题,适合统一建模并补完整生命周期矩阵。 |
| 8 | Scalar/type/operator 兼容性 | 5 | 用户可见但契约彼此独立,按 issue 分别修复,避免为一个 SQL 差异引入跨模块重构。 |
| 9 | UUID、REGEXP 与 AES 兼容性 | 6 | 函数族边界清晰,适合按外部兼容契约和安全向量拆分,避免把安全语义当普通函数补丁。 |
| 10 | Optimizer/query execution 性能增强 backlog | 17 | 这些是待设计/增强项,不与当前已复现 bug 混做;应在 Rank 1 的性能基线明确后按收益和回归风险择机处理。 |
| 11 | SQL/旧协议/功能缺口兼容性 backlog | 32 | 数量较多但大多是独立语法或功能契约,先按客户/版本承诺排序,不阻塞当前 crash、CI 和高 ROI 性能工作。 |
| 12 | 存储、日志与跨版本架构 backlog | 5 | 影响基础设施和跨版本演进,改动面大、验证周期长,放在具体 correctness/CI 信号稳定之后。 |
## 分组明细
### Rank 1 — DECIMAL256 与聚合执行/值规范化(15 个)
**为什么排在这里:** 先处理可触发 panic、错误结果或错误拒绝的共享数值/聚合契约;现有 severity/s0 仅作排序依据,本次不改标签。
**根因/模块边界:** 重点检查 Decimal256 的宽度/scale 归一化、Pow10 边界、聚合 executor 的 DECIMAL256 dispatch,以及 DISTINCT/GROUP BY/HLL/Bitmap 共用的 canonical key、NaN/有符号零/CHAR 空格语义、spill 状态所有权和 panic-to-user-error 边界。相似 issue 可以共享调查和回归矩阵,但不能假定一定是同一个根因或一个 PR。
**Issues:**
- [#28765](https://github.com/matrixorigin/matrixone/issues/28765) — [Bug]: unquoted DECIMAL256 literals lose fractional digits before evaluation
- [#28838](https://github.com/matrixorigin/matrixone/issues/28838) — [Bug]: variance and stddev panic for DECIMAL256 inputs
- [#28852](https://github.com/matrixorigin/matrixone/issues/28852) — [Compatibility]: temporal VAR_POP differs from MySQL at DECIMAL(24,6) precision
- [#28875](https://github.com/matrixorigin/matrixone/issues/28875) — [Bug]: Decimal256 multiplication rejects raw-overflow products that fit after scale reduction
- [#28876](https://github.com/matrixorigin/matrixone/issues/28876) — [Bug]: Decimal256 multiplication panics when scale reduction exceeds 38 digits
- [#28853](https://github.com/matrixorigin/matrixone/issues/28853) — [Bug]: HLL, Bitmap, and approximate aggregate states fail cleanup during multi-level spill
- [#28854](https://github.com/matrixorigin/matrixone/issues/28854) — [Bug]: percentile aggregates order NaN opposite to WITHIN GROUP ORDER BY
- [#28856](https://github.com/matrixorigin/matrixone/issues/28856) — [Bug]: HLL distinct aggregates count positive and negative zero separately
- [#28859](https://github.com/matrixorigin/matrixone/issues/28859) — [Bug]: GROUP BY and distinct aggregates split CHAR trailing-space values that compare equal
- [#28860](https://github.com/matrixorigin/matrixone/issues/28860) — [Bug]: distinct aggregates split SQL-equal JSON numeric encodings
- [#28861](https://github.com/matrixorigin/matrixone/issues/28861) — [Bug]: distinct aggregates split vectors with SQL-equal signed-zero elements
- [#28864](https://github.com/matrixorigin/matrixone/issues/28864) — [Bug]: BITMAP_CONSTRUCT_AGG accepts out-of-range positions and truncates UINT64 values
- [#28865](https://github.com/matrixorigin/matrixone/issues/28865) — [Bug]: BITMAP_COUNT reports malformed bitmap payloads as empty sets
- [#28870](https://github.com/matrixorigin/matrixone/issues/28870) — [Bug]: invalid percentile parameters expose compile stack traces to SQL clients
- [#28871](https://github.com/matrixorigin/matrixone/issues/28871) — [Bug]: nested aggregate over grouped MEDIAN fails under parallel execution
**下一步:** 先在 55 机器和本地最小复现上建立 exact-result matrix;优先修共享表示/边界契约,再补 normal、invalid-input、spill、parallel/repeated-run UT。#28765 对应 #28825;#28838 的基础修复已进 #28841 但 issue 仍 open,按当前 assignee 规则保留并做 exact-head revalidation;#28875/#28876 对应 #28878。
**主要风险与验证要求:** 数值溢出与舍入策略容易被局部修补掩盖;必须覆盖合法宽值、scale reduction、NaN、±0、NULL、空/损坏 bitmap 和多级 spill。
### Rank 2 — UT/CI 超时、flaky 与清理可靠性(10 个)
**为什么排在这里:** 直接影响交付信号和回归可信度;先区分 runner 资源/调度压力与真实生命周期缺陷,避免为了过 CI 单纯放大 timeout。
**根因/模块边界:** 共同关注 deadline、取消传播、readiness、WAL 压力、异步 finalization、cache/水位清理和测试隔离;#28853 虽由 spill 暴露,但其根因方向属于聚合状态所有权,已放在 Rank 1。
**Issues:**
- [#28538](https://github.com/matrixorigin/matrixone/issues/28538) — [Bug]: unsharded race UT run exceeds hard timeout in embedded stage
- [#28816](https://github.com/matrixorigin/matrixone/issues/28816) — [Bug]: ParallelRun can surface StopSending cancellation during reader construction
- [#28763](https://github.com/matrixorigin/matrixone/issues/28763) — [Bug]: Race UT restore case intermittently hits deadline under CI load
- [#28764](https://github.com/matrixorigin/matrixone/issues/28764) — [Bug]: Ubuntu/x86 race UT has flaky SQL Task store readiness failure
- [#28784](https://github.com/matrixorigin/matrixone/issues/28784) — [Bug]: disk cache finalization UT flakes under CI scheduling load
- [#28786](https://github.com/matrixorigin/matrixone/issues/28786) — [Bug]: prepared AP runtime cache UT cleanup times out under WAL pressure
- [#28655](https://github.com/matrixorigin/matrixone/issues/28655) — [Bug]: TestCheckLeaseFailed intermittently leaves ISCP watermark at 0-0
- [#28419](https://github.com/matrixorigin/matrixone/issues/28419) — [Bug]: UT coverage producer hits 60-minute timeout and cascades Coverage failure
- [#25997](https://github.com/matrixorigin/matrixone/issues/25997) — [Bug]: CI UT timeout failures in transaction abort and backup protection tests
- [#28778](https://github.com/matrixorigin/matrixone/issues/28778) — [Bug]: Race UT TestLoopWork assumes all entries are consumed within 400ms
**下一步:** 在同一 commit 上重复运行 race/UT,记录 runner、cgroup、WAL、heartbeat 和 goroutine/资源收敛证据;只有在确认 owner contract 后增加同步或修复清理。#28538 由你与 gouhongshen 共同 assignee,仍纳入。
**主要风险与验证要求:** 仅增加预算会掩盖泄漏、死等或未完成 cleanup;每个修复都要保留超时、取消、重复运行和失败回滚路径。
### Rank 3 — ClickBench 查询性能(16 个)
**为什么排在这里:** 问题数量最多、潜在 ROI 高;一次统一 profiling 可以覆盖多个 query,而不是逐条猜测优化。
**根因/模块边界:** 当前是 Q05/Q06/Q09/Q13-Q19/Q24/Q29/Q30/Q33-Q35 相对 DuckDB 的差距集合,可能跨 DISTINCT、GROUP BY、排序、过滤、扫描和物化路径,不能按标题直接认定单一根因。
**Issues:**
- [#27669](https://github.com/matrixorigin/matrixone/issues/27669) — [Bug]: ClickBench Q05 is significantly slower in MatrixOne than DuckDB
- [#27670](https://github.com/matrixorigin/matrixone/issues/27670) — [Bug]: ClickBench Q06 is significantly slower in MatrixOne than DuckDB
- [#27671](https://github.com/matrixorigin/matrixone/issues/27671) — [Bug]: ClickBench Q09 is significantly slower in MatrixOne than DuckDB
- [#27673](https://github.com/matrixorigin/matrixone/issues/27673) — [Bug]: ClickBench Q13 is significantly slower in MatrixOne than DuckDB
- [#27674](https://github.com/matrixorigin/matrixone/issues/27674) — [Bug]: ClickBench Q14 is significantly slower in MatrixOne than DuckDB
- [#27675](https://github.com/matrixorigin/matrixone/issues/27675) — [Bug]: ClickBench Q15 is significantly slower in MatrixOne than DuckDB
- [#27676](https://github.com/matrixorigin/matrixone/issues/27676) — [Bug]: ClickBench Q16 is significantly slower in MatrixOne than DuckDB
- [#27677](https://github.com/matrixorigin/matrixone/issues/27677) — [Bug]: ClickBench Q17 is significantly slower in MatrixOne than DuckDB
- [#27678](https://github.com/matrixorigin/matrixone/issues/27678) — [Bug]: ClickBench Q18 is significantly slower in MatrixOne than DuckDB
- [#27679](https://github.com/matrixorigin/matrixone/issues/27679) — [Bug]: ClickBench Q19 is significantly slower in MatrixOne than DuckDB
- [#27680](https://github.com/matrixorigin/matrixone/issues/27680) — [Bug]: ClickBench Q24 is significantly slower in MatrixOne than DuckDB
- [#27681](https://github.com/matrixorigin/matrixone/issues/27681) — [Bug]: ClickBench Q29 is significantly slower in MatrixOne than DuckDB
- [#27682](https://github.com/matrixorigin/matrixone/issues/27682) — [Bug]: ClickBench Q30 is significantly slower in MatrixOne than DuckDB
- [#27683](https://github.com/matrixorigin/matrixone/issues/27683) — [Bug]: ClickBench Q33 is significantly slower in MatrixOne than DuckDB
- [#27684](https://github.com/matrixorigin/matrixone/issues/27684) — [Bug]: ClickBench Q34 is significantly slower in MatrixOne than DuckDB
- [#27685](https://github.com/matrixorigin/matrixone/issues/27685) — [Bug]: ClickBench Q35 is significantly slower in MatrixOne than DuckDB
**下一步:** 在 55 机器固定 schema/data/query/warmup/并发协议,统一采集 wall time、operator/profile、内存和 IO;按共享瓶颈形成最小 PR 集合,并用 DuckDB 作为参考,不把局部 microbenchmark 当作 SQL 端到端收益。#27679 的 #28773 已 merged,但 issue 仍 open,需补 benchmark 证据后才可转测/关闭。
**主要风险与验证要求:** 数据规模、缓存状态、并行度和客户端开销会改变结论;所有优化必须同时检查结果正确性、内存和回归 query。
### Rank 4 — 写入/导入与向量索引性能(3 个)
**为什么排在这里:** 涉及高成本用户路径和潜在 OOM/陈旧结果;需要 55 机器基线后再动实现。
**根因/模块边界:** 分别覆盖 JDBC/INSERT VALUES 批写吞吐、LOAD DATA + synchronous FULLTEXT 的输入物化,以及多 CN HNSW 异步 generation 更新后的 stale model;不要把客户端协议、CN/TN 执行、内存 materialization 和模型发布混为一谈。
**Issues:**
- [#26630](https://github.com/matrixorigin/matrixone/issues/26630) — [Performance] Poor throughput for JDBC / SQL `INSERT INTO ... VALUES` bulk writes (TPC-C load vs PostgreSQL)
- [#26173](https://github.com/matrixorigin/matrixone/issues/26173) — [Bug]: LOAD DATA with synchronous FULLTEXT maintenance materializes the input in HashBuild
- [#27632](https://github.com/matrixorigin/matrixone/issues/27632) — [Bug]: multi-CN HNSW query CN serves stale model after async generation update
**下一步:** 建立分层基线:客户端/协议、CN/TN operator、锁等待、内存峰值、索引维护和模型 generation;先修正确性/生命周期,再做可证明的批处理或流式化优化。
**主要风险与验证要求:** 吞吐优化可能破坏回滚、索引维护或多 CN generation 一致性;必须保留失败注入和并发验证。
### Rank 5 — Spatial/geography 兼容性(5 个)
**为什么排在这里:** 已有可合并的相似 PR,适合一次性完成精确 CI/BVT 验证,避免继续扩散 scope。
**根因/模块边界:** 问题分为 SRID setter/WKB overload、geodetic distance、SRID 4326 antimeridian topology/overlay 和 length-unit 参数,都是 API/坐标语义契约,不应只补 happy path。
**Issues:**
- [#28795](https://github.com/matrixorigin/matrixone/issues/28795) — [Compatibility]: ST_SRID lacks MySQL two-argument SRID setter form
- [#28194](https://github.com/matrixorigin/matrixone/issues/28194) — [Bug]: ST_FrechetDistance and ST_HausdorffDistance ignore geographic SRID 4326
- [#28196](https://github.com/matrixorigin/matrixone/issues/28196) — [Bug]: SRID 4326 topology and overlay use Cartesian semantics across the antimeridian
- [#28198](https://github.com/matrixorigin/matrixone/issues/28198) — [Compatibility]: ST_GeomFromWKB lacks the MySQL SRID overload
- [#28200](https://github.com/matrixorigin/matrixone/issues/28200) — [Compatibility]: spatial distance functions lack MySQL length-unit arguments
**下一步:** #28194+#28200 在 #28830;#28795+#28198 在 #28835;#28196 在 #28844。优先 exact-head CI、MySQL 对照、NULL/非法 SRID、单位和跨日期变更线测试。
**主要风险与验证要求:** 经纬度与笛卡尔语义、单位换算、边界经线和无效几何容易产生隐藏差异;需要结果、错误和重复执行矩阵。
### Rank 6 — 事务、replay 与并发 race(6 个)
**为什么排在这里:** 可能影响提交一致性、恢复完整性和 race 安全,但根因分散,必须以状态/所有权证据驱动。
**根因/模块边界:** 覆盖 txnContext 发布时序、MOTracer/MOSpan 与 BuildJsonPlan data race、LogService mode-switch replay、commit panic/error、超大 WAL message;这是多个生命周期窗口,不是一个通用锁修复。
**Issues:**
- [#28759](https://github.com/matrixorigin/matrixone/issues/28759) — [Bug]: txnContext is published before initialization
- [#22246](https://github.com/matrixorigin/matrixone/issues/22246) — [Bug]: MOTracer and MOSpan data race
- [#22108](https://github.com/matrixorigin/matrixone/issues/22108) — [Bug]: BuildJsonPlan data race
- [#21874](https://github.com/matrixorigin/matrixone/issues/21874) — [Bug]: LogServiceDriver does not finish reading all entries after mode switch during replay
- [#19570](https://github.com/matrixorigin/matrixone/issues/19570) — [Bug]: panic or error can be handled during commit
- [#19483](https://github.com/matrixorigin/matrixone/issues/19483) — [Bug]: too large wal message error handle
**下一步:** 建立 ownership/wait-for/replay timeline,使用 race-enabled、故障注入、mode switch、重复 Close/commit 和超大 WAL 测试;先证明不变量再做局部修复。
**主要风险与验证要求:** 并发修复容易引入死锁、丢日志或错误状态传播;必须验证正常、取消、panic、重试和恢复路径。
### Rank 7 — shardservice 生命周期与快照(4 个)
**为什么排在这里:** 四个 issue 共享 Close/cancel/published snapshot 主题,适合统一建模并补完整生命周期矩阵。
**根因/模块边界:** 关注远端副本误判本地副本、waitCNReported 不响应取消、已发布 cache 原地修改、Close 返回后 remote RPC 仍监听;核心是 ownership、generation 和 wait-for 关系。
**Issues:**
- [#25874](https://github.com/matrixorigin/matrixone/issues/25874) — [Bug]: shardservice HasAllLocalReplicas 将远端副本误判为本地副本
- [#25876](https://github.com/matrixorigin/matrixone/issues/25876) — [Bug]: shardservice 等待 CN 上报时不响应取消导致 Close 永久阻塞
- [#25877](https://github.com/matrixorigin/matrixone/issues/25877) — [Bug]: shardservice removeCache 原地修改已发布快照导致并发 map 崩溃
- [#25884](https://github.com/matrixorigin/matrixone/issues/25884) — [Bug]: shardservice Close 漏关 remote RPC server,返回后监听端口仍可连接
**下一步:** 覆盖正常关闭、取消、超时、重复 Close、部分初始化、服务复用、并发读写和关闭后端口不可达;优先证明子服务已退出再返回 Close。
**主要风险与验证要求:** 只修表面 listener 或 map 写入会遗漏启动失败、重启和并发快照读;需要 race/生命周期测试。
### Rank 8 — Scalar/type/operator 兼容性(5 个)
**为什么排在这里:** 用户可见但契约彼此独立,按 issue 分别修复,避免为一个 SQL 差异引入跨模块重构。
**根因/模块边界:** 涉及 ENUM/SET 数值聚合、BLOB/TEXT byte limit、FLOAT/DOUBLE ±0 index key canonicalization、SET 空成员排序/分组和 CLIENT_FOUND_ROWS 的 affected-row 语义。
**Issues:**
- [#28692](https://github.com/matrixorigin/matrixone/issues/28692) — [Compatibility]: SUM and AVG reject ENUM and SET numeric aggregation supported by MySQL
- [#28694](https://github.com/matrixorigin/matrixone/issues/28694) — [Compatibility]: BLOB and TEXT columns do not enforce MySQL family byte limits
- [#28695](https://github.com/matrixorigin/matrixone/issues/28695) — [Bug]: FLOAT and DOUBLE secondary-index equality omits SQL-equal signed zero
- [#28222](https://github.com/matrixorigin/matrixone/issues/28222) — [Compatibility]: projected SET values with an empty member cannot be sorted or grouped
- [#28180](https://github.com/matrixorigin/matrixone/issues/28180) — [Bug]: Single-row ODKU no-op ignores CLIENT_FOUND_ROWS while UPDATE honors it
**下一步:** 用 MySQL 对照矩阵补类型边界、索引/unique、NULL、空值、客户端 capability 和 prepared path;保持执行结果与错误码/affected rows 一致。
**主要风险与验证要求:** 比较、存储 key、类型 coercion 和协议层计数可能各有实现;不能只改 SQL parser 或单一 executor。
### Rank 9 — UUID、REGEXP 与 AES 兼容性(6 个)
**为什么排在这里:** 函数族边界清晰,适合按外部兼容契约和安全向量拆分,避免把安全语义当普通函数补丁。
**根因/模块边界:** UUID 包含版本、返回类型和 swap flag;REGEXP 剩余 ICU pattern dialect/resource 行为;AES 包含 mode/KDF 参数和向量兼容。
**Issues:**
- [#28380](https://github.com/matrixorigin/matrixone/issues/28380) — [Compatibility]: UUID() generates UUIDv7 instead of MySQL UUIDv1
- [#28382](https://github.com/matrixorigin/matrixone/issues/28382) — [Compatibility]: UUID() native result type breaks MySQL string expression semantics
- [#28251](https://github.com/matrixorigin/matrixone/issues/28251) — [Compatibility]: UUID_TO_BIN and BIN_TO_UUID swap flags handle NULL and nonnumeric strings differently from MySQL
- [#28305](https://github.com/matrixorigin/matrixone/issues/28305) — [Compatibility]: REGEXP lacks MySQL ICU constructs and capture-group replacement
- [#28223](https://github.com/matrixorigin/matrixone/issues/28223) — [Compatibility]: AES_ENCRYPT supports only 2 of MySQL's 18 block encryption modes
- [#28224](https://github.com/matrixorigin/matrixone/issues/28224) — [Compatibility]: AES_ENCRYPT and AES_DECRYPT lack MySQL KDF arguments
**下一步:** #28305 在 #28862;其当前 UT/CI Required 失败,不能视为完成。其余 issue 先固化目标 MySQL 版本、NULL/非法输入、string coercion、regex resource limit 和 AES 官方向量。
**主要风险与验证要求:** 兼容性错误可能静默返回错误结果;AES 更要验证 key derivation、mode、IV、错误行为和安全边界。
### Rank 10 — Optimizer/query execution 性能增强 backlog(17 个)
**为什么排在这里:** 这些是待设计/增强项,不与当前已复现 bug 混做;应在 Rank 1 的性能基线明确后按收益和回归风险择机处理。
**根因/模块边界:** 包含 grouped aggregation/shuffle hash 复用、spill finalize、aggregate elimination、join uniqueness、storage order、right SINGLE scan、调度、semi/inner join rewrite、plan 参数 marshal、statement_info、TN commit latency、表数据管理和 appendable flush。
**Issues:**
- [#27728](https://github.com/matrixorigin/matrixone/issues/27728) — [Enhancement]: Stabilize high-NDV GROUP BY planning and VARCHAR shuffle ownership
- [#27729](https://github.com/matrixorigin/matrixone/issues/27729) — [Enhancement]: Parallelize grouped-aggregation spill partition finalization
- [#27753](https://github.com/matrixorigin/matrixone/issues/27753) — [Enhancement]: Reuse canonical grouping hashes across shuffle and aggregation
- [#27856](https://github.com/matrixorigin/matrixone/issues/27856) — [Enhancement]: Extend bounded aggregate elimination to proven non-PK unique keys
- [#27857](https://github.com/matrixorigin/matrixone/issues/27857) — [Enhancement]: Exploit proven storage/index order for streaming grouped LIMIT
- [#27858](https://github.com/matrixorigin/matrixone/issues/27858) — [Enhancement]: Simplify constant ORDER BY and HAVING after single-row aggregate elimination
- [#27859](https://github.com/matrixorigin/matrixone/issues/27859) — [Enhancement]: Propagate join uniqueness for bounded aggregate elimination
- [#27860](https://github.com/matrixorigin/matrixone/issues/27860) — [Enhancement]: Extend proven single-row aggregate laws beyond the initial family
- [#25862](https://github.com/matrixorigin/matrixone/issues/25862) — [Performance]: Avoid full probe-table scans for right SINGLE joins without breaking multi-CN execution
- [#25451](https://github.com/matrixorigin/matrixone/issues/25451) — [Tech Request]: Intelligent Query Execution Scheduling
- [#11612](https://github.com/matrixorigin/matrixone/issues/11612) — [Enhancement]: support rewrite semi join to inner join and inner to semi
- [#22337](https://github.com/matrixorigin/matrixone/issues/22337) — [Tech Request]: Avoid the overhead from marshal\|unmarshal TableFunction.Params and IndexTableConfig during index search
- [#23386](https://github.com/matrixorigin/matrixone/issues/23386) — [Feature Request]: Optimize statement_info exec_plan storage by implementing conditional Physical Plan output
- [#14579](https://github.com/matrixorigin/matrixone/issues/14579) — [Tech Request]: improve tn commit latency
- [#7065](https://github.com/matrixorigin/matrixone/issues/7065) — [Enhancement]: Scale number of log service per dn
- [#9986](https://github.com/matrixorigin/matrixone/issues/9986) — [Enhancement]: reimplement table data management
- [#15526](https://github.com/matrixorigin/matrixone/issues/15526) — [Tech Request]: avoid flushing appendable objects
**下一步:** 先建立 workload/profile/正确性不变量,明确每个增强的适用条件和反例;能共享基础设施时再合并 PR,不能用 speculative rewrite 代替证据。
**主要风险与验证要求:** 优化器规则的证明条件、分布式执行和内存 ownership 可能互相影响;每个规则要有正例、反例和 plan regression。
### Rank 11 — SQL/旧协议/功能缺口兼容性 backlog(32 个)
**为什么排在这里:** 数量较多但大多是独立语法或功能契约,先按客户/版本承诺排序,不阻塞当前 crash、CI 和高 ROI 性能工作。
**根因/模块边界:** 覆盖 stored procedure/CALL 错误、EXCEPT ALL、SAVEPOINT/ROLLBACK TO、RENAME INDEX/TABLE/DATABASE、partition syntax、CTE/correlated/recursive query、LATERAL、window partition、SQL/PGQ、COLLATE/CHARSET 以及 assorted unimplemented surface。
**Issues:**
- [#28306](https://github.com/matrixorigin/matrixone/issues/28306) — [Compatibility]: MySQL ExtractValue and UpdateXML functions are unavailable
- [#28234](https://github.com/matrixorigin/matrixone/issues/28234) — [Compatibility]: EXCEPT ALL multiset subtraction is not implemented
- [#28248](https://github.com/matrixorigin/matrixone/issues/28248) — [Compatibility]: SAVEPOINT is accepted as a no-op while ROLLBACK TO remains unimplemented
- [#23392](https://github.com/matrixorigin/matrixone/issues/23392) — [Bug]: MO does not support the RENAME INDEX sql
- [#25124](https://github.com/matrixorigin/matrixone/issues/25124) — [Bug]: CALL / stored procedure raises misleading "unclassified statement appears in uncommitted transaction" internal error
- [#23125](https://github.com/matrixorigin/matrixone/issues/23125) — Transactions: SAVEPOINT not implemented
- [#25107](https://github.com/matrixorigin/matrixone/issues/25107) — [Feature Request]: Assorted unimplemented functions & locking/set-op syntax
- [#25120](https://github.com/matrixorigin/matrixone/issues/25120) — [Bug] RENAME TABLE with multiple pairs is non-atomic; partial failures leave the database in inconsistent state
- [#25115](https://github.com/matrixorigin/matrixone/issues/25115) — [Bug] Window function fails on partitioned data: internal error: the Window operator currently does not support sending split result of window function
- [#22470](https://github.com/matrixorigin/matrixone/issues/22470) — [Feature Request]: support alter database xx rename yy
- [#23097](https://github.com/matrixorigin/matrixone/issues/23097) — Feature Not Supported: ALTER TABLE EXCHANGE PARTITION Not Supported
- [#23096](https://github.com/matrixorigin/matrixone/issues/23096) — Feature Not Supported: EXPLAIN PARTITIONS Syntax Not Supported
- [#23095](https://github.com/matrixorigin/matrixone/issues/23095) — Feature Not Supported: SHOW PARTITIONS FROM table Command Not Supported
- [#23094](https://github.com/matrixorigin/matrixone/issues/23094) — Feature Not Supported: SELECT FROM table PARTITION (partition_name) Syntax Not Supported
- [#23093](https://github.com/matrixorigin/matrixone/issues/23093) — Feature Not Supported: ALTER TABLE COALESCE PARTITION Not Supported
- [#23092](https://github.com/matrixorigin/matrixone/issues/23092) — Feature Not Supported: ALTER TABLE REORGANIZE PARTITION Not Supported
- [#23091](https://github.com/matrixorigin/matrixone/issues/23091) — Feature Not Supported: ALTER TABLE TRUNCATE PARTITION Not Supported
- [#23090](https://github.com/matrixorigin/matrixone/issues/23090) — Feature Not Supported: ALTER TABLE ADD PARTITION Not Supported
- [#23089](https://github.com/matrixorigin/matrixone/issues/23089) — Feature Not Supported: LIST Partition with VALUES IN (DEFAULT) Syntax Not Supported
- [#23086](https://github.com/matrixorigin/matrixone/issues/23086) — MySQL Compatibility: REPLACE statement does not support CTE
- [#23084](https://github.com/matrixorigin/matrixone/issues/23084) — Feature Not Supported: Correlated subquery in FROM clause not yet implemented
- [#23083](https://github.com/matrixorigin/matrixone/issues/23083) — MySQL Compatibility: JOIN column reference remapping error in nested correlated subqueries
- [#23079](https://github.com/matrixorigin/matrixone/issues/23079) — MySQL Compatibility: ORDER BY/LIMIT not supported in recursive CTE anchor part
- [#23078](https://github.com/matrixorigin/matrixone/issues/23078) — MySQL Compatibility: LEFT/RIGHT/OUTER JOIN not supported in recursive CTE
- [#23077](https://github.com/matrixorigin/matrixone/issues/23077) — MySQL Compatibility: GROUP BY not supported in recursive CTE
- [#23069](https://github.com/matrixorigin/matrixone/issues/23069) — MySQL Compatibility: UNION queries with LIMIT clauses not supported
- [#23066](https://github.com/matrixorigin/matrixone/issues/23066) — MySQL Compatibility: Support column name references in INSERT VALUES expressions
- [#23099](https://github.com/matrixorigin/matrixone/issues/23099) — Feature Not Supported: LATERAL derived tables (LATERAL JOINs) not supported
- [#6601](https://github.com/matrixorigin/matrixone/issues/6601) — [Feature Request]: Support alter database
- [#6603](https://github.com/matrixorigin/matrixone/issues/6603) — [Feature Request]: rename database
- [#3616](https://github.com/matrixorigin/matrixone/issues/3616) — [Feature Request]: Support COLLATE and CHARSET/CHARACTER SET
- [#28174](https://github.com/matrixorigin/matrixone/issues/28174) — [Feature Request]: Implement SQL:2023 SQL/PGQ property graphs over relational tables
**下一步:** 每个 issue 先确认目标版本、是否已由更大 feature issue 覆盖、错误/事务原子性契约和最小 BVT;同一语法族可以共享设计,但不为关闭 issue 而标记 no-op 已完成。
**主要风险与验证要求:** 旧 issue 的环境和需求可能过时;实现前需重新确认当前 parser/planner/executor 边界和重复 issue。
### Rank 12 — 存储、日志与跨版本架构 backlog(5 个)
**为什么排在这里:** 影响基础设施和跨版本演进,改动面大、验证周期长,放在具体 correctness/CI 信号稳定之后。
**根因/模块边界:** 涉及 logtail checkpoint event、log entry header metadata、可插拔 WAL replay、forward compatibility 和跨版本 API compatibility;需要组件边界和升级矩阵。
**Issues:**
- [#19346](https://github.com/matrixorigin/matrixone/issues/19346) — [Tech Request]: sync checkpoint event in the logtail protocol and optimize partition state gc logic
- [#19355](https://github.com/matrixorigin/matrixone/issues/19355) — [Tech Request]: implement new log entry with more reserved metadata space in the header
- [#13536](https://github.com/matrixorigin/matrixone/issues/13536) — [Tech Request]: support user-defined wal replay handle to replay log entries
- [#13538](https://github.com/matrixorigin/matrixone/issues/13538) — [Tech Request]: support forward compatibility under certain conditions - design
- [#11781](https://github.com/matrixorigin/matrixone/issues/11781) — [Tech Request]: API compatibility between components of different versions
**下一步:** 先形成设计文档、版本/恢复状态矩阵和故障注入计划,再拆最小实现;不要与单个 SQL issue 共享一个 PR。
**主要风险与验证要求:** 跨组件协议变化可能造成旧数据不可恢复或滚动升级不兼容;必须验证旧/新版本、回放、降级和失败恢复。
## 当前交付/PR状态(只作为工作信息,不改变 issue 完成判定)
- #28765 → [PR #28825](https://github.com/matrixorigin/matrixone/pull/28825):open;当前 UT/SCA 通过,但 UT Coverage、Compose proxy 和 CI Required 失败,不能视为完成,先定位/重跑并复核。
- #28194+#28200 → [PR #28830](https://github.com/matrixorigin/matrixone/pull/28830):open,当前 required CI/UT/SCA/Coverage/Compose 均通过,仍待合并或转测。
- #28795+#28198 → [PR #28835](https://github.com/matrixorigin/matrixone/pull/28835):open,当前 required CI/UT/SCA/Coverage/Compose 均通过,仍待合并或转测。
- #28196 → [PR #28844](https://github.com/matrixorigin/matrixone/pull/28844):open,当前 required CI/UT/SCA/Coverage/Compose 均通过,仍待合并或转测。
- #28305 → [PR #28862](https://github.com/matrixorigin/matrixone/pull/28862):open;SCA/Coverage/Compose 通过,但 UT 与 CI Required 失败,不能视为完成。
- #28875+#28876 → [PR #28878](https://github.com/matrixorigin/matrixone/pull/28878):open,当前 required CI/UT/SCA/Coverage/Compose 均通过,issue 仍由我负责所以保留。
- #28838 → merged [PR #28841](https://github.com/matrixorigin/matrixone/pull/28841) 已修 executor 基础问题,但 issue 仍 open 且 assignee 仍是我,需按 exact head 做回归验证。
- #27679 → merged [PR #28773](https://github.com/matrixorigin/matrixone/pull/28773),但 issue 仍 open 且 assignee 仍是我,必须补 ClickBench 端到端证据后再转测/关闭。
- 已关闭或转交的 issue 不在上述 124 个当前候选中;历史 PR 只用于追溯,不改变当前候选集合。
## 工作约束
- 相似 issue 共享调查、基准和回归矩阵;只有在代码路径、根因和验证边界都相同,才合并到一个 PR。
- 不接受“为了过 CI”的修修补补:UT/CI 处理必须同时说明真实根因、取消/清理/失败路径和重复运行证据。
- ClickBench、写入和查询优化统一在 55 机器上建立可复现基线;记录 schema/data/query、warmup、并发度、wall time、profile、内存和结果校验。
- 兼容性 issue 以目标 MySQL 版本和正常/NULL/非法输入/客户端 prepared path 对照为准。
- 提交 PR 前执行 GPT-6 medium review;open PR 不等于 issue 完成。
Contributor guide
Assessment
This issue has not been assessed yet.