[
https://issues.apache.org/jira/browse/CALCITE-2782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16743100#comment-16743100
]
Justin Szeluga commented on CALCITE-2782:
-----------------------------------------
I create my own uber jar but it's possible to just add the maven artifacts. I
add it as a new generic JDBC driver, set the schema and coordinator url and use
it as I normally would any other JDBC driver. I have never had to manually set
a timezone in the driver properties of any driver before. Should that be a
requirement? Also, DBeaver doesn't render TIMESTAMP WITH LOCAL TIME ZONE with a
pattern (it only shows the millis), so I have to cast it each time I want to
read what the date is (Cast also doesn't work but I think I fixed that in my
local repo but one thing at a time).
If you want me to set the timezone in the CalciteConnectionConfig where in the
code flow should that happen? or should it just be set from the JDBC driver
settings outside of the code?
> 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)