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 <[email protected]> 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 =
