You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ge...@apache.org on 2020/02/26 09:52:10 UTC

[incubator-iotdb] 01/01: solve node name.

This is an automated email from the ASF dual-hosted git repository.

geniuspig pushed a commit to branch IOTDB-446
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit acbbd79cc73bb07ce340b7ec2df03d3de0fa54d8
Author: zhutianci <zh...@gmail.com>
AuthorDate: Wed Feb 26 17:51:51 2020 +0800

    solve node name.
---
 .../org/apache/iotdb/db/qp/strategy/SqlBase.g4     | 27 ++++------------------
 .../java/org/apache/iotdb/db/qp/PlannerTest.java   | 16 +++++++++----
 2 files changed, 17 insertions(+), 26 deletions(-)

diff --git a/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4 b/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4
index 1a8558f..a179f31 100644
--- a/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4
+++ b/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4
@@ -293,12 +293,14 @@ nodeName
     | INT
     | STAR
     | STRING_LITERAL
+    | DURATION
     ;
 
 nodeNameWithoutStar
     : INT
     | ID
     | STRING_LITERAL
+    | DURATION
     ;
 
 dataType
@@ -814,7 +816,7 @@ DATETIME
       (('+' | '-') INT ':' INT)?
     ;
 /** Allow unicode rule/token names */
-ID			:	NameStartChar NameChar*;
+ID	:	NameChar NameChar*;
 
 FILE
     :  (('a'..'z'| 'A'..'Z')(':')?)* (('\\' | '/')+ PATH_FRAGMENT) +
@@ -822,31 +824,12 @@ FILE
 
 fragment
 NameChar
-	:   NameStartChar
+	:   'A'..'Z'
+	|   'a'..'z'
 	|   '0'..'9'
 	|   '_'
-	|   '\u00B7'
-	|   '\u0300'..'\u036F'
-	|   '\u203F'..'\u2040'
 	;
 
-fragment
-NameStartChar
-	:   'A'..'Z'
-	|   'a'..'z'
-	|   '\u00C0'..'\u00D6'
-	|   '\u00D8'..'\u00F6'
-	|   '\u00F8'..'\u02FF'
-	|   '\u0370'..'\u037D'
-	|   '\u037F'..'\u1FFF'
-	|   '\u200C'..'\u200D'
-	|   '\u2070'..'\u218F'
-	|   '\u2C00'..'\u2FEF'
-	|   '\u3001'..'\uD7FF'
-	|   '\uF900'..'\uFDCF'
-	|   '\uFDF0'..'\uFFFD'
-	; // ignores | ['\u10000-'\uEFFFF] ;
-
 fragment DOUBLE_QUOTE_STRING_LITERAL
 	:	'"' ('\\' . | ~'"' )*? '"'
 	;
diff --git a/server/src/test/java/org/apache/iotdb/db/qp/PlannerTest.java b/server/src/test/java/org/apache/iotdb/db/qp/PlannerTest.java
index dd1d6c0..772c594 100644
--- a/server/src/test/java/org/apache/iotdb/db/qp/PlannerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/qp/PlannerTest.java
@@ -101,8 +101,8 @@ public class PlannerTest {
     PhysicalPlan plan1 = processor.parseSQLToPhysicalPlan(createSGStatement);
     assertEquals(OperatorType.SET_STORAGE_GROUP, plan1.getOperatorType());
 
-    String createTSStatement = "create timeseries root.vehicle.d1.s1 with datatype=INT32,encoding=RLE";
-    PhysicalPlan plan2 = processor.parseSQLToPhysicalPlan(createTSStatement);
+    String createTSStatement1 = "create timeseries root.vehicle.d1.s1 with datatype=INT32,encoding=RLE";
+    PhysicalPlan plan2 = processor.parseSQLToPhysicalPlan(createTSStatement1);
     assertEquals(OperatorType.CREATE_TIMESERIES, plan2.getOperatorType());
 
     String deleteTSStatement = "delete timeseries root.vehicle.d1.s1";
@@ -117,8 +117,8 @@ public class PlannerTest {
     PhysicalPlan plan6 = processor.parseSQLToPhysicalPlan(deleteStatement);
     assertEquals(OperatorType.DELETE, plan6.getOperatorType());
 
-    String queryStatement = "select * from root.vehicle where root.vehicle.device1.sensor1 > 50";
-    PhysicalPlan plan7 = processor.parseSQLToPhysicalPlan(queryStatement);
+    String queryStatement1 = "select * from root.vehicle where root.vehicle.device1.sensor1 > 50";
+    PhysicalPlan plan7 = processor.parseSQLToPhysicalPlan(queryStatement1);
     assertEquals(OperatorType.QUERY, plan7.getOperatorType());
 
     String aggregationStatement = "select sum(*) from root.vehicle where root.vehicle.device1.sensor1 > 50";
@@ -136,6 +136,14 @@ public class PlannerTest {
     String insertTimeStatement = "insert into root.vehicle.d0(time,s0) values(10,100)";
     PhysicalPlan plan11 = processor.parseSQLToPhysicalPlan(insertTimeStatement);
     assertEquals(OperatorType.INSERT, plan11.getOperatorType());
+
+    String createTSStatement2 = "create timeseries root.a.b.d_1.1s with datatype=FLOAT,encoding=RLE";
+    PhysicalPlan plan12 = processor.parseSQLToPhysicalPlan(createTSStatement2);
+    assertEquals(OperatorType.CREATE_TIMESERIES, plan12.getOperatorType());
+
+    String queryStatement2 = "select windDirection10min from root.national.4.5.585.9_6666.9_333.88_9";
+    PhysicalPlan plan13 = processor.parseSQLToPhysicalPlan(queryStatement2);
+    assertEquals(OperatorType.QUERY, plan13.getOperatorType());
   }
 
   @Test(expected = ParseCancellationException.class)