This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new f24d55fc947 [fix](syntax) multi statements must delim with semicolon
(#38670) (#38753)
f24d55fc947 is described below
commit f24d55fc9470f86ae6ca875b5c4488b5233a6f45
Author: morrySnow <[email protected]>
AuthorDate: Fri Aug 2 14:49:51 2024 +0800
[fix](syntax) multi statements must delim with semicolon (#38670) (#38753)
pick from master #38670
---
.../src/main/antlr4/org/apache/doris/nereids/DorisParser.g4 | 2 +-
.../java/org/apache/doris/nereids/parser/NereidsParserTest.java | 9 ++++++++-
regression-test/suites/insert_p0/insert.groovy | 2 +-
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
index 35db2510c11..7b56e1479c4 100644
--- a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
+++ b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
@@ -26,7 +26,7 @@ options { tokenVocab = DorisLexer; }
}
multiStatements
- : (statement SEMICOLON*)+ EOF
+ : statement (SEMICOLON+ statement)* SEMICOLON* EOF
;
singleStatement
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/parser/NereidsParserTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/parser/NereidsParserTest.java
index 5773a9f29b5..2bbcbc4290d 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/parser/NereidsParserTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/parser/NereidsParserTest.java
@@ -54,11 +54,18 @@ public class NereidsParserTest extends ParserTestBase {
@Test
public void testParseMultiple() {
NereidsParser nereidsParser = new NereidsParser();
- String sql = "SELECT b FROM test;SELECT a FROM test;";
+ String sql = "SELECT b FROM test;;;;SELECT a FROM test;";
List<Pair<LogicalPlan, StatementContext>> logicalPlanList =
nereidsParser.parseMultiple(sql);
Assertions.assertEquals(2, logicalPlanList.size());
}
+ @Test
+ public void testParseMultipleError() {
+ NereidsParser nereidsParser = new NereidsParser();
+ String sql = "SELECT b FROM test SELECT a FROM test;";
+ Assertions.assertThrowsExactly(ParseException.class, () ->
nereidsParser.parseMultiple(sql));
+ }
+
@Test
public void testSingle() {
NereidsParser nereidsParser = new NereidsParser();
diff --git a/regression-test/suites/insert_p0/insert.groovy
b/regression-test/suites/insert_p0/insert.groovy
index 4d1eae21962..bcab9956c1d 100644
--- a/regression-test/suites/insert_p0/insert.groovy
+++ b/regression-test/suites/insert_p0/insert.groovy
@@ -102,7 +102,7 @@ suite("insert") {
partition p2 values[('50'), ('100'))
)
distributed by hash(id) buckets 100
- properties('replication_num'='1')
+ properties('replication_num'='1');
insert into table_test_insert1 values(1), (50);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]