Skip to content

Support Oracle full width SQL symbols - #39349

Merged
FlyingZC merged 3 commits into
apache:masterfrom
strongduanmu:oracle-full-width-symbols
Aug 6, 2026
Merged

Support Oracle full width SQL symbols#39349
FlyingZC merged 3 commits into
apache:masterfrom
strongduanmu:oracle-full-width-symbols

Conversation

@strongduanmu

@strongduanmu strongduanmu commented Aug 5, 2026

Copy link
Copy Markdown
Member

Fixes #N/A.

Changes proposed in this pull request:

  • Support Oracle full width SQL symbols for parentheses, comparison, arithmetic, and concatenation operators.
  • Support Oracle qualified wildcard projections with a full width asterisk.
  • Exclude those full width SQL symbols from Oracle identifier tokens so adjacent function calls and subqueries tokenize correctly.
  • Add Oracle parser IT coverage for full width function calls, subqueries, comparisons, arithmetic expressions, concatenation, and qualified wildcard projections.
  • Update the current development version release notes.

Local verification:

  • ./mvnw -pl parser/sql/engine/dialect/oracle -am -DskipTests -Dspotless.skip=true install
  • ./mvnw -pl test/it/parser -Dtest=org.apache.shardingsphere.test.it.sql.parser.oracle.InternalOracleParserIT -Dsurefire.failIfNoSpecifiedTests=false -Dspotless.skip=true test
  • ./mvnw -pl test/it/rewriter -Dtest=EncryptSQLRewriterIT,ShardingSQLRewriterIT,MixSQLRewriterIT -Dsurefire.failIfNoSpecifiedTests=false -Dspotless.skip=true test
  • ./mvnw spotless:apply -Pcheck -T1C
  • ./mvnw checkstyle:check -Pcheck -T1C

Before committing this PR, I'm sure that I have checked the following options:

  • My code follows the code of conduct of this project.
  • I have self-reviewed the commit code.
  • I have (or in comment I request) added corresponding labels for the pull request.
  • I have passed maven check locally : ./mvnw clean install -B -T1C -Dmaven.javadoc.skip -Dmaven.jacoco.skip -e.
  • I have made corresponding changes to the documentation.
  • 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

@strongduanmu strongduanmu added this to the 5.5.4 milestone Aug 5, 2026
@strongduanmu
strongduanmu marked this pull request as ready for review August 5, 2026 11:34
@strongduanmu

Copy link
Copy Markdown
Member Author

• ### Result

Review Result: Mergeable

PR #39349 latest head 680af96bf96b0942cf4dfef40fcbd2658bc96a11 passed the code-scope review. The missed qualified wildcard case SELECT t.* FROM t_order t found during review has been fixed and pushed. No new blocking issues remain.

Evidence

  • Added Release Note: Support Oracle full width SQL symbols #39349 was added to RELEASE-NOTES.md under 5.5.4 Enhancements.
  • Fixed missed coverage: DOT_ASTERISK_ now supports .\uFF0A, with a new Oracle parser IT case select_oracle_full_width_qualified_shorthand_projection.
  • Updated PR body and checked the Release Notes checklist item.
  • ./mvnw -pl parser/sql/engine/dialect/oracle -am -DskipTests -Dspotless.skip=true install exit 0, BUILD SUCCESS.
  • ./mvnw -pl test/it/parser -Dtest=org.apache.shardingsphere.test.it.sql.parser.oracle.InternalOracleParserIT -Dsurefire.failIfNoSpecifiedTests=false -Dspotless.skip=true test exit 0, 1802 tests passed.
  • ./mvnw -pl test/it/rewriter -Dtest=EncryptSQLRewriterIT,ShardingSQLRewriterIT,MixSQLRewriterIT -Dsurefire.failIfNoSpecifiedTests=false -Dspotless.skip=true test exit 0, 1015 tests passed.
  • ./mvnw spotless:apply -Pcheck -T1C exit 0; ./mvnw checkstyle:check -Pcheck -T1C exit 0.
  • Parser smoke covered full width parentheses, comma, arithmetic, concatenation, mixed comparison forms, SELECT t.* FROM t_order t, and SELECT * FROM t_order; all passed.

Coverage

  • Reviewed files: RELEASE-NOTES.md, Oracle Literals.g4, Oracle Symbol.g4, 2 supported SQL XML files, and 2 expected case XML files.
  • Behavior clusters: Oracle full width lexer tokens, identifier exclusion ranges, composite wildcard token, Oracle parser IT baseline, and Release Note.
  • Related dialects: this PR only changes the Oracle dialect; other dialect Symbol.g4 files do not introduce full width tokens and are unaffected.
  • Official docs checked: Oracle 12.2 SQL Reference SELECT, Arithmetic Operators, Concatenation Operator, and Comparison Conditions.
  • CI scope: Code Correctness Review; GitHub Actions were not checked.
  • Local residual: only the unrelated untracked file .codex/skills/review-pr/scripts/__pycache__/ remains, and it is not included in the PR.

@FlyingZC
FlyingZC merged commit 3275787 into apache:master Aug 6, 2026
26 checks passed
@strongduanmu
strongduanmu deleted the oracle-full-width-symbols branch August 6, 2026 01:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants