-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/55553/#review162239
-----------------------------------------------------------




ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HivePlannerContext.java 
(line 30)
<https://reviews.apache.org/r/55553/#comment233552>

    Please add a comment here about purpose of this variable.



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelDecorrelator.java
 (line 234)
<https://reviews.apache.org/r/55553/#comment233553>

    Any reason for disabling this rule?



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSubQueryRemoveRule.java
 (lines 95 - 98)
<https://reviews.apache.org/r/55553/#comment233554>

    Can be simplified as isCorrScalarQuery = corrScalarQueries.contains(e.rel);



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSubQueryRemoveRule.java
 (line 143)
<https://reviews.apache.org/r/55553/#comment233572>

    Comment: Transformation Outer Query Left Join (inner query) on correlated 
predicate and preserve rows only from left side.



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSubQueryRemoveRule.java
 (line 166)
<https://reviews.apache.org/r/55553/#comment233576>

    Comment: Transformation is to left join for correlated predicates and inner 
join otherwise, but do a count on inner side before that to make sure it 
generates exactly 1 row.



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSubQueryRemoveRule.java
 (line 183)
<https://reviews.apache.org/r/55553/#comment233577>

    Can remove this line.



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java
 (line 214)
<https://reviews.apache.org/r/55553/#comment233555>

    Add subQueryDesc.getType() in error message?



ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java (line 419)
<https://reviews.apache.org/r/55553/#comment233556>

    Add a comment we dont want to retry subqueries on non-cbo path because...



ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java (line 2301)
<https://reviews.apache.org/r/55553/#comment233578>

    can remove this.



ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java (lines 2302 - 
2303)
<https://reviews.apache.org/r/55553/#comment233579>

    Instead of arrays, you may use Boolean & Integer objects, which is better 
for readability.



ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java (line 2326)
<https://reviews.apache.org/r/55553/#comment233580>

    Boolean object can be used here.



ql/src/java/org/apache/hadoop/hive/ql/parse/QBSubQuery.java (line 573)
<https://reviews.apache.org/r/55553/#comment233581>

    I guess you also want to make sure predicate is equality only, ie. 
conjunctAST.getType == HiveParser.EQUAL ?



ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFSQCountCheck.java 
(lines 65 - 67)
<https://reviews.apache.org/r/55553/#comment233584>

    assert valObject != null ?



ql/src/test/queries/clientpositive/subquery_in.q 
<https://reviews.apache.org/r/55553/#comment233585>

    Instead of removing you may add group by in subquery, unless this query 
pattern is covered elsewhere in tests.



ql/src/test/queries/clientpositive/subquery_in_having.q 
<https://reviews.apache.org/r/55553/#comment233586>

    This satisifies all conditions: correlated and no implied gby. Will this 
still wont work?



ql/src/test/queries/clientpositive/subquery_in_having.q (line 120)
<https://reviews.apache.org/r/55553/#comment233587>

    Dont we allow correlated predicates here?



ql/src/test/queries/clientpositive/subquery_notin.q 
<https://reviews.apache.org/r/55553/#comment233588>

    add gby ?


- Ashutosh Chauhan


On Jan. 19, 2017, 2:53 a.m., Vineet Garg wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/55553/
> -----------------------------------------------------------
> 
> (Updated Jan. 19, 2017, 2:53 a.m.)
> 
> 
> Review request for hive, Ashutosh Chauhan and Jesús Camacho Rodríguez.
> 
> 
> Bugs: HIVE-15544
>     https://issues.apache.org/jira/browse/HIVE-15544
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> This patch provides support for scalar subqueries in filter clause. Note that 
> this patch disables the following:
> * IN/NOT IN correlated subqueries containing aggregates (HIVE checks for such 
> queries and throw an exception)
> * SCALAR correlated subqueries containing aggregates with non-equi join 
> predicates on correlated columns (HIVE throws an exception for such queries).
> 
> 
> Diffs
> -----
> 
>   itests/src/test/resources/testconfiguration.properties be5a747 
>   ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java 6f01da0 
>   
> ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/CalciteSubquerySemanticException.java
>  PRE-CREATION 
>   
> ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HivePlannerContext.java
>  8beb0dd 
>   
> ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelDecorrelator.java
>  a373cdd 
>   
> ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSubQueryRemoveRule.java
>  f1e8ebd 
>   
> ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java
>  8d2e535 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java 9f1b9d5 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g cd9adfc 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/QBSubQuery.java 24381b9 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java f275f6a 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java 
> 6c30efd 
>   ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeSubQueryDesc.java 
> aec331b 
>   
> ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFSQCountCheck.java 
> PRE-CREATION 
>   
> ql/src/test/org/apache/hadoop/hive/ql/optimizer/calcite/TestCBORuleFiredOnlyOnce.java
>  44e157b 
>   ql/src/test/queries/clientnegative/subquery_exists_implicit_gby.q 9013df6 
>   ql/src/test/queries/clientnegative/subquery_in_implicit_gby.q PRE-CREATION 
>   ql/src/test/queries/clientnegative/subquery_notexists_implicit_gby.q 
> 852b295 
>   ql/src/test/queries/clientnegative/subquery_scalar_implicit_gby.q 
> PRE-CREATION 
>   ql/src/test/queries/clientnegative/subquery_scalar_multi_columns.q 
> PRE-CREATION 
>   ql/src/test/queries/clientnegative/subquery_scalar_multi_rows.q 
> PRE-CREATION 
>   ql/src/test/queries/clientnegative/subquery_with_or_cond.q c2c3221 
>   ql/src/test/queries/clientpositive/perf/query1.q PRE-CREATION 
>   ql/src/test/queries/clientpositive/perf/query23.q e8ebd86 
>   ql/src/test/queries/clientpositive/perf/query30.q PRE-CREATION 
>   ql/src/test/queries/clientpositive/perf/query6.q PRE-CREATION 
>   ql/src/test/queries/clientpositive/perf/query81.q PRE-CREATION 
>   ql/src/test/queries/clientpositive/subquery_exists.q cac8e1b 
>   ql/src/test/queries/clientpositive/subquery_in.q fe0c9c8 
>   ql/src/test/queries/clientpositive/subquery_in_having.q 40b7e32 
>   ql/src/test/queries/clientpositive/subquery_notin.q f9b5405 
>   ql/src/test/queries/clientpositive/subquery_scalar.q PRE-CREATION 
>   ql/src/test/queries/clientpositive/subquery_unqualcolumnrefs.q bdfa648 
>   ql/src/test/results/clientnegative/subquery_exists_implicit_gby.q.out 
> f7251e3 
>   ql/src/test/results/clientnegative/subquery_in_implicit_gby.q.out 
> PRE-CREATION 
>   ql/src/test/results/clientnegative/subquery_multiple_cols_in_select.q.out 
> 7a16bae 
>   ql/src/test/results/clientnegative/subquery_notexists_implicit_gby.q.out 
> da38f5f 
>   ql/src/test/results/clientnegative/subquery_scalar_implicit_gby.q.out 
> PRE-CREATION 
>   ql/src/test/results/clientnegative/subquery_scalar_multi_columns.q.out 
> PRE-CREATION 
>   ql/src/test/results/clientnegative/subquery_scalar_multi_rows.q.out 
> PRE-CREATION 
>   ql/src/test/results/clientnegative/subquery_windowing_corr.q.out dcd3026 
>   ql/src/test/results/clientnegative/subquery_with_or_cond.q.out d2d743d 
>   ql/src/test/results/clientpositive/llap/subquery_exists.q.out 3d8251f 
>   ql/src/test/results/clientpositive/llap/subquery_in.q.out 887a27e 
>   ql/src/test/results/clientpositive/llap/subquery_multi.q.out 7765221 
>   ql/src/test/results/clientpositive/llap/subquery_notin.q.out eb99650 
>   ql/src/test/results/clientpositive/llap/subquery_scalar.q.out PRE-CREATION 
>   ql/src/test/results/clientpositive/perf/query1.q.out PRE-CREATION 
>   ql/src/test/results/clientpositive/perf/query23.q.out 6d4cfca 
>   ql/src/test/results/clientpositive/perf/query30.q.out PRE-CREATION 
>   ql/src/test/results/clientpositive/perf/query6.q.out PRE-CREATION 
>   ql/src/test/results/clientpositive/perf/query81.q.out PRE-CREATION 
>   ql/src/test/results/clientpositive/subquery_exists.q.out c3a1b8a 
>   ql/src/test/results/clientpositive/subquery_in_having.q.out 125187a 
>   ql/src/test/results/clientpositive/subquery_unqualcolumnrefs.q.out 6e1cc1a 
> 
> Diff: https://reviews.apache.org/r/55553/diff/
> 
> 
> Testing
> -------
> 
> Added q tests
> 
> 
> Thanks,
> 
> Vineet Garg
> 
>

Reply via email to