You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Jesus Camacho Rodriguez (JIRA)" <ji...@apache.org> on 2018/04/03 01:58:00 UTC

[jira] [Resolved] (CALCITE-2226) Druid adapter: Substring operator converter does not handle non-constant literals correctly

     [ https://issues.apache.org/jira/browse/CALCITE-2226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jesus Camacho Rodriguez resolved CALCITE-2226.
----------------------------------------------
    Resolution: Fixed

Fixed in http://git-wip-us.apache.org/repos/asf/calcite/commit/6b35306e .

> Druid adapter: Substring operator converter does not handle non-constant literals correctly
> -------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-2226
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2226
>             Project: Calcite
>          Issue Type: Bug
>          Components: druid
>    Affects Versions: 1.16.0
>            Reporter: slim bouguerra
>            Assignee: slim bouguerra
>            Priority: Major
>             Fix For: 1.17.0
>
>
> Query like the following 
> {code}
> SELECT substring(namespace, CAST(deleted AS INT), 4)
> FROM druid_table;
> {code}
> will fail with 
> {code}
> java.lang.AssertionError: not a literal: $13
> 	at org.apache.calcite.rex.RexLiteral.findValue(RexLiteral.java:963)
> 	at org.apache.calcite.rex.RexLiteral.findValue(RexLiteral.java:955)
> 	at org.apache.calcite.rex.RexLiteral.intValue(RexLiteral.java:938)
> 	at org.apache.calcite.adapter.druid.SubstringOperatorConversion.toDruidExpression(SubstringOperatorConversion.java:46)
> 	at org.apache.calcite.adapter.druid.DruidExpressions.toDruidExpression(DruidExpressions.java:120)
> 	at org.apache.calcite.adapter.druid.DruidQuery.computeProjectAsScan(DruidQuery.java:746)
> 	at org.apache.calcite.adapter.druid.DruidRules$DruidProjectRule.onMatch(DruidRules.java:308)
> 	at org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:317)
> {code}
> Druid Substring converter is assuming that index is always a constant literal, which is wrong.  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)