strongduanmu commented on PR #39231:
URL: https://github.com/apache/shardingsphere/pull/39231#issuecomment-5067980120
• ### Summary
**Review Result: Mergeable**
Reason: This conclusion covers code correctness only. No code-level
blocker was found in the Oracle parser/binder scope at latest head
`fd1d292149613e565684ad0c34f857b71e6a29e4`. CI not reviewed by request.
### Evidence
- Oracle DML alias and `WHERE CURRENT OF` syntax are covered for
update/delete, and the visitor preserves `CURRENT OF <cursor>` as a
`WhereSegment`: `DMLStatement.g4:116`, `DMLStatement.g4:149`,
`DMLStatement.g4:661`, `OracleDMLStatementVisitor.java:254`,
`OracleDMLStatementVisitor.java:506`.
- Oracle `CALL`, create/alter/drop procedure, and SQL collection inside
PL/SQL bodies flow from grammar into AST visitors: `PLSQL.g4:37`,
`OracleDMLStatementVisitor.java:230`, `CallStatement.java:34`,
`OracleDDLStatementVisitor.java:1329`.
- Binder variable handling runs after table/outer/external table
resolution, so PL/SQL variables and record field owners are supported while
existing table-column precedence is preserved: `ColumnSegmentBinder.java:207`,
`ColumnSegmentBinder.java:229`,
`ColumnSegmentBinder.java:312`.
- Test resources cover the new syntax and binding scenarios: Oracle CALL,
update/delete `CURRENT OF`, and Oracle DML target aliases.
- The release note includes this parser/binder enhancement:
`RELEASE-NOTES.md:72`.
### Review Details
- Review Focus: Code Correctness Review. CI not reviewed by request.
- Reviewed Scope: latest PR head
`fd1d292149613e565684ad0c34f857b71e6a29e4`, base `master` /
`1f1aa6d766d031da6fd911c04654fdaf31b8ee90`, merge-base
`1f1aa6d766d031da6fd911c04654fdaf31b8ee90`; GitHub `/pulls/39231/files` matched
the local triple-dot file list,
with 22 files reviewed. Target dialect: Oracle. Related impact checked:
shared `CallStatement`, `ColumnSegmentBinder`, and existing
MySQL/PostgreSQL/Doris CALL AST constructor compatibility. Syntax references
checked: Oracle official CALL, UPDATE, DELETE, and
CREATE PROCEDURE documentation.
- Not Reviewed Scope: GitHub Actions/CI/E2E logs, real Oracle database
runtime behavior, and full release process.
- Verification: `./mvnw -pl infra/binder/core
-Dtest=org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinderTest
-DskipITs -Dspotless.skip=true test` exit 0, `Tests run: 10, Failures: 0,
Errors: 0`; `./mvnw -pl parser/
sql/engine/dialect/oracle -DskipITs -Dspotless.skip=true test` exit 0,
`BUILD SUCCESS`.
- Release Note / User Docs: release note is present. No additional user
documentation is required because this PR does not introduce configuration,
migration, or user operation semantics.
--
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]