You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Nishant Bangarwa (JIRA)" <ji...@apache.org> on 2017/12/22 18:28:00 UTC
[jira] [Created] (CALCITE-2107) Timezone not passed as part of
granularity when passing TimeExtractionFunction to Druid
Nishant Bangarwa created CALCITE-2107:
-----------------------------------------
Summary: 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
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)