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

Julian Hyde updated CALCITE-935:
--------------------------------
    Description: 
We need to improve ReduceExpressionRule to deal with multiple "equals to 
literal" in predicate. In ReduceExpressionRule.java, L396-397:

{code}final ImmutableMap<RexNode, RexLiteral> constants =
       predicateConstants(predicates);{code}

The query is {code}select * from src where (key='12' and key is null);{code} 
Here 'key' is a string type and it is one of the columns of 'src' table.

Then we will have predicates {noformat}[=($0, '12'), isnull($0)]{noformat}which 
is the input of the
predicateConstants, and the function will return "{$0='12'}"

  was:
In ReduceExpressionRule.java,
L396-397:
final ImmutableMap<RexNode, RexLiteral> constants =
       predicateConstants(predicates);

The query is "select * from src where (key='12' and key is
null);" Here 'key' is a string type and it is one of the columns of 'src'
table.

Then we will have predicates [=($0, '12'), isnull($0)], which is the input of 
the
predicateConstants, and the function will return "{$0='12'}"


> Improve how ReduceExpressionsRule handles duplicate constraints
> ---------------------------------------------------------------
>
>                 Key: CALCITE-935
>                 URL: https://issues.apache.org/jira/browse/CALCITE-935
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Pengcheng Xiong
>            Assignee: Julian Hyde
>             Fix For: 1.5.0
>
>         Attachments: CALCITE-935.01.patch
>
>
> We need to improve ReduceExpressionRule to deal with multiple "equals to 
> literal" in predicate. In ReduceExpressionRule.java, L396-397:
> {code}final ImmutableMap<RexNode, RexLiteral> constants =
>        predicateConstants(predicates);{code}
> The query is {code}select * from src where (key='12' and key is null);{code} 
> Here 'key' is a string type and it is one of the columns of 'src' table.
> Then we will have predicates {noformat}[=($0, '12'), 
> isnull($0)]{noformat}which is the input of the
> predicateConstants, and the function will return "{$0='12'}"



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to