You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by "strongduanmu (via GitHub)" <gi...@apache.org> on 2026/07/24 06:07:07 UTC

[PR] Support Oracle procedure parser and binder [shardingsphere]

strongduanmu opened a new pull request, #39231:
URL: https://github.com/apache/shardingsphere/pull/39231

   Ref #16218.
   
   Changes proposed in this pull request:
     - Support Oracle procedure lifecycle and CALL statement parsing.
     - Bind Oracle DML target table aliases and procedure record field variables.
     - Add parser and binder test cases for Oracle procedure and alias scenarios.
   
   ---
   
   Before committing this PR, I'm sure that I have checked the following options:
   - [x] My code follows the [code of conduct](https://shardingsphere.apache.org/community/en/involved/conduct/code/) of this project.
   - [x] I have self-reviewed the commit code.
   - [x] I have (or in comment I request) added corresponding labels for the pull request.
   - [x] I have passed maven check locally : `./mvnw clean install -B -T1C -Pcheck -Dmaven.javadoc.skip -Dmaven.jacoco.skip -e`.
   - [ ] I have made corresponding changes to the documentation.
   - [x] I have added corresponding unit tests for my changes.
   - [ ] I have updated the Release Notes of the current development version. For more details, see [Update Release Note](https://shardingsphere.apache.org/community/en/involved/contribute/contributor/)
   


-- 
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: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Support Oracle procedure parser and binder [shardingsphere]

Posted by "FlyingZC (via GitHub)" <gi...@apache.org>.
FlyingZC merged PR #39231:
URL: https://github.com/apache/shardingsphere/pull/39231


-- 
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: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Support Oracle procedure parser and binder [shardingsphere]

Posted by "strongduanmu (via GitHub)" <gi...@apache.org>.
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: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org