fix header order
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 7056f05..f83eb2a 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
@@ -1231,7 +1231,8 @@
// concat path and construct path pattern tree
PathPatternTree patternTree = new PathPatternTree();
- for (PartialPath path : fetchWindowBatchStatement.getQueryPaths()) {
+ List<PartialPath> queryPaths = fetchWindowBatchStatement.getQueryPaths();
+ for (PartialPath path : queryPaths) {
patternTree.appendFullPath(path);
}
@@ -1244,9 +1245,16 @@
// set source
List<MeasurementPath> measurementPaths = schemaTree.getAllMeasurement();
+ Map<String, MeasurementPath> pathNameToMeasurementPath = new HashMap<>();
+ for (MeasurementPath measurementPath : measurementPaths) {
+ pathNameToMeasurementPath.put(measurementPath.toString(), measurementPath);
+ }
+
Set<Expression> sourceExpressions =
- measurementPaths.stream()
- .map(TimeSeriesOperand::new)
+ queryPaths.stream()
+ .map(
+ partialPath ->
+ new TimeSeriesOperand(pathNameToMeasurementPath.get(partialPath.toString())))
.collect(Collectors.toCollection(LinkedHashSet::new));
for (Expression sourceExpression : sourceExpressions) {
analyzeExpression(analysis, sourceExpression);
@@ -1281,10 +1289,10 @@
} else {
// set output
List<ColumnHeader> columnHeaders =
- measurementPaths.stream()
+ sourceExpressions.stream()
.map(
- measurementPath ->
- new ColumnHeader(measurementPath.toString(), measurementPath.getSeriesType()))
+ expression ->
+ new ColumnHeader(expression.toString(), analysis.getType(expression)))
.collect(Collectors.toList());
analysis.setRespDatasetHeader(new DatasetHeader(columnHeaders, false));
}