Skip to content

Conversation

huajianxiaowanzi
Copy link

@huajianxiaowanzi huajianxiaowanzi commented Aug 13, 2025

@waterdrink

关联的 issue

#2989

描述你的变更

  1. 添加对 FROM 子查询的支持:在原有处理 WHERE、IN 和 EXISTS 等中子查询的基础上,新增了对嵌套在 FROM 子句中的子查询的识别和处理。
  2. 代码修改:对于 FROM 子句中的子查询,判断是否是 ast.TableSource 类型,并进一步检查是否包含 ast.SelectStmt。如果符合条件,将 SelectStmt 包装为 ast.SubqueryExpr 形式并统一处理。
  3. 单元测试修改:之前认为"SELECT语句中使用JOIN的ON条件中嵌套子查询6层, 但是实际扫描表的子查询只有2次,因此不算违规",mysql官方文档中对子查询的定义是"子查询是嵌套在另一个SQL语句内部的SELECT语句",和是否实际扫描表无关,因此应该认为违规。

确认项(pr提交后操作)

Tip

请在指定复审人之前,确认并完成以下事项,完成后✅


  • 我已完成自测
  • 我已记录完整日志方便进行诊断
  • 我已在关联的issue里补充了实现方案
  • 我已在关联的issue里补充了测试影响面
  • 我已确认了变更的兼容性,如果不兼容则在issue里标记 not_compatible
  • 我已确认了是否要更新文档,如果要更新则在issue里标记 need_update_doc

@winfredLIN winfredLIN self-requested a review August 20, 2025 02:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant