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




common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
Lines 2219 (patched)
<https://reviews.apache.org/r/68310/#comment292640>

    Should we control all constraint related optimization with one flag and 
therefore rename this one to e.g. hive.optimize.constraints.rules or something?
    Or do you think it is better for each rule to have seperate conf?



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java
Lines 115 (patched)
<https://reviews.apache.org/r/68310/#comment292629>

    Just a minor comment about readability. leftFK, rightFK name gets a bit 
confusing may be comment to describe what it represents e.g. they represents 
corresponding left, right input which is potential FK



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java
Lines 117 (patched)
<https://reviews.apache.org/r/68310/#comment292639>

    Not sure what this logic is trying to do. Can you explain? Both of the 
inputs are being referenced above so how can we still proceed?



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java
Lines 203 (patched)
<https://reviews.apache.org/r/68310/#comment292630>

    I didn't understand this part. Irrespective of what input side is being 
referenced we assume leftInput to be FK. Lets say rightFK is true i.e. right 
side input is being referenced then wouldn't assuing leftInput as FK side cause 
issues because we will end up removing right side (PK side) when there are 
references to it



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java
Lines 207 (patched)
<https://reviews.apache.org/r/68310/#comment292631>

    same as above



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java
Lines 215 (patched)
<https://reviews.apache.org/r/68310/#comment292632>

    This whole step 2 can be encapsulated in a utility method. I can see this 
being quite useful for other constraint optimizations



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java
Lines 253 (patched)
<https://reviews.apache.org/r/68310/#comment292633>

    Order by should be safe here as well? (assuming it is represented by 
seperate rel node)



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java
Lines 261 (patched)
<https://reviews.apache.org/r/68310/#comment292634>

    Did't understand this step. Irrespective of the mode or fk-pk relationship 
OUTER join is being transformed into INNER?



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java
Lines 329 (patched)
<https://reviews.apache.org/r/68310/#comment292517>

    isn't calling mq.getTableReferences(rightInput) straightforward and cheaper 
rather than calling it for join and leftInput and taking the difference?



ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java
Lines 373 (patched)
<https://reviews.apache.org/r/68310/#comment292560>

    Why remove when size is 1? Shouldn't it removed when size is 0?



ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
Lines 1661 (patched)
<https://reviews.apache.org/r/68310/#comment292391>

    A comment would be nice to comment what optimizations hive currently does 
for REFERENTIAL_CONSTRAINTS,



ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
Lines 2059 (patched)
<https://reviews.apache.org/r/68310/#comment292392>

    Why is HiveProjectJoinTransposeRule required only for JoinConstraintRule? 
Sounds like it could be beneficial in general.



ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
Lines 2877 (patched)
<https://reviews.apache.org/r/68310/#comment292390>

    Rather than adding 'REFERENTIAL_CONSTRAINTS' profilesCBO separately, may be 
add it once for both DRUID and JDBC type of tables (i.e. in parent IF condition)
    Edit: It looks like it is being added for all kind of tables, so many be 
just add it once (at the end) instead of adding it for each type of table.



ql/src/test/results/clientpositive/druid/druidmini_mv.q.out
Line 169 (original), 169 (patched)
<https://reviews.apache.org/r/68310/#comment292644>

    Before it was virtual column vc now instead if is column c? What caused 
this change and is it correct?



ql/src/test/results/clientpositive/list_bucket_dml_2.q.out
Line 364 (original), 364 (patched)
<https://reviews.apache.org/r/68310/#comment292642>

    Curious what caused this change? I don't see anything relevant.


- Vineet Garg


On Sept. 5, 2018, 9:11 p.m., Jesús Camacho Rodríguez wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/68310/
> -----------------------------------------------------------
> 
> (Updated Sept. 5, 2018, 9:11 p.m.)
> 
> 
> Review request for hive and Ashutosh Chauhan.
> 
> 
> Bugs: HIVE-17040
>     https://issues.apache.org/jira/browse/HIVE-17040
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> HIVE-17040
> 
> 
> Diffs
> -----
> 
>   common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 
> 40ea3ac0c5cd0943a4e9dbe2b0e8b952070a8a67 
>   itests/src/test/resources/testconfiguration.properties 
> a3a70ecd498bbfc6146cfbfbeb1f265032f440ef 
>   
> ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java
>  PRE-CREATION 
>   
> ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveProjectJoinTransposeRule.java
>  PRE-CREATION 
>   
> ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveProjectMergeRule.java
>  07518df9ec1cea1c331846bbe636cf1a039e762f 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java 
> df40a2878d328b76f7de74e2c2db0a029ba4610f 
>   ql/src/test/queries/clientpositive/join_constraints_optimization.q 
> PRE-CREATION 
>   ql/src/test/queries/clientpositive/materialized_view_rewrite_1.q 
> ee4844277e5dd1d9ea3911ad2e33a9c3f2481344 
>   ql/src/test/queries/clientpositive/materialized_view_rewrite_3.q 
> 4aadd5fb0a4bc74c5bc4088b3d4e62c81bf9cf8b 
>   ql/src/test/queries/clientpositive/materialized_view_rewrite_4.q 
> dc20b68ba9a9e0bbcb9c414b10b00f3228fe63fe 
>   ql/src/test/queries/clientpositive/materialized_view_rewrite_5.q 
> 0e4fdf49ac04935f6f14c2ceaa0969008b34f926 
>   ql/src/test/queries/clientpositive/materialized_view_rewrite_6.q 
> 4f05f76330cb74be50187e3b175d4675f5ea8763 
>   ql/src/test/queries/clientpositive/materialized_view_rewrite_7.q 
> 59ed5757569a8dde70fe04eb9ec5e8c91b5931bf 
>   ql/src/test/queries/clientpositive/materialized_view_rewrite_no_join_opt.q 
> PRE-CREATION 
>   
> ql/src/test/queries/clientpositive/materialized_view_rewrite_no_join_opt_2.q 
> PRE-CREATION 
>   ql/src/test/queries/clientpositive/materialized_view_rewrite_part_1.q 
> 5a2e74c8a005ae8422c00a998fa3c07183749176 
>   ql/src/test/results/clientpositive/ambiguitycheck.q.out 
> 80c9582fec9754fe56400064ab3f88e3e9ea2da7 
>   
> ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out
>  7813aac29465b5193789464fcd32771741a98071 
>   ql/src/test/results/clientpositive/druid/druidmini_mv.q.out 
> 806262d72e687bbdd09b47380eed77c14764c2a5 
>   ql/src/test/results/clientpositive/list_bucket_dml_2.q.out 
> bd8e215c2207c48ce2e446fcc10333ec0fb4648c 
>   ql/src/test/results/clientpositive/list_bucket_dml_4.q.out 
> 520d48e3d9fa67301852efc9ed1c92494fd528a0 
>   ql/src/test/results/clientpositive/list_bucket_dml_9.q.out 
> fbd4fde1bd8d2f7379585afe07c018139b7d64e8 
>   ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out 
> e324cab738c22e31089f437d6e7d8a65160dc5b9 
>   ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out 
> ec1e54060cb7d380bda4d965fff540d002bd456a 
>   ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out 
> 889f23c6da7e3c7b955b83d44afd1bd048468b49 
>   ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out 
> dcff8a50370b4ebb07300d4a7d9c34aa84f4ae17 
>   ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out 
> 268051e2acbbabd02206c5a21690fb563a3dcd2b 
>   ql/src/test/results/clientpositive/llap/acid_bucket_pruning.q.out 
> 3951b71227d93469347264362492e64554efee32 
>   ql/src/test/results/clientpositive/llap/bucketpruning1.q.out 
> 260ba1cbddee7f0946f0cdec1070359ab2a1d2aa 
>   ql/src/test/results/clientpositive/llap/current_date_timestamp.q.out 
> 6831fb2573788033393544b835f1a56d69fb1712 
>   ql/src/test/results/clientpositive/llap/join_constraints_optimization.q.out 
> PRE-CREATION 
>   
> ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite.q.out
>  71adebb2acad1545c48d45835cd5876434b141b5 
>   
> ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_dummy.q.out
>  ce1c281bea0bd2a96e67057ee990fa5b45850905 
>   
> ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_multi_db.q.out
>  98f74379f6275aed90273929c65144e4bbd51a97 
>   ql/src/test/results/clientpositive/llap/materialized_view_rewrite_1.q.out 
> 4d8fa52aa94a77faa9d1d1872afcb016e5a3c438 
>   ql/src/test/results/clientpositive/llap/materialized_view_rewrite_2.q.out 
> 8e54abe61d48ebd3439ee215e88c2186601a4cd3 
>   ql/src/test/results/clientpositive/llap/materialized_view_rewrite_3.q.out 
> d7536e408798d38970a30226f7248d69a10b0903 
>   ql/src/test/results/clientpositive/llap/materialized_view_rewrite_4.q.out 
> 3fd4c59ee68c3b0df56d070df900fbea31e3f6aa 
>   ql/src/test/results/clientpositive/llap/materialized_view_rewrite_5.q.out 
> 9992409f6aa36f6be18f6b07a6de380b2be18a9a 
>   ql/src/test/results/clientpositive/llap/materialized_view_rewrite_6.q.out 
> 544c395c0125608b3954c7cc9d51ee088d2bdb51 
>   ql/src/test/results/clientpositive/llap/materialized_view_rewrite_7.q.out 
> 1e44104ac5d4cb42247b44057c7b649d7d6c1e32 
>   
> ql/src/test/results/clientpositive/llap/materialized_view_rewrite_no_join_opt.q.out
>  PRE-CREATION 
>   
> ql/src/test/results/clientpositive/llap/materialized_view_rewrite_no_join_opt_2.q.out
>  PRE-CREATION 
>   
> ql/src/test/results/clientpositive/llap/materialized_view_rewrite_part_1.q.out
>  3a2ad3daf0b5dbbaa4f591a9609059d0ded5300b 
>   
> ql/src/test/results/clientpositive/llap/materialized_view_rewrite_part_2.q.out
>  d39180ecd8294209ffcd3dc44e2571a4f314018a 
>   ql/src/test/results/clientpositive/macro.q.out 
> 70281acc0b7eb66048903bbdac53baf4b7a2388a 
> 
> 
> Diff: https://reviews.apache.org/r/68310/diff/2/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Jesús Camacho Rodríguez
> 
>

Reply via email to