This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/flexSQL in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 3a63032e7e0db71b198d846f2ea6d057240dd0f9 Author: Minghui Liu <[email protected]> AuthorDate: Mon Oct 31 11:15:11 2022 +0800 [IOTDB-4527] Support sql does not contains comma --- .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 27 ++++++++++++++-------- .../iotdb/db/mpp/plan/parser/ASTVisitor.java | 13 +++++------ 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 index cd1d4da136..51cb8f178d 100644 --- a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 +++ b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 @@ -79,7 +79,7 @@ createStorageGroup ; storageGroupAttributesClause - : WITH storageGroupAttributeClause (COMMA storageGroupAttributeClause)* + : WITH storageGroupAttributeClause (COMMA? storageGroupAttributeClause)* ; storageGroupAttributeClause @@ -127,7 +127,12 @@ uri // Create Trigger createTrigger - : CREATE triggerType? TRIGGER triggerName=identifier triggerEventClause ON prefixPath AS className=STRING_LITERAL uriClasue? triggerAttributeClause? + : CREATE triggerType? TRIGGER triggerName=identifier + triggerEventClause + ON prefixPath + AS className=STRING_LITERAL + uriClasue? + triggerAttributeClause? ; triggerType @@ -746,13 +751,17 @@ loadTimeseries // Load TsFile loadFile - : LOAD fileName=STRING_LITERAL loadFilesClause? + : LOAD fileName=STRING_LITERAL loadFileAttributeClauses? ; -loadFilesClause - : SGLEVEL operator_eq INTEGER_LITERAL (loadFilesClause)? - | VERIFY operator_eq BOOLEAN_LITERAL (loadFilesClause)? - | ONSUCCESS operator_eq (DELETE|NONE) (loadFilesClause)? +loadFileAttributeClauses + : loadFileAttributeClause (COMMA? loadFileAttributeClause)* + ; + +loadFileAttributeClause + : SGLEVEL operator_eq INTEGER_LITERAL + | VERIFY operator_eq BOOLEAN_LITERAL + | ONSUCCESS operator_eq (DELETE|NONE) ; // Remove TsFile @@ -809,7 +818,7 @@ dropPipe // attribute clauses syncAttributeClauses - : attributePair (COMMA attributePair)* + : attributePair (COMMA? attributePair)* ; @@ -944,7 +953,7 @@ fromClause attributeClauses : aliasNodeName? WITH attributeKey operator_eq dataType=attributeValue - (COMMA attributePair)* + (COMMA? attributePair)* tagClause? attributeClause? // Simplified version (supported since v0.13) diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java index 0c5eaf8ad0..22566331c5 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java @@ -1638,8 +1638,10 @@ public class ASTVisitor extends IoTDBSqlParserBaseVisitor<Statement> { try { LoadTsFileStatement loadTsFileStatement = new LoadTsFileStatement(parseStringLiteral(ctx.fileName.getText())); - if (ctx.loadFilesClause() != null) { - parseLoadFiles(loadTsFileStatement, ctx.loadFilesClause()); + if (ctx.loadFileAttributeClauses() != null) { + for (IoTDBSqlParser.LoadFileAttributeClauseContext attributeContext : + ctx.loadFileAttributeClauses().loadFileAttributeClause()) + parseLoadFileAttributeClause(loadTsFileStatement, attributeContext); } return loadTsFileStatement; } catch (FileNotFoundException e) { @@ -1654,8 +1656,8 @@ public class ASTVisitor extends IoTDBSqlParserBaseVisitor<Statement> { * @param loadTsFileStatement the result statement, setting by clause context * @param ctx context of property statement */ - private void parseLoadFiles( - LoadTsFileStatement loadTsFileStatement, IoTDBSqlParser.LoadFilesClauseContext ctx) { + private void parseLoadFileAttributeClause( + LoadTsFileStatement loadTsFileStatement, IoTDBSqlParser.LoadFileAttributeClauseContext ctx) { if (ctx.ONSUCCESS() != null) { loadTsFileStatement.setDeleteAfterLoad(ctx.DELETE() != null); } else if (ctx.SGLEVEL() != null) { @@ -1668,9 +1670,6 @@ public class ASTVisitor extends IoTDBSqlParserBaseVisitor<Statement> { "load tsfile format %s error, please input AUTOREGISTER | SGLEVEL | VERIFY.", ctx.getText())); } - if (ctx.loadFilesClause() != null) { - parseLoadFiles(loadTsFileStatement, ctx.loadFilesClause()); - } } /** Common Parsers */
