[
https://issues.apache.org/jira/browse/CALCITE-2782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16743168#comment-16743168
]
Justin Szeluga edited comment on CALCITE-2782 at 1/15/19 4:26 PM:
------------------------------------------------------------------
That change works for me. It would be doing what the JavaDoc says its supposed
to do. It looks like that is what is happening anyway in the Avactica
Connection. Should I update the pull request with the change?
CalciteConnectionProperty doesn't appear to be the right class to change. The
default null is coming from CalciteConnectionConfig which extends
ConnectionConfig from Avatica Core (where the null default is coming from). The
CalciteConnectionProperty is never called
was (Author: jszeluga):
That change works for me. It would be doing what the JavaDoc says its supposed
to do. It looks like that is what is happening anyway in the Avactica
Connection. Should I update the pull request with the change?
> EXTRACT function doesn't work because of NULL returned from
> druidQuery.getConnectionConfig().timeZone()
> -------------------------------------------------------------------------------------------------------
>
> Key: CALCITE-2782
> URL: https://issues.apache.org/jira/browse/CALCITE-2782
> Project: Calcite
> Issue Type: Bug
> Components: druid
> Affects Versions: 1.18.0
> Reporter: Justin Szeluga
> Assignee: Julian Hyde
> Priority: Major
>
> The default value for BuiltInConnectionProperty.TIME_ZONE is null. If the
> timezone is not set in the properties then the null is returned and a
> NullPointerException is thrown when PeriodGranularity initializes.
> {code:java}
> Caused by: java.lang.RuntimeException: Error while applying rule
> DruidProjectRule, args
> [rel#303:LogicalProject.NONE.[](input=RelSubset#145,EXPR$0=EXTRACT(FLAG(DAY),
> $0)), rel#213:DruidQuery.BINDABLE.[](table=[adhoc,
> bach.sign_ctrl_f],intervals=[2019-01-08T00:00:00.000Z/3000-01-01T00:00:00.000Z])]
> at
> org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:236)
> at
> org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:641)
> at org.apache.calcite.tools.Programs.lambda$standard$3(Programs.java:298)
> at
> org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:358)
> at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:189)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:320)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:231)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:772)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:636)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:606)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:229)
> at
> org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:550)
> at
> org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675)
> at
> org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
> ... 14 more
> Caused by: java.lang.NullPointerException
> at java.util.Objects.requireNonNull(Unknown Source)
> at
> org.apache.calcite.adapter.druid.Granularities$PeriodGranularity.<init>(Granularities.java:93)
> at
> org.apache.calcite.adapter.druid.Granularities$PeriodGranularity.<init>(Granularities.java:85)
> at
> org.apache.calcite.adapter.druid.Granularities.createGranularity(Granularities.java:57)
> at
> org.apache.calcite.adapter.druid.DruidDateTimeUtils.extractGranularity(DruidDateTimeUtils.java:331)
> at
> org.apache.calcite.adapter.druid.DruidQuery.toDruidColumn(DruidQuery.java:273)
> at
> org.apache.calcite.adapter.druid.DruidQuery.computeProjectAsScan(DruidQuery.java:763)
> at
> org.apache.calcite.adapter.druid.DruidRules$DruidProjectRule.onMatch(DruidRules.java:298)
> at
> org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:212)
> ... 27 more
> {code}
> In tests, org.apache.calcite.test.CalciteAssert#assertQuery sets the timezone
> to UTC hiding the problem. When I issue queries from DBeaver it fails because
> of the NPE
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)