suxiaogang223 commented on PR #69987: URL: https://github.com/apache/doris/pull/69987#issuecomment-6651903503
# PR 69987 本地代码评审 PASS PR https://github.com/apache/doris/pull/69987 评审提交 `62381e90491b435cb2222814c6b9f0832c0a837e` 比较基线 `fcf143c1aa813124f4fdda8f445cf9f053f99684` 采用仓库 `.claude/skills/code-review/SKILL.md`,使用 gpt-6.1-sol / xhigh 复核当前 PR 的全部五个文件。本轮评审通过,未发现 Blocker、Major、Minor 或 Nit 问题。 ## 关键路径 `PluginDrivenScanNode.buildRemainingFilter` 将谓词交给 `ExprToConnectorExpressionConverter`。JDBC 默认允许 CAST 谓词下推,转换器会去掉 CAST,因此浮点字面量的远端类型会影响比较结果。 `JdbcScanPlanProvider` 在执行扫描和生成 EXPLAIN 时都调用 `JdbcQueryBuilder.buildQuery`。本次的 `operandToSql` 保留比较、IN、IS NULL、LIKE、BETWEEN 和算术操作数的表达式边界。 `collectFilters` 可以单独下推 AND 中能够转换的子句。OR 和 NOT 中存在不能转换的表达式时,整个表达式留给 Doris。JDBC 没有提供已下推 conjunct 的精确跟踪,BE 保留原谓词。任何子句转换失败时,`allFiltersCollected` 都会阻止远端 LIMIT、TOP 或 ROWNUM 截断。 ## 逐项检查 | 检查项 | 结论 | | --- | --- | | 目标与正确性 | 复合操作数增加括号,保持表达式树的优先级。有限 double 使用可往返的表示,避免转换成 long 后饱和。 | | 改动范围与复用 | 使用一个操作数格式化方法,生产改动集中在 JdbcQueryBuilder。其余文件为单测和三组 EXPLAIN 断言。 | | 并发与锁 | 新增逻辑只使用调用内局部变量,没有新增共享可变状态或锁。 | | 生命周期与静态初始化 | 没有新增资源、线程、缓存或初始化依赖。 | | 配置 | 没有新增配置,现有函数规则和 CAST 下推开关继续参与判断。 | | 接口与兼容性 | 没有变更 SPI、持久化格式或 FE 到 BE 协议。远端 SQL 的括号和浮点字面量表示有意改变。 | | Thrift 与 Protobuf | 本 PR 没有相关文件变更。 | | 平行路径 | 执行与 EXPLAIN 共用生成器。Oracle 与 OceanBase Oracle 共用 D 后缀分支,PostgreSQL 使用显式 DOUBLE PRECISION。 | | 条件分支 | 非有限浮点值和空 IN 对应无法可靠下推的输入,按现有 null 返回约定回退;这些分支会同步阻止 LIMIT 下推。 | | 单测 | 新增分组、嵌套谓词、空 IN、非有限值、long 边界、负零、PostgreSQL 浮点类型和 Oracle BINARY_DOUBLE 覆盖。 | | 回归断言 | Oracle SCORE 的 NUMBER(3,1) 预期使用 0.0。ClickHouse 浮点 k6 的三处条件使用 0.0。MySQL 用例在 72cfd45c53f 的外表 CI 中通过,之后仅 Oracle 与 ClickHouse 的四处断言发生变化。 | | 结果文件 | 本 PR 没有修改 .out 文件。回归改动只涉及 EXPLAIN contains 或 notContains。 | | 可观测性 | 生成后的 SQL 已进入 EXPLAIN 和现有 DEBUG 日志,足够定位此次问题。 | | 事务与持久化 | 没有改变写入提交、EditLog 或回放路径。 | | 数据写入 | 没有改变 JDBC sink、提交或回滚行为。 | | FE 到 BE 变量 | 没有新增变量。 | | 性能 | 渲染仍按表达式树递归,新增括号只增加与表达式大小同阶的 SQL 文本。 | | 其他问题 | 两条历史评审意见均已解决。当前提交未发现新的阻塞问题。 | ## 验证范围 本轮重新执行了 `git diff --check` 和 `build-support/check-fe-connector-imports.sh`,均通过。两个已失败 EXPLAIN 块的全部断言已与 CI 1090453 保存的实际计划比对,修改后的断言匹配记录中的计划。 工作树保留的 2026 年 11 月 3 日 JdbcQueryBuilderTest 报告为 52 项通过。此后 Java 源码和单测没有变化,最新提交只调整四处回归断言。本轮没有重新运行单测或外部数据库回归。ClickHouse 后续重新启用函数及函数改写的断言经过静态推导,实际执行结果仍待回归验证。 <!-- doris-repo-review:v1:begin --> ```yaml schema: doris-repo-review/v1 status: PASS pr: apache/doris#69987 commit: 62381e90491b435cb2222814c6b9f0832c0a837e base: fcf143c1aa813124f4fdda8f445cf9f053f99684 reviewed_at: 2026-11-05T07:01:41Z reviewer: suxiaogang223 model: gpt-6.1-sol effort: xhigh findings: {blocker: 0, major: 0, minor: 0, nit: 0} rounds: 1 converged: true ``` <!-- doris-repo-review:v1:end --> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
