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

rong pushed a commit to branch iotdb-1022-v2
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit e6216ad0751bc3f3f6b18516a253ba131a047582
Author: SteveYurongSu <[email protected]>
AuthorDate: Wed May 19 21:15:00 2021 +0800

    fix last query with alias tests & remove ts alias
---
 .../java/org/apache/iotdb/db/metadata/MManager.java    |  3 ---
 .../java/org/apache/iotdb/db/metadata/PartialPath.java | 14 --------------
 .../iotdb/db/qp/physical/crud/LastQueryPlan.java       | 18 ++++++++++--------
 .../apache/iotdb/db/qp/physical/crud/QueryPlan.java    |  8 ++------
 .../org/apache/iotdb/db/qp/utils/WildcardsRemover.java | 14 --------------
 .../db/query/expression/unary/TimeSeriesOperand.java   | 10 ++--------
 6 files changed, 14 insertions(+), 53 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java 
b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index a91d333..f7d5a44 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -1284,9 +1284,6 @@ public class MManager {
         if (partialPath.isMeasurementAliasExists()) {
           indexMap.put(partialPath.getFullPathWithAlias(), index);
         }
-        if (partialPath.isTsAliasExists()) {
-          indexMap.put(partialPath.getTsAlias(), index);
-        }
         i++;
       }
     }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/PartialPath.java 
b/server/src/main/java/org/apache/iotdb/db/metadata/PartialPath.java
index 79d075f..26ae36e 100755
--- a/server/src/main/java/org/apache/iotdb/db/metadata/PartialPath.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/PartialPath.java
@@ -43,8 +43,6 @@ public class PartialPath extends Path implements 
Comparable<Path> {
   protected String[] nodes;
   // alias of measurement, null pointer cannot be serialized in thrift so 
empty string is instead
   protected String measurementAlias = "";
-  // alias of time series used in SELECT AS
-  protected String tsAlias = "";
 
   /**
    * Construct the PartialPath using a String, will split the given String 
into String[] E.g., path
@@ -237,18 +235,6 @@ public class PartialPath extends Path implements 
Comparable<Path> {
     return measurementAlias != null && !measurementAlias.isEmpty();
   }
 
-  public String getTsAlias() {
-    return tsAlias;
-  }
-
-  public void setTsAlias(String tsAlias) {
-    this.tsAlias = tsAlias;
-  }
-
-  public boolean isTsAliasExists() {
-    return tsAlias != null && !tsAlias.isEmpty();
-  }
-
   @Override
   public String getFullPathWithAlias() {
     return getDevice() + IoTDBConstant.PATH_SEPARATOR + measurementAlias;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/LastQueryPlan.java 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/LastQueryPlan.java
index dc09cec..4064364 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/LastQueryPlan.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/LastQueryPlan.java
@@ -21,18 +21,19 @@ package org.apache.iotdb.db.qp.physical.crud;
 
 import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.metadata.PartialPath;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
+import org.apache.iotdb.db.query.expression.ResultColumn;
 import org.apache.iotdb.db.service.IoTDB;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.expression.IExpression;
 import org.apache.iotdb.tsfile.read.expression.impl.GlobalTimeExpression;
 import org.apache.iotdb.tsfile.read.filter.TimeFilter.TimeGt;
 import org.apache.iotdb.tsfile.read.filter.TimeFilter.TimeGtEq;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 
+import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 public class LastQueryPlan extends RawDataQueryPlan {
@@ -44,18 +45,19 @@ public class LastQueryPlan extends RawDataQueryPlan {
 
   @Override
   public void deduplicate(PhysicalGenerator physicalGenerator) throws 
MetadataException {
+    List<ResultColumn> deduplicatedResultColumns = new ArrayList<>();
     Set<String> columnForReaderSet = new HashSet<>();
-    for (int i = 0; i < paths.size(); i++) {
-      PartialPath path = paths.get(i);
-      String column = getColumnForReaderFromPath(path, i);
+    for (int i = 0; i < resultColumns.size(); i++) {
+      String column = resultColumns.get(i).getResultColumnName();
       if (!columnForReaderSet.contains(column)) {
-        TSDataType seriesType = dataTypes.get(i);
-        addDeduplicatedPaths(path);
-        addDeduplicatedDataTypes(seriesType);
+        addDeduplicatedPaths(paths.get(i));
+        addDeduplicatedDataTypes(dataTypes.get(i));
+        deduplicatedResultColumns.add(resultColumns.get(i));
         columnForReaderSet.add(column);
       }
     }
     transformPaths(IoTDB.metaManager);
+    setResultColumns(deduplicatedResultColumns);
   }
 
   @Override
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
index 6bd6ce4..9b074fd 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
@@ -128,12 +128,8 @@ public abstract class QueryPlan extends PhysicalPlan {
   }
 
   public String getColumnForReaderFromPath(PartialPath path, int pathIndex) {
-    String columnForReader = path.isTsAliasExists() ? path.getTsAlias() : null;
-    if (columnForReader == null) {
-      columnForReader =
-          path.isMeasurementAliasExists() ? path.getFullPathWithAlias() : 
path.toString();
-    }
-    return columnForReader;
+    ResultColumn resultColumn = resultColumns.get(pathIndex);
+    return resultColumn.hasAlias() ? resultColumn.getAlias() : 
path.getFullPath();
   }
 
   public String getColumnForDisplay(String columnForReader, int pathIndex)
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/utils/WildcardsRemover.java 
b/server/src/main/java/org/apache/iotdb/db/qp/utils/WildcardsRemover.java
index d2e6054..a4525f1 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/utils/WildcardsRemover.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/utils/WildcardsRemover.java
@@ -80,8 +80,6 @@ public class WildcardsRemover {
       Pair<List<PartialPath>, Integer> pair =
           concatPathOptimizer.removeWildcard(path, limit, offset);
 
-      checkAndSetTsAlias(path, pair.left);
-
       consumed += pair.right;
       if (offset != 0) {
         int delta = offset - pair.right;
@@ -99,18 +97,6 @@ public class WildcardsRemover {
     }
   }
 
-  private void checkAndSetTsAlias(PartialPath originPath, List<PartialPath> 
actualPaths)
-      throws LogicalOptimizeException {
-    if (originPath.isTsAliasExists()) {
-      if (actualPaths.size() == 1) {
-        actualPaths.get(0).setTsAlias(originPath.getTsAlias());
-      } else if (actualPaths.size() >= 2) {
-        throw new LogicalOptimizeException(
-            "alias '" + originPath.getTsAlias() + "' can only be matched with 
one time series");
-      }
-    }
-  }
-
   public List<List<Expression>> removeWildcardsFrom(List<Expression> 
expressions)
       throws LogicalOptimizeException {
     List<List<Expression>> extendedExpressions = new ArrayList<>();
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java
 
b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java
index fd01123..3ca58c3 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java
@@ -58,11 +58,7 @@ public class TimeSeriesOperand extends Expression {
   @Override
   public void concat(List<PartialPath> prefixPaths, List<Expression> 
resultExpressions) {
     for (PartialPath prefixPath : prefixPaths) {
-      PartialPath fullPath = prefixPath.concatPath(path);
-      if (path.isTsAliasExists()) {
-        fullPath.setTsAlias(path.getTsAlias());
-      }
-      resultExpressions.add(new TimeSeriesOperand(fullPath));
+      resultExpressions.add(new 
TimeSeriesOperand(prefixPath.concatPath(path)));
     }
   }
 
@@ -81,8 +77,6 @@ public class TimeSeriesOperand extends Expression {
 
   @Override
   public String toString() {
-    return path.isTsAliasExists()
-        ? path.getTsAlias()
-        : path.isMeasurementAliasExists() ? path.getFullPathWithAlias() : 
path.getFullPath();
+    return path.isMeasurementAliasExists() ? path.getFullPathWithAlias() : 
path.getFullPath();
   }
 }

Reply via email to