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))); } } -} +}
