You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2020/03/02 15:01:01 UTC

[incubator-iotdb] 02/02: use NOW() operator in Group by

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

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

commit e36c27836889d8d7d27337023a7dab16cdd28173
Author: HTHou <hh...@outlook.com>
AuthorDate: Mon Mar 2 23:00:00 2020 +0800

    use NOW() operator in Group by
---
 server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4     | 1 +
 .../main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java   | 4 ++++
 2 files changed, 5 insertions(+)

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 8dc81d2..9e547e3 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
@@ -258,6 +258,7 @@ timeInterval
 
 timeValue
     : dateFormat
+    | dateExpression
     | INT
     ;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
index 272bc14..b67f048 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
@@ -688,11 +688,15 @@ public class LogicalGenerator extends SqlBaseBaseListener {
     TimeIntervalContext timeInterval = ctx.timeInterval();
     if (timeInterval.timeValue(0).INT() != null) {
       startTime = Long.parseLong(timeInterval.timeValue(0).INT().getText());
+    } else if (timeInterval.timeValue(0).dateExpression() != null) {
+      startTime = parseDateExpression(timeInterval.timeValue(0).dateExpression());
     } else {
       startTime = parseTimeFormat(timeInterval.timeValue(0).dateFormat().getText());
     }
     if (timeInterval.timeValue(1).INT() != null) {
       endTime = Long.parseLong(timeInterval.timeValue(1).INT().getText());
+    } else if (timeInterval.timeValue(1).dateExpression() != null) {
+      endTime = parseDateExpression(timeInterval.timeValue(1).dateExpression());
     } else {
       endTime = parseTimeFormat(timeInterval.timeValue(1).dateFormat().getText());
     }