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)

Reply via email to