[jira] [Updated] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails
[ https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vineet Garg updated HIVE-16689: --- Fix Version/s: 3.0.0 > Correlated scalar subquery with comparison to constant in predicate fails > - > > Key: HIVE-16689 > URL: https://issues.apache.org/jira/browse/HIVE-16689 > Project: Hive > Issue Type: Bug >Reporter: Vineet Garg >Assignee: Vineet Garg >Priority: Major > Fix For: 3.0.0 > > Attachments: HIVE-16689.1.patch, HIVE-16689.2.patch > > > *Reproducer* > {code:sql} > CREATE TABLE `item`( > `i_item_sk` int, > `i_item_id` char(16), > `i_rec_start_date` date, > `i_rec_end_date` date, > `i_item_desc` varchar(200), > `i_current_price` decimal(7,2), > `i_wholesale_cost` decimal(7,2), > `i_brand_id` int, > `i_brand` char(50), > `i_class_id` int, > `i_class` char(50), > `i_category_id` int, > `i_category` char(50), > `i_manufact_id` int, > `i_manufact` char(50), > `i_size` char(20), > `i_formulation` char(20), > `i_color` char(20), > `i_units` char(10), > `i_container` char(10), > `i_manager_id` int, > `i_product_name` char(50)); > select count(*) > from item i1 > where >(select count(*) >from item >where (i_manufact = i1.i_manufact)) > 0; > {code} > *Error stack* > {code} > org.apache.calcite.util.mapping.Mappings$NoElementException: source #0 has no > target in mapping [size=0, sourceCount=1, targetCount=1, elements=[]] > at > org.apache.calcite.util.mapping.Mappings$AbstractMapping.getTarget(Mappings.java:874) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer$2.handle(RelFieldTrimmer.java:304) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:59) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:50) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:81) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitList(RexShuttle.java:148) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:97) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:36) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexCall.accept(RexCall.java:104) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.apply(RexShuttle.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.core.Filter.accept(Filter.java:103) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:44) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveFilter.accept(HiveFilter.java:116) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveProject.accept(HiveProject.java:198) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.AbstractRelNode.accept(AbstractRelNode.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at
[jira] [Updated] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails
[ https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vineet Garg updated HIVE-16689: --- Resolution: Fixed Status: Resolved (was: Patch Available) > Correlated scalar subquery with comparison to constant in predicate fails > - > > Key: HIVE-16689 > URL: https://issues.apache.org/jira/browse/HIVE-16689 > Project: Hive > Issue Type: Bug >Reporter: Vineet Garg >Assignee: Vineet Garg > Attachments: HIVE-16689.1.patch, HIVE-16689.2.patch > > > *Reproducer* > {code:sql} > CREATE TABLE `item`( > `i_item_sk` int, > `i_item_id` char(16), > `i_rec_start_date` date, > `i_rec_end_date` date, > `i_item_desc` varchar(200), > `i_current_price` decimal(7,2), > `i_wholesale_cost` decimal(7,2), > `i_brand_id` int, > `i_brand` char(50), > `i_class_id` int, > `i_class` char(50), > `i_category_id` int, > `i_category` char(50), > `i_manufact_id` int, > `i_manufact` char(50), > `i_size` char(20), > `i_formulation` char(20), > `i_color` char(20), > `i_units` char(10), > `i_container` char(10), > `i_manager_id` int, > `i_product_name` char(50)); > select count(*) > from item i1 > where >(select count(*) >from item >where (i_manufact = i1.i_manufact)) > 0; > {code} > *Error stack* > {code} > org.apache.calcite.util.mapping.Mappings$NoElementException: source #0 has no > target in mapping [size=0, sourceCount=1, targetCount=1, elements=[]] > at > org.apache.calcite.util.mapping.Mappings$AbstractMapping.getTarget(Mappings.java:874) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer$2.handle(RelFieldTrimmer.java:304) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:59) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:50) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:81) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitList(RexShuttle.java:148) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:97) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:36) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexCall.accept(RexCall.java:104) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.apply(RexShuttle.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.core.Filter.accept(Filter.java:103) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:44) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveFilter.accept(HiveFilter.java:116) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveProject.accept(HiveProject.java:198) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.AbstractRelNode.accept(AbstractRelNode.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at
[jira] [Updated] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails
[ https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vineet Garg updated HIVE-16689: --- Attachment: HIVE-16689.2.patch > Correlated scalar subquery with comparison to constant in predicate fails > - > > Key: HIVE-16689 > URL: https://issues.apache.org/jira/browse/HIVE-16689 > Project: Hive > Issue Type: Bug >Reporter: Vineet Garg >Assignee: Vineet Garg > Attachments: HIVE-16689.1.patch, HIVE-16689.2.patch > > > *Reproducer* > {code:sql} > CREATE TABLE `item`( > `i_item_sk` int, > `i_item_id` char(16), > `i_rec_start_date` date, > `i_rec_end_date` date, > `i_item_desc` varchar(200), > `i_current_price` decimal(7,2), > `i_wholesale_cost` decimal(7,2), > `i_brand_id` int, > `i_brand` char(50), > `i_class_id` int, > `i_class` char(50), > `i_category_id` int, > `i_category` char(50), > `i_manufact_id` int, > `i_manufact` char(50), > `i_size` char(20), > `i_formulation` char(20), > `i_color` char(20), > `i_units` char(10), > `i_container` char(10), > `i_manager_id` int, > `i_product_name` char(50)); > select count(*) > from item i1 > where >(select count(*) >from item >where (i_manufact = i1.i_manufact)) > 0; > {code} > *Error stack* > {code} > org.apache.calcite.util.mapping.Mappings$NoElementException: source #0 has no > target in mapping [size=0, sourceCount=1, targetCount=1, elements=[]] > at > org.apache.calcite.util.mapping.Mappings$AbstractMapping.getTarget(Mappings.java:874) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer$2.handle(RelFieldTrimmer.java:304) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:59) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:50) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:81) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitList(RexShuttle.java:148) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:97) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:36) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexCall.accept(RexCall.java:104) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.apply(RexShuttle.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.core.Filter.accept(Filter.java:103) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:44) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveFilter.accept(HiveFilter.java:116) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveProject.accept(HiveProject.java:198) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.AbstractRelNode.accept(AbstractRelNode.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) >
[jira] [Updated] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails
[ https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vineet Garg updated HIVE-16689: --- Status: Patch Available (was: Open) > Correlated scalar subquery with comparison to constant in predicate fails > - > > Key: HIVE-16689 > URL: https://issues.apache.org/jira/browse/HIVE-16689 > Project: Hive > Issue Type: Bug >Reporter: Vineet Garg >Assignee: Vineet Garg > Attachments: HIVE-16689.1.patch, HIVE-16689.2.patch > > > *Reproducer* > {code:sql} > CREATE TABLE `item`( > `i_item_sk` int, > `i_item_id` char(16), > `i_rec_start_date` date, > `i_rec_end_date` date, > `i_item_desc` varchar(200), > `i_current_price` decimal(7,2), > `i_wholesale_cost` decimal(7,2), > `i_brand_id` int, > `i_brand` char(50), > `i_class_id` int, > `i_class` char(50), > `i_category_id` int, > `i_category` char(50), > `i_manufact_id` int, > `i_manufact` char(50), > `i_size` char(20), > `i_formulation` char(20), > `i_color` char(20), > `i_units` char(10), > `i_container` char(10), > `i_manager_id` int, > `i_product_name` char(50)); > select count(*) > from item i1 > where >(select count(*) >from item >where (i_manufact = i1.i_manufact)) > 0; > {code} > *Error stack* > {code} > org.apache.calcite.util.mapping.Mappings$NoElementException: source #0 has no > target in mapping [size=0, sourceCount=1, targetCount=1, elements=[]] > at > org.apache.calcite.util.mapping.Mappings$AbstractMapping.getTarget(Mappings.java:874) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer$2.handle(RelFieldTrimmer.java:304) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:59) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:50) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:81) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitList(RexShuttle.java:148) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:97) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:36) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexCall.accept(RexCall.java:104) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.apply(RexShuttle.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.core.Filter.accept(Filter.java:103) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:44) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveFilter.accept(HiveFilter.java:116) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveProject.accept(HiveProject.java:198) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.AbstractRelNode.accept(AbstractRelNode.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) >
[jira] [Updated] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails
[ https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vineet Garg updated HIVE-16689: --- Status: Open (was: Patch Available) > Correlated scalar subquery with comparison to constant in predicate fails > - > > Key: HIVE-16689 > URL: https://issues.apache.org/jira/browse/HIVE-16689 > Project: Hive > Issue Type: Bug >Reporter: Vineet Garg >Assignee: Vineet Garg > Attachments: HIVE-16689.1.patch, HIVE-16689.2.patch > > > *Reproducer* > {code:sql} > CREATE TABLE `item`( > `i_item_sk` int, > `i_item_id` char(16), > `i_rec_start_date` date, > `i_rec_end_date` date, > `i_item_desc` varchar(200), > `i_current_price` decimal(7,2), > `i_wholesale_cost` decimal(7,2), > `i_brand_id` int, > `i_brand` char(50), > `i_class_id` int, > `i_class` char(50), > `i_category_id` int, > `i_category` char(50), > `i_manufact_id` int, > `i_manufact` char(50), > `i_size` char(20), > `i_formulation` char(20), > `i_color` char(20), > `i_units` char(10), > `i_container` char(10), > `i_manager_id` int, > `i_product_name` char(50)); > select count(*) > from item i1 > where >(select count(*) >from item >where (i_manufact = i1.i_manufact)) > 0; > {code} > *Error stack* > {code} > org.apache.calcite.util.mapping.Mappings$NoElementException: source #0 has no > target in mapping [size=0, sourceCount=1, targetCount=1, elements=[]] > at > org.apache.calcite.util.mapping.Mappings$AbstractMapping.getTarget(Mappings.java:874) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer$2.handle(RelFieldTrimmer.java:304) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:59) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:50) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:81) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitList(RexShuttle.java:148) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:97) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:36) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexCall.accept(RexCall.java:104) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.apply(RexShuttle.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.core.Filter.accept(Filter.java:103) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:44) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveFilter.accept(HiveFilter.java:116) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveProject.accept(HiveProject.java:198) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.AbstractRelNode.accept(AbstractRelNode.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) >
[jira] [Updated] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails
[ https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vineet Garg updated HIVE-16689: --- Status: Patch Available (was: Open) > Correlated scalar subquery with comparison to constant in predicate fails > - > > Key: HIVE-16689 > URL: https://issues.apache.org/jira/browse/HIVE-16689 > Project: Hive > Issue Type: Bug >Reporter: Vineet Garg >Assignee: Vineet Garg > Attachments: HIVE-16689.1.patch > > > *Reproducer* > {code:sql} > CREATE TABLE `item`( > `i_item_sk` int, > `i_item_id` char(16), > `i_rec_start_date` date, > `i_rec_end_date` date, > `i_item_desc` varchar(200), > `i_current_price` decimal(7,2), > `i_wholesale_cost` decimal(7,2), > `i_brand_id` int, > `i_brand` char(50), > `i_class_id` int, > `i_class` char(50), > `i_category_id` int, > `i_category` char(50), > `i_manufact_id` int, > `i_manufact` char(50), > `i_size` char(20), > `i_formulation` char(20), > `i_color` char(20), > `i_units` char(10), > `i_container` char(10), > `i_manager_id` int, > `i_product_name` char(50)); > select count(*) > from item i1 > where >(select count(*) >from item >where (i_manufact = i1.i_manufact)) > 0; > {code} > *Error stack* > {code} > org.apache.calcite.util.mapping.Mappings$NoElementException: source #0 has no > target in mapping [size=0, sourceCount=1, targetCount=1, elements=[]] > at > org.apache.calcite.util.mapping.Mappings$AbstractMapping.getTarget(Mappings.java:874) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer$2.handle(RelFieldTrimmer.java:304) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:59) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:50) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:81) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitList(RexShuttle.java:148) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:97) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:36) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexCall.accept(RexCall.java:104) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.apply(RexShuttle.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.core.Filter.accept(Filter.java:103) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:44) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveFilter.accept(HiveFilter.java:116) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveProject.accept(HiveProject.java:198) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.AbstractRelNode.accept(AbstractRelNode.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0]
[jira] [Updated] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails
[ https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vineet Garg updated HIVE-16689: --- Attachment: HIVE-16689.1.patch > Correlated scalar subquery with comparison to constant in predicate fails > - > > Key: HIVE-16689 > URL: https://issues.apache.org/jira/browse/HIVE-16689 > Project: Hive > Issue Type: Bug >Reporter: Vineet Garg >Assignee: Vineet Garg > Attachments: HIVE-16689.1.patch > > > *Reproducer* > {code:sql} > CREATE TABLE `item`( > `i_item_sk` int, > `i_item_id` char(16), > `i_rec_start_date` date, > `i_rec_end_date` date, > `i_item_desc` varchar(200), > `i_current_price` decimal(7,2), > `i_wholesale_cost` decimal(7,2), > `i_brand_id` int, > `i_brand` char(50), > `i_class_id` int, > `i_class` char(50), > `i_category_id` int, > `i_category` char(50), > `i_manufact_id` int, > `i_manufact` char(50), > `i_size` char(20), > `i_formulation` char(20), > `i_color` char(20), > `i_units` char(10), > `i_container` char(10), > `i_manager_id` int, > `i_product_name` char(50)); > select count(*) > from item i1 > where >(select count(*) >from item >where (i_manufact = i1.i_manufact)) > 0; > {code} > *Error stack* > {code} > org.apache.calcite.util.mapping.Mappings$NoElementException: source #0 has no > target in mapping [size=0, sourceCount=1, targetCount=1, elements=[]] > at > org.apache.calcite.util.mapping.Mappings$AbstractMapping.getTarget(Mappings.java:874) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer$2.handle(RelFieldTrimmer.java:304) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:59) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder$MyRexVisitor.visitFieldAccess(CorrelationReferenceFinder.java:50) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:81) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitList(RexShuttle.java:148) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:97) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.visitCall(RexShuttle.java:36) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexCall.accept(RexCall.java:104) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rex.RexShuttle.apply(RexShuttle.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.core.Filter.accept(Filter.java:103) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:44) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveFilter.accept(HiveFilter.java:116) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveProject.accept(HiveProject.java:198) > ~[hive-exec-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.sql2rel.CorrelationReferenceFinder.visit(CorrelationReferenceFinder.java:43) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.AbstractRelNode.accept(AbstractRelNode.java:279) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:55) > ~[calcite-core-1.12.0.jar:1.12.0] > at > org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:69) > ~[calcite-core-1.12.0.jar:1.12.0] > at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:131) > ~[calcite-core-1.12.0.jar:1.12.0] >