[ https://issues.apache.org/jira/browse/CALCITE-2107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16324573#comment-16324573 ]
Julian Hyde commented on CALCITE-2107: -------------------------------------- First of all, can you improve the comments. I don't know what "granularity" means and reading the comments contained circular definitions. Next, please explain why time zone belongs in the granularity object when it doesn't occur in the granularity string. > Timezone not passed as part of granularity when passing > TimeExtractionFunction to Druid > --------------------------------------------------------------------------------------- > > Key: CALCITE-2107 > URL: https://issues.apache.org/jira/browse/CALCITE-2107 > Project: Calcite > Issue Type: Bug > Components: druid > Reporter: Nishant Bangarwa > Assignee: Nishant Bangarwa > > When sending granularity to TimeFormatExtractionFunction we need to add > timezone to the granularity to align it with the timezone specified in > calcite connection. If no timezone is specified in granularity, It is > considered as UTC timezone by druid. > Note the return value in is as per granularity UTC and not IST as expected - > {code} > @Test > public void testTmeWithFilterOnFloorOnTimeWithTimezoneConversion() { > final String sql = "Select cast(floor(\"timestamp\" to MONTH) as > timestamp) as t from " > + "\"foodmart\" where floor(\"timestamp\" to MONTH) >= '1997-04-30 > 18:30:00 UTC' order by t" > + " limit 1"; > final String druidQueryPart1 = > "filter\":{\"type\":\"bound\",\"dimension\":\"__time\"," > + "\"lower\":\"1997-05-01T00:00:00.000Z\",\"lowerStrict\":false," > + > "\"ordering\":\"lexicographic\",\"extractionFn\":{\"type\":\"timeFormat\"," > + "\"format\":\"yyyy-MM-dd"; > final String druidQueryPart2 = > "\"granularity\":\"month\",\"timeZone\":\"IST\"," > + > "\"locale\":\"en-US\"}},\"dimensions\":[],\"metrics\":[],\"granularity\":\"all\""; > CalciteAssert.that() > .enable(enabled()) > .with(ImmutableMap.of("model", FOODMART.getPath())) > .with(CalciteConnectionProperty.TIME_ZONE.camelName(), "IST") > .query(sql) > .runs() > .queryContains(druidChecker(druidQueryPart1, druidQueryPart2)) > .returnsOrdered("T=1997-05-01 05:30:00"); > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)