slim bouguerra created CALCITE-2226: ---------------------------------------
Summary: Substring operator converter doesn't handle non-constant literals 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 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)