strongduanmu commented on PR #38902:
URL: https://github.com/apache/shardingsphere/pull/38902#issuecomment-4786746631
### Summary
**Review Result: Mergeable**
**Reason:** 当前 PR 的声明范围是支持 Oracle `INSERT ... RETURNING ... INTO`
解析。最新代码已扩展 Oracle grammar 和 visitor,并新增 parser IT case 覆盖 `INSERT INTO t_user
(user_id, user_name) VALUES (?, ?)
RETURNING user_id INTO ?`。在本轮 parser-only scope 下,未发现必须阻塞合并的问题。
### Evidence
- Oracle grammar 已允许 `RETURNING ... INTO` 的 into item 使用 `dataItem` 或
`parameterMarker`:`parser/sql/engine/dialect/oracle/src/main/antlr4/imports/oracle/DMLStatement.g4:59`。
- Oracle visitor 已为 `returningIntoItem` 中的 parameter marker
注册参数标记:`parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/
OracleDMLStatementVisitor.java:929`。
- 新增 Oracle insert parser case 覆盖了 `RETURNING user_id INTO
?`:`test/it/parser/src/main/resources/sql/supported/dml/insert.xml:210` 和
`test/it/parser/src/main/resources/case/dml/insert.xml:5789`。
- Release note 已添加对应 SQL Parser enhancement:`RELEASE-NOTES.md`。
### Review Details
**Reviewed Scope:** PR #38902 最新 head
`d8a04ac62d4ce10289413570d4290f632889d862`;base `master` 为
`5cb6a309fca70f2ffef9c3b699b2f00177450070`;本地 merge-base 为
`ede2451d30c6affbc6078d8df4365bcaa91e5242`。
GitHub `/pulls/38902/files` 与本地 triple-dot 文件列表一致,共 14 个文件。
**Reviewed Scope:** 目标方言是 Oracle。已审查 parser grammar、Oracle DML
visitor、parser IT fixture/assertion、共享 binder touchpoint 和 release
note。按仓库方言族映射,Oracle 没有 branch dialect。
**Not Reviewed Scope:** JDBC/Proxy 对 `RETURNING ... INTO ?` 的执行支持不在本 PR
parser-only 范围内。Update/delete `RETURNING` 的更完整 assertion 覆盖也暂不作为本轮 merge gate。
**Verification:**
- `./mvnw -pl test/it/parser -am -DskipITs -Dspotless.skip=true
-Dtest=org.apache.shardingsphere.test.it.sql.parser.oracle.InternalOracleParserIT
-Dsurefire.failIfNoSpecifiedTests=false test` - exit 0,1784 个测
试通过。
- `./mvnw -pl infra/binder/core -am -DskipITs -Dspotless.skip=true
-Dtest=org.apache.shardingsphere.infra.binder.context.segment.insert.values.OnDuplicateUpdateContextTest,org.apache.shardingsphere.infra.binder.context.statement.type.dml.InsertStatementContextTest
-Dsurefire.failIfNoSpecifiedTests=false test` - exit 0,18 个测试通过。
**Release Note / User Docs:** Release note 已添加。这个窄范围 parser 增强不需要用户文档。
--
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]