You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2022/11/14 12:48:57 UTC

[iotdb] 03/03: support function

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

hui pushed a commit to branch ml/windowSet
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit a12c7fb3fa00eb230fd91fa7913cd00c0811beea
Author: liuminghui233 <54...@qq.com>
AuthorDate: Mon Nov 14 20:48:30 2022 +0800

    support function
---
 client-py/SessionExample.py                        |  2 +-
 .../iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java  | 33 ++++++++++++++--------
 2 files changed, 23 insertions(+), 12 deletions(-)

diff --git a/client-py/SessionExample.py b/client-py/SessionExample.py
index e50521ad18..fa65a8d614 100644
--- a/client-py/SessionExample.py
+++ b/client-py/SessionExample.py
@@ -48,7 +48,7 @@ fetch_args = {
     "indexes": [9, 0, 5, 3]
 }
 
-print(session.fetch_window_batch(ts_path_list, None, fetch_args))
+print(session.fetch_window_batch(ts_path_list, "sin", fetch_args))
 
 # # set and delete storage groups
 # session.set_storage_group("root.sg_test_01")
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
index 76beb5b7ca..a1811979b5 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
@@ -1230,7 +1230,9 @@ public class AnalyzeVisitor extends StatementVisitor<Analysis, MPPQueryContext>
     // set source
     List<MeasurementPath> measurementPaths = schemaTree.getAllMeasurement();
     Set<Expression> sourceExpressions =
-        measurementPaths.stream().map(TimeSeriesOperand::new).collect(Collectors.toSet());
+        measurementPaths.stream()
+            .map(TimeSeriesOperand::new)
+            .collect(Collectors.toCollection(LinkedHashSet::new));
     for (Expression sourceExpression : sourceExpressions) {
       analyzeExpression(analysis, sourceExpression);
     }
@@ -1247,21 +1249,30 @@ public class AnalyzeVisitor extends StatementVisitor<Analysis, MPPQueryContext>
                           functionName,
                           new LinkedHashMap<>(),
                           Collections.singletonList(expression)))
-              .collect(Collectors.toSet());
+              .collect(Collectors.toCollection(LinkedHashSet::new));
       for (Expression sourceTransformExpression : sourceTransformExpressions) {
         analyzeExpression(analysis, sourceTransformExpression);
       }
       analysis.setSourceTransformExpressions(sourceTransformExpressions);
-    }
 
-    // set output
-    List<ColumnHeader> columnHeaders =
-        measurementPaths.stream()
-            .map(
-                measurementPath ->
-                    new ColumnHeader(measurementPath.toString(), measurementPath.getSeriesType()))
-            .collect(Collectors.toList());
-    analysis.setRespDatasetHeader(new DatasetHeader(columnHeaders, false));
+      // set output
+      List<ColumnHeader> columnHeaders =
+          sourceTransformExpressions.stream()
+              .map(
+                  expression ->
+                      new ColumnHeader(expression.toString(), analysis.getType(expression)))
+              .collect(Collectors.toList());
+      analysis.setRespDatasetHeader(new DatasetHeader(columnHeaders, false));
+    } else {
+      // set output
+      List<ColumnHeader> columnHeaders =
+          measurementPaths.stream()
+              .map(
+                  measurementPath ->
+                      new ColumnHeader(measurementPath.toString(), measurementPath.getSeriesType()))
+              .collect(Collectors.toList());
+      analysis.setRespDatasetHeader(new DatasetHeader(columnHeaders, false));
+    }
 
     Set<String> deviceSet =
         measurementPaths.stream().map(PartialPath::getDevice).collect(Collectors.toSet());