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 <[email protected]> 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());
