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() {