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 <justin.szel...@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 <justin.szel...@gmail.com> Co-authored-by: Hongze Zhang <hon...@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() {