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

Zhen Chen resolved CALCITE-7389.
--------------------------------
    Fix Version/s: 1.42.0
         Assignee: Zhen Chen
       Resolution: Fixed

Fixed in 
[{{84e35ba}}|https://github.com/apache/calcite/commit/84e35bafd42784138a2c63cf0c70e1f9744d34d7]
 

Thanks for review [~dongsl] [~mbudiu] [~nobigo] 

> PruneJoinSingleValue rule causes type mismatch in EXISTS 
> ---------------------------------------------------------
>
>                 Key: CALCITE-7389
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7389
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Zhen Chen
>            Assignee: Zhen Chen
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.42.0
>
>
> Using CoreQuidemTest2 to test the following SQL will result in an error.
>  
> {code:java}
> !use scott
> select count(*) as c from "scott".dept where exists (select 1);
> +---+
> | C |
> +---+
> | 4 |
> +---+
> (1 row)
> !ok {code}
> Error message:
>  
> > Caused by: java.lang.RuntimeException: Error occurred while applying rule 
> > PruneJoinSingleValue(right)
> >     at 
> > org.apache.calcite.plan.volcano.VolcanoRuleCall.transformTo(VolcanoRuleCall.java:157)
> >     at 
> > org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:273)
> >     at 
> > org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:288)
> >     at 
> > org.apache.calcite.rel.rules.SingleValuesOptimizationRules$PruneSingleValueRule.onMatch(SingleValuesOptimizationRules.java:275)
> >     at 
> > org.apache.calcite.rel.rules.SingleValuesOptimizationRules$JoinRightSingleRuleConfig$1.onMatch(SingleValuesOptimizationRules.java:318)
> >     at 
> > org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:223)
> >     ... 24 more
> > Caused by: java.lang.IllegalArgumentException: Type mismatch: the field 
> > sizes are not equal.
> > rel rowtype: RecordType(TINYINT NOT NULL DEPTNO, INTEGER NOT NULL $f1) NOT 
> > NULL
> > equiv rowtype: RecordType(TINYINT NOT NULL DEPTNO) NOT NULL
> >     at 
> > org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:594)
> >     at 
> > org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:615)
> >     at 
> > org.apache.calcite.plan.volcano.VolcanoRuleCall.transformTo(VolcanoRuleCall.java:144)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to