----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/69019/#review210259 -----------------------------------------------------------
common/src/java/org/apache/hadoop/hive/common/type/HiveChar.java Lines 37 (patched) <https://reviews.apache.org/r/69019/#comment294905> Could we avoid adding this new constructor and let other logic in Hive handle this case? ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePointLookupOptimizerRule.java Lines 119 (patched) <https://reviews.apache.org/r/69019/#comment294906> Projections -> ProjectionExpressions ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePointLookupOptimizerRule.java Lines 142 (patched) <https://reviews.apache.org/r/69019/#comment294909> You can move the project copy into the _copyNode_ method so we do not have (ugly) return null over there. ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePointLookupOptimizerRule.java Line 148 (original), 174 (patched) <https://reviews.apache.org/r/69019/#comment294907> Can change the numbering, i.e., 3. ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePointLookupOptimizerRule.java Lines 239 (patched) <https://reviews.apache.org/r/69019/#comment294911> Less verbose: Comparator<RexNodeRef> COMPARATOR = (RexNodeRef o1, RexNodeRef o2) -> o1.node.toString().compareTo(o2.node.toString()); ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePointLookupOptimizerRule.java Line 258 (original), 345 (patched) <https://reviews.apache.org/r/69019/#comment294912> Lambda? ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePointLookupOptimizerRule.java Lines 459 (patched) <https://reviews.apache.org/r/69019/#comment294913> This is called only once, you could just make the transformation in-place instead of creating new method. ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java Lines 1206 (patched) <https://reviews.apache.org/r/69019/#comment294914> Since we transform IN into OR when we are not in CBO, do we still need this special handling for nulls? ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java Line 1261 (original), 1289 (patched) <https://reviews.apache.org/r/69019/#comment294915> Can we move the rewriting logic into new class? TypeCheckProcFactoryUtils or anything alike. ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java Lines 1372 (patched) <https://reviews.apache.org/r/69019/#comment294916> Is there a _isConstantOrColumn1_? What is the difference? ql/src/test/results/clientpositive/join47.q.out Line 709 (original), 709 (patched) <https://reviews.apache.org/r/69019/#comment294918> Shouldn't we be able to close this one into an IN clause after latest in HivePointLookupOptimizer? ql/src/test/results/clientpositive/mapjoin47.q.out Line 751 (original), 751 (patched) <https://reviews.apache.org/r/69019/#comment294919> same as with join47.q ql/src/test/results/clientpositive/pcs.q.out Lines 663 (patched) <https://reviews.apache.org/r/69019/#comment294920> Propagation for key happens now? Cool - Jesús Camacho Rodríguez On Oct. 30, 2018, 10:32 p.m., Zoltan Haindrich wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/69019/ > ----------------------------------------------------------- > > (Updated Oct. 30, 2018, 10:32 p.m.) > > > Review request for hive, Ashutosh Chauhan, Jesús Camacho Rodríguez, and > Vineet Garg. > > > Bugs: HIVE-20617 > https://issues.apache.org/jira/browse/HIVE-20617 > > > Repository: hive-git > > > Description > ------- > > For IN expressions the types were never corrected; and pointlookupoptimizer > was probably leaving behind fields already which were uncomparable; > HIVE-20296 exposed it further by changing the minimal number from 32 to 2. > > This change generalizes the retyping of constants to also run it for the IN > operator ; and also for struct-s. > > > Diffs > ----- > > common/src/java/org/apache/hadoop/hive/common/type/HiveChar.java > 29dc06dca1a > ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java e7d71595c7a > > ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePointLookupOptimizerRule.java > 04800cca91b > ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java 82e975a50de > ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckCtx.java 1b56ecd0440 > ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java > 4968d16876c > ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java > c274fd7cc9b > ql/src/test/queries/clientpositive/groupby_multi_single_reducer3.q > 94aea35c422 > ql/src/test/queries/clientpositive/in_typecheck_char.q PRE-CREATION > ql/src/test/queries/clientpositive/in_typecheck_pointlook.q PRE-CREATION > ql/src/test/queries/clientpositive/in_typecheck_varchar.q PRE-CREATION > ql/src/test/queries/clientpositive/in_typecheck_x1.q PRE-CREATION > ql/src/test/queries/clientpositive/join45X.q PRE-CREATION > ql/src/test/queries/clientpositive/pcs.q 2e7eff472b5 > ql/src/test/queries/clientpositive/vector_struct_in.q 49a9374bd13 > ql/src/test/results/clientpositive/alter_partition_coltype.q.out > f6c3c5642ea > ql/src/test/results/clientpositive/in_typecheck_char.q.out PRE-CREATION > ql/src/test/results/clientpositive/in_typecheck_pointlook.q.out > PRE-CREATION > ql/src/test/results/clientpositive/in_typecheck_varchar.q.out PRE-CREATION > ql/src/test/results/clientpositive/in_typecheck_x1.q.out PRE-CREATION > ql/src/test/results/clientpositive/infer_const_type.q.out e1d7de54225 > ql/src/test/results/clientpositive/join45.q.out 47aaf7d0abc > ql/src/test/results/clientpositive/join45X.q.out PRE-CREATION > ql/src/test/results/clientpositive/join47.q.out 4d9e937815e > ql/src/test/results/clientpositive/llap/dec_str.q.out 554031e952e > ql/src/test/results/clientpositive/llap/explainuser_1.q.out f240468558e > ql/src/test/results/clientpositive/llap/lineage3.q.out 9bec309c9c9 > ql/src/test/results/clientpositive/llap/vectorization_13.q.out 4ce654f960b > ql/src/test/results/clientpositive/llap/vectorization_6.q.out a2f730beca2 > ql/src/test/results/clientpositive/llap/vectorization_8.q.out 21ce7b8ebd0 > ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out > 7f1c6a295e1 > ql/src/test/results/clientpositive/mapjoin47.q.out 294dd69de5c > ql/src/test/results/clientpositive/parquet_vectorization_13.q.out > 0efce98b555 > ql/src/test/results/clientpositive/parquet_vectorization_6.q.out > 0bb68883640 > ql/src/test/results/clientpositive/parquet_vectorization_8.q.out > 957bd7b264c > ql/src/test/results/clientpositive/pcs.q.out 4a89fb0787e > ql/src/test/results/clientpositive/ppd_udf_col.q.out 814fb5afcfd > ql/src/test/results/clientpositive/spark/cbo_simple_select.q.out > acf91bf1787 > ql/src/test/results/clientpositive/spark/parquet_vectorization_13.q.out > 38122393439 > ql/src/test/results/clientpositive/spark/parquet_vectorization_6.q.out > 6108457aad3 > ql/src/test/results/clientpositive/spark/parquet_vectorization_8.q.out > 3352dedc584 > ql/src/test/results/clientpositive/spark/spark_explainuser_1.q.out > f5a4c9ad861 > ql/src/test/results/clientpositive/spark/subquery_scalar.q.out b3252f54158 > ql/src/test/results/clientpositive/spark/vectorization_13.q.out 34ec9c42dd3 > ql/src/test/results/clientpositive/spark/vectorization_6.q.out 5679bb8cfa4 > ql/src/test/results/clientpositive/spark/vectorization_short_regress.q.out > 231dea6de3e > ql/src/test/results/clientpositive/vector_struct_in.q.out 546ef02fa42 > ql/src/test/results/clientpositive/vectorization_13.q.out 8897f8427ff > ql/src/test/results/clientpositive/vectorization_6.q.out 8dedb63e7da > ql/src/test/results/clientpositive/vectorization_8.q.out d81df76a2f6 > > > Diff: https://reviews.apache.org/r/69019/diff/4/ > > > Testing > ------- > > > Thanks, > > Zoltan Haindrich > >