From 9905d12ae61b69516ba1f83f05b6c03057f88154 Mon Sep 17 00:00:00 2001 From: JiaqiYan Date: Wed, 16 Apr 2025 20:54:58 +0800 Subject: [PATCH 1/3] Support parsing MySQL stored procedure syntax part2 --- .../main/antlr4/imports/mysql/DDLStatement.g4 | 5 +-- .../resources/case/ddl/create-procedure.xml | 36 +++++++++++++++++++ .../sql/supported/ddl/create-procedure.xml | 5 +++ 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DDLStatement.g4 b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DDLStatement.g4 index 7d2fee0ce9b68..de62d47d3e7fe 100644 --- a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DDLStatement.g4 +++ b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DDLStatement.g4 @@ -293,7 +293,7 @@ dropFunction createProcedure : CREATE ownerStatement? - PROCEDURE functionName LP_ procedureParameter? (COMMA_ procedureParameter)* RP_ + PROCEDURE ifNotExists? functionName LP_ procedureParameter? (COMMA_ procedureParameter)* RP_ routineOption* routineBody ; @@ -681,7 +681,8 @@ validStatement : (createTable | alterTable | dropTable | dropDatabase | truncateTable | insert | replace | update | delete | select | call | createView | prepare | executeStmt | commit | deallocate - | setVariable | beginStatement | declareStatement | flowControlStatement | cursorStatement | conditionHandlingStatement) SEMI_? + | setVariable | beginStatement | declareStatement | flowControlStatement | cursorStatement | conditionHandlingStatement + | showCreateTable | startTransaction | rollback | commit) SEMI_? ; beginStatement diff --git a/test/it/parser/src/main/resources/case/ddl/create-procedure.xml b/test/it/parser/src/main/resources/case/ddl/create-procedure.xml index 788f6da030de9..80979d063f3e3 100644 --- a/test/it/parser/src/main/resources/case/ddl/create-procedure.xml +++ b/test/it/parser/src/main/resources/case/ddl/create-procedure.xml @@ -64,4 +64,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/create-procedure.xml b/test/it/parser/src/main/resources/sql/supported/ddl/create-procedure.xml index 4769985b11fda..805aa89f3c059 100644 --- a/test/it/parser/src/main/resources/sql/supported/ddl/create-procedure.xml +++ b/test/it/parser/src/main/resources/sql/supported/ddl/create-procedure.xml @@ -49,4 +49,9 @@ + + + + + From d614cc066ecb16f956a895a830643c415f3ef368 Mon Sep 17 00:00:00 2001 From: JiaqiYan Date: Wed, 16 Apr 2025 21:58:38 +0800 Subject: [PATCH 2/3] Add release notes --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 5db48b9c34047..a4a82dbcf40b6 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -32,6 +32,7 @@ 1. SQL Parser: Enhance combineType in Oracle to support EXCEPT ALL and INTERSECT ALL - [#35099](https://github.com/apache/shardingsphere/pull/35099) 1. DistSQL: Add InUsedStorageUnitRetriever for single rule - [#35131](https://github.com/apache/shardingsphere/pull/35131) 1. SQL Parser: Support parsing MySQL stored procedure syntax - [#35137](https://github.com/apache/shardingsphere/pull/35137) +1. SQL Parser: Support parsing MySQL stored procedure syntax part2 - [#35205](https://github.com/apache/shardingsphere/pull/35205) ### Bug Fixes From 7e1bddcd6d6e38363d9f45fdfc11d654f47e0636 Mon Sep 17 00:00:00 2001 From: JiaqiYan Date: Mon, 21 Apr 2025 21:59:32 +0800 Subject: [PATCH 3/3] reslove conflict reslove conflict --- .../dialect/mysql/src/main/antlr4/imports/mysql/DDLStatement.g4 | 2 +- test/it/parser/src/main/resources/case/ddl/create-procedure.xml | 1 - .../src/main/resources/sql/supported/ddl/create-procedure.xml | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DDLStatement.g4 b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DDLStatement.g4 index cd29e6b2918ef..8f8e1ccfea3f2 100644 --- a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DDLStatement.g4 +++ b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DDLStatement.g4 @@ -682,7 +682,7 @@ validStatement | insert | replace | update | delete | select | call | createView | prepare | executeStmt | commit | deallocate | setVariable | beginStatement | declareStatement | flowControlStatement | cursorStatement | conditionHandlingStatement - | setStatement | showStatement | startTransaction | rollback | commit) SEMI_? + | setStatement | showStatement | startTransaction | rollback | commit | show) SEMI_? ; showStatement diff --git a/test/it/parser/src/main/resources/case/ddl/create-procedure.xml b/test/it/parser/src/main/resources/case/ddl/create-procedure.xml index 8d46a725beaac..8d3d85205870a 100644 --- a/test/it/parser/src/main/resources/case/ddl/create-procedure.xml +++ b/test/it/parser/src/main/resources/case/ddl/create-procedure.xml @@ -126,5 +126,4 @@ - diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/create-procedure.xml b/test/it/parser/src/main/resources/sql/supported/ddl/create-procedure.xml index 238d5b76ff559..7b83de6cd320d 100644 --- a/test/it/parser/src/main/resources/sql/supported/ddl/create-procedure.xml +++ b/test/it/parser/src/main/resources/sql/supported/ddl/create-procedure.xml @@ -49,7 +49,6 @@ -