You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2021/05/19 13:15:57 UTC

[iotdb] branch iotdb-1022-v2 updated (996e3da -> e6216ad)

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

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


 discard 996e3da  fix IoTDBAsIT
     new 1b8e220  fix aggregation with alias tests
     new e6216ad  fix last query with alias tests & remove ts alias

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (996e3da)
            \
             N -- N -- N   refs/heads/iotdb-1022-v2 (e6216ad)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../main/java/org/apache/iotdb/db/metadata/MManager.java   |  3 ---
 .../java/org/apache/iotdb/db/metadata/PartialPath.java     | 14 --------------
 .../apache/iotdb/db/qp/physical/crud/AggregationPlan.java  |  5 +++++
 .../apache/iotdb/db/qp/physical/crud/LastQueryPlan.java    | 14 ++++++++------
 .../org/apache/iotdb/db/qp/physical/crud/QueryPlan.java    |  5 +++++
 .../apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java |  2 +-
 .../org/apache/iotdb/db/qp/physical/crud/UDTFPlan.java     |  2 +-
 .../org/apache/iotdb/db/qp/utils/WildcardsRemover.java     | 14 --------------
 .../iotdb/db/query/expression/unary/TimeSeriesOperand.java | 10 ++--------
 9 files changed, 22 insertions(+), 47 deletions(-)

[iotdb] 02/02: fix last query with alias tests & remove ts alias

Posted by ro...@apache.org.
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 <st...@outlook.com>
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();
   }
 }

[iotdb] 01/02: fix aggregation with alias tests

Posted by ro...@apache.org.
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 1b8e22055e8995b80c91fd4f3edd90c3359f8e09
Author: SteveYurongSu <st...@outlook.com>
AuthorDate: Wed May 19 20:08:38 2021 +0800

    fix aggregation with alias tests
---
 .../java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java  | 6 +-----
 .../java/org/apache/iotdb/db/qp/physical/crud/LastQueryPlan.java    | 4 +---
 server/src/test/java/org/apache/iotdb/db/integration/IoTDBAsIT.java | 3 +--
 3 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java
index 8a26610..ee98f49 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java
@@ -113,11 +113,7 @@ public class AggregationPlan extends RawDataQueryPlan {
 
   @Override
   public String getColumnForReaderFromPath(PartialPath path, int pathIndex) {
-    String columnForReader = super.getColumnForReaderFromPath(path, pathIndex);
-    if (!path.isTsAliasExists()) {
-      columnForReader = this.getAggregations().get(pathIndex) + "(" + columnForReader + ")";
-    }
-    return columnForReader;
+    return resultColumns.get(pathIndex).getResultColumnName();
   }
 
   @Override
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 553feeb..dc09cec 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
@@ -71,9 +71,7 @@ public class LastQueryPlan extends RawDataQueryPlan {
   private boolean isValidExpression(IExpression expression) {
     if (expression instanceof GlobalTimeExpression) {
       Filter filter = ((GlobalTimeExpression) expression).getFilter();
-      if (filter instanceof TimeGtEq || filter instanceof TimeGt) {
-        return true;
-      }
+      return filter instanceof TimeGtEq || filter instanceof TimeGt;
     }
     return false;
   }
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAsIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAsIT.java
index 7aa0346..2ab39c9 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAsIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAsIT.java
@@ -579,8 +579,7 @@ public class IoTDBAsIT {
           for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
             builder.append(resultSet.getString(i)).append(",");
           }
-          System.out.println(builder.toString());
-          //          assertEquals(retArray[cnt], builder.toString());
+          assertEquals(retArray[cnt], builder.toString());
           cnt++;
         }
         assertEquals(retArray.length, cnt);