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

haonan pushed a commit to branch issue2598
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 0faef09d3482cb6ec82898c26e6325838cbefee6
Author: Xiangwei Wei <[email protected]>
AuthorDate: Fri Feb 19 22:57:43 2021 +0800

    cherry pick [ISSUE-2598] Throw explicit exception when time series is 
unknown in where clause (#2599)
---
 .../apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java | 4 ++++
 .../java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java   | 7 +++----
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
index eee1974..3b84a5f 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
@@ -255,6 +255,10 @@ public class ConcatPathOptimizer implements 
ILogicalOptimizer {
     try {
       for (PartialPath path : paths) {
         List<PartialPath> all = removeWildcard(path, 0, 0).left;
+        if (all.size() == 0) {
+          throw new LogicalOptimizeException(
+              String.format("Unknown time series %s in `where clause`", path));
+        }
         for (PartialPath subPath : all) {
           if (!pathSet.contains(subPath)) {
             pathSet.add(subPath);
diff --git 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java
index 82d0442..9cac952 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java
@@ -420,9 +420,8 @@ public class IoTDBMultiSeriesIT {
       statement.execute("select s0 from root.vehicle.d0 where s10 < 111");
       fail("not throw exception when unknown time series in where clause");
     } catch (SQLException e) {
-      assertEquals(
-          "411: Meet error in query process: Filter has some time series don't 
correspond to any known time series",
-          e.getMessage());
+      assertTrue(
+          e.getMessage().contains("Unknown time series root.vehicle.d0.s10 in 
`where clause`"));
     }
   }
 
@@ -476,4 +475,4 @@ public class IoTDBMultiSeriesIT {
       
Assert.assertTrue(TSEncoding.GORILLA.name().equalsIgnoreCase(gradeRs.getString(5)));
     }
   }
-}
+}

Reply via email to