You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2023/04/09 14:22:04 UTC

[iotdb] 02/02: add UTs

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

hui pushed a commit to branch lmh/FixAliasBug
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit df658b9a9bd76209bacb774f83d4ad52f4842ea7
Author: liuminghui233 <54...@qq.com>
AuthorDate: Sun Apr 9 22:14:05 2023 +0800

    add UTs
---
 .../iotdb/db/mpp/plan/analyze/AnalyzeTest.java     | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeTest.java
index 3fbf8f44c1..ac16f04ec3 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeTest.java
@@ -758,6 +758,42 @@ public class AnalyzeTest {
     }
   }
 
+  @Test
+  public void testAlias1() {
+    Analysis analysis = analyzeSQL("select s1 as a, s2 as b from root.sg.d2.a, root.sg.d2.b");
+    assert analysis != null;
+    Assert.assertEquals(
+        analysis.getRespDatasetHeader(),
+        new DatasetHeader(
+            Arrays.asList(
+                new ColumnHeader("root.sg.d2.a.s1", TSDataType.INT32, "a"),
+                new ColumnHeader("root.sg.d2.a.s2", TSDataType.DOUBLE, "b")),
+            false));
+  }
+
+  @Test
+  public void testAlias2() {
+    assertTestFail(
+        "select s1 as a from root.sg.*", "alias 'a' can only be matched with one time series");
+    assertTestFail(
+        "select s1 as a from root.sg.d1, root.sg.d2",
+        "alias 'a' can only be matched with one time series");
+  }
+
+  private void assertTestFail(String sql, String errMsg) {
+    try {
+      Statement statement =
+          StatementGenerator.createStatement(sql, ZonedDateTime.now().getOffset());
+      MPPQueryContext context = new MPPQueryContext(new QueryId("test_query"));
+      Analyzer analyzer =
+          new Analyzer(context, new FakePartitionFetcherImpl(), new FakeSchemaFetcherImpl());
+      analyzer.analyze(statement);
+      fail("No exception!");
+    } catch (Exception e) {
+      Assert.assertTrue(e.getMessage(), e.getMessage().contains(errMsg));
+    }
+  }
+
   private Analysis analyzeSQL(String sql) {
     try {
       Statement statement =