[jira] [Commented] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails

2017-05-23 Thread Vineet Garg (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16021585#comment-16021585
 ] 

Vineet Garg commented on HIVE-16689:


Pushed this to master. Thanks [~ashutoshc]!
Regarding signature missing in RelFieldTrimmer - RelFieldTrimmer operates only 
on RelNode but not RexNode so I don't think this is a bug but design artifact. 
result(RelNode, Mapping) is a generalized method which takes care of correlated 
variables for a given RelNode. 

> 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 
> o

[jira] [Commented] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails

2017-05-18 Thread Ashutosh Chauhan (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16016501#comment-16016501
 ] 

Ashutosh Chauhan commented on HIVE-16689:
-

I see. That signature seems like should be present in RelFieldTrimmer. Can you 
create a bug in Calcite for it?
+1 for current fix.

> 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(

[jira] [Commented] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails

2017-05-18 Thread Vineet Garg (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16016450#comment-16016450
 ] 

Vineet Garg commented on HIVE-16689:


RelTrimmer's other trimmer calls result(RelNode, Mapping) which goes over 
correlated vars to see if any of them could be pruned. RelTrimmer doesn't have 
a specialized result(Correlate, Mapping) version so introducing one shouldn't 
help in this case if that is what you are suggesting.

> 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.RelShut

[jira] [Commented] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails

2017-05-18 Thread Ashutosh Chauhan (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16016385#comment-16016385
 ] 

Ashutosh Chauhan commented on HIVE-16689:
-

Sorry.. thats what I meant result(Correlate, Mapping).

> 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.a

[jira] [Commented] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails

2017-05-18 Thread Vineet Garg (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16016344#comment-16016344
 ] 

Vineet Garg commented on HIVE-16689:


RelTrimmer's result method is the one which tries to prune/trim correlated vars 
that's why it is overridden to not do that. Introducing trim(Correlate r, 
Mapping m) won't help.

> 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.calc

[jira] [Commented] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails

2017-05-18 Thread Ashutosh Chauhan (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16016267#comment-16016267
 ] 

Ashutosh Chauhan commented on HIVE-16689:
-

Wondering narrower fix of trim(Correleate r, Mapping m) would suffice here?

> 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.1

[jira] [Commented] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails

2017-05-17 Thread Hive QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16015192#comment-16015192
 ] 

Hive QA commented on HIVE-16689:




Here are the results of testing the latest attachment:
https://issues.apache.org/jira/secure/attachment/12868638/HIVE-16689.2.patch

{color:green}SUCCESS:{color} +1 due to 1 test(s) being added or modified.

{color:red}ERROR:{color} -1 due to 5 failed/errored test(s), 10730 tests 
executed
*Failed tests:*
{noformat}
org.apache.hadoop.hive.cli.TestMiniLlapCliDriver.testCliDriver[table_nonprintable]
 (batchId=140)
org.apache.hadoop.hive.cli.TestMiniTezCliDriver.testCliDriver[explainanalyze_3] 
(batchId=97)
org.apache.hadoop.hive.cli.TestMiniTezCliDriver.testCliDriver[explainuser_3] 
(batchId=97)
org.apache.hive.hcatalog.pig.TestTextFileHCatStorer.testWriteDecimal 
(batchId=179)
org.apache.hive.hcatalog.pig.TestTextFileHCatStorer.testWriteSmallint 
(batchId=179)
{noformat}

Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/5317/testReport
Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/5317/console
Test logs: http://104.198.109.242/logs/PreCommit-HIVE-Build-5317/

Messages:
{noformat}
Executing org.apache.hive.ptest.execution.TestCheckPhase
Executing org.apache.hive.ptest.execution.PrepPhase
Executing org.apache.hive.ptest.execution.ExecutionPhase
Executing org.apache.hive.ptest.execution.ReportingPhase
Tests exited with: TestsFailedException: 5 tests failed
{noformat}

This message is automatically generated.

ATTACHMENT ID: 12868638 - PreCommit-HIVE-Build

> 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

[jira] [Commented] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails

2017-05-16 Thread Hive QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16013568#comment-16013568
 ] 

Hive QA commented on HIVE-16689:




Here are the results of testing the latest attachment:
https://issues.apache.org/jira/secure/attachment/12868437/HIVE-16689.1.patch

{color:green}SUCCESS:{color} +1 due to 1 test(s) being added or modified.

{color:red}ERROR:{color} -1 due to 12 failed/errored test(s), 10717 tests 
executed
*Failed tests:*
{noformat}
org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver[authorization_view_1] 
(batchId=18)
org.apache.hadoop.hive.cli.TestMiniLlapCliDriver.testCliDriver[table_nonprintable]
 (batchId=140)
org.apache.hadoop.hive.cli.TestMiniLlapLocalCliDriver.testCliDriver[vector_if_expr]
 (batchId=144)
org.apache.hadoop.hive.cli.TestMiniTezCliDriver.testCliDriver[explainanalyze_3] 
(batchId=97)
org.apache.hadoop.hive.cli.TestMiniTezCliDriver.testCliDriver[explainuser_3] 
(batchId=97)
org.apache.hadoop.hive.cli.TestNegativeCliDriver.testCliDriver[authorization_view_1]
 (batchId=87)
org.apache.hadoop.hive.cli.TestNegativeCliDriver.testCliDriver[authorization_view_3]
 (batchId=87)
org.apache.hadoop.hive.cli.TestNegativeCliDriver.testCliDriver[authorization_view_4]
 (batchId=87)
org.apache.hadoop.hive.cli.TestNegativeCliDriver.testCliDriver[authorization_view_5]
 (batchId=88)
org.apache.hadoop.hive.ql.parse.TestColumnAccess.testJoinView1AndTable2 
(batchId=262)
org.apache.hadoop.hive.ql.security.authorization.plugin.TestHiveAuthorizerCheckInvocation.testInputSomeColumnsUsedJoin
 (batchId=218)
org.apache.hadoop.hive.ql.security.authorization.plugin.TestHiveAuthorizerCheckInvocation.testInputSomeColumnsUsedView
 (batchId=218)
{noformat}

Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/5298/testReport
Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/5298/console
Test logs: http://104.198.109.242/logs/PreCommit-HIVE-Build-5298/

Messages:
{noformat}
Executing org.apache.hive.ptest.execution.TestCheckPhase
Executing org.apache.hive.ptest.execution.PrepPhase
Executing org.apache.hive.ptest.execution.ExecutionPhase
Executing org.apache.hive.ptest.execution.ReportingPhase
Tests exited with: TestsFailedException: 12 tests failed
{noformat}

This message is automatically generated.

ATTACHMENT ID: 12868437 - PreCommit-HIVE-Build

> 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 

[jira] [Commented] (HIVE-16689) Correlated scalar subquery with comparison to constant in predicate fails

2017-05-16 Thread Vineet Garg (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-16689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16013332#comment-16013332
 ] 

Vineet Garg commented on HIVE-16689:


Reported by [~cartershanklin]

> 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
>
> *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