You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by za...@apache.org on 2019/07/26 10:42:57 UTC

[calcite] 01/02: Following [CALCITE-2804], fix incorrect expected Druid query in test case DruidAdapterIT#testCastToTimestamp (Justin Szeluga)

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

zabetak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git

commit 3ebaa591c6fa045310252944a292b85908a938f8
Author: Justin Szeluga <ju...@gmail.com>
AuthorDate: Fri Jun 14 00:41:30 2019 +0800

    Following [CALCITE-2804], fix incorrect expected Druid query in test case DruidAdapterIT#testCastToTimestamp (Justin Szeluga)
    
    Close apache/calcite#1262
    
    Co-authored-by: Justin Szeluga <ju...@gmail.com>
    Co-authored-by: Hongze Zhang <ho...@apache.org>
---
 .../org/apache/calcite/test/DruidAdapterIT.java    | 37 +++++++++++++---------
 1 file changed, 22 insertions(+), 15 deletions(-)

diff --git a/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java b/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
index 5ea1f8f..6c145d2 100644
--- a/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
+++ b/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
@@ -114,6 +114,19 @@ public class DruidAdapterIT {
     };
   }
 
+  /** Returns a consumer that checks that a particular Druid query is
+   * generated to implement a query. Expected lines should be exactly
+   * included in the actual query text, without changing quote types. */
+  private Consumer<List> druidOriginalChecker(final String... lines) {
+    return list -> {
+      assertThat(list.size(), is(1));
+      DruidQuery.QuerySpec querySpec = (DruidQuery.QuerySpec) list.get(0);
+      for (String line : lines) {
+        assertThat(querySpec.getQueryString(null, -1), containsString(line));
+      }
+    };
+  }
+
   /**
    * Creates a query against FOODMART with approximate parameters
    * */
@@ -577,23 +590,17 @@ public class DruidAdapterIT {
    */
   @Test public void testCastToTimestamp() {
     final String sql = "select cast(\"timestamp\" as timestamp) from \"foodmart\"";
-    final String druidQuery = "{'queryType':'scan','dataSource':'foodmart',"
-        + "'intervals':['1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z']',"
-        + "'virtualColumns:[{'type':'expression','name':'vc',"
-        + "'expression':'timestamp_parse("
-        + "timestamp_format(\"__time\",'yyyy-MM-dd\\u0027T\\u0027HH:mm:ss.SSS\\u0027Z\\u0027',"
-        + "'America/New_York'),'yyyy-MM-dd\\u0027T\\u0027HH:mm:ss.SSS\\u0027Z\\u0027','UTC')',"
-        + "'outputType':'LONG'}],"
-        + "'columns':['vc'],"
-        + "'resultFormat':'compactedList'}";
+    final String druidQuery = "timestamp_format(\\\"__time\\\","
+        + "'yyyy-MM-dd\\\\u0027T\\\\u0027HH:mm:ss.SSS\\\\u0027Z\\\\u0027',"
+        + "'America/New_York'),'yyyy-MM-dd\\\\u0027T\\\\u0027HH:mm:ss.SSS\\\\u0027Z\\\\u0027','UTC')\"";
 
     CalciteAssert.that()
-         .enable(enabled())
-         .withModel(FOODMART)
-         .with(CalciteConnectionProperty.TIME_ZONE.camelName(), "America/New_York")
-         .query(sql)
-         .runs()
-         .queryContains(druidChecker(druidQuery));
+        .enable(enabled())
+        .withModel(FOODMART)
+        .with(CalciteConnectionProperty.TIME_ZONE.camelName(), "America/New_York")
+        .query(sql)
+        .runs()
+        .queryContains(druidOriginalChecker(druidQuery));
   }
 
   @Test public void testDistinctLimit() {