----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/71820/ -----------------------------------------------------------
(Updated Nov. 28, 2019, 8 a.m.) Review request for hive, Jesús Camacho Rodríguez and Zoltan Haindrich. Bugs: HIVE-20150 https://issues.apache.org/jira/browse/HIVE-20150 Repository: hive-git Description ------- TopNKey pushdown ================ 1. Apply patch: https://issues.apache.org/jira/secure/attachment/12941630/HIVE-20150.11.patch 2. TopNKey introduction depends only from Reduce Sink with topn property >= 0 3. Implement TopNKey operator pushdown through: projection, group by, redeuce sink, left outer join, other topnkey 4. Add sort order and null sort order direction check when determining if the topnkey op can be pushed 5. Implement handling cases when topnkey op and the parent op has a common key prefix only. 6. turn off topnkey optimization by default Diffs (updated) ----- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 4393a2825e ql/src/java/org/apache/hadoop/hive/ql/optimizer/CommonKeyPrefix.java PRE-CREATION ql/src/java/org/apache/hadoop/hive/ql/optimizer/TopNKeyProcessor.java 4b4cf99503 ql/src/java/org/apache/hadoop/hive/ql/optimizer/TopNKeyPushdownProcessor.java PRE-CREATION ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java bf58bd8bb8 ql/src/test/org/apache/hadoop/hive/ql/optimizer/TestCommonKeyPrefix.java PRE-CREATION ql/src/test/queries/clientpositive/topnkey.q 057b6a45ba ql/src/test/queries/clientpositive/vector_topnkey.q 85c5880cd6 ql/src/test/results/clientpositive/llap/bucket_groupby.q.out 0c051c926b ql/src/test/results/clientpositive/llap/check_constraint.q.out 9f2c9a1cd0 ql/src/test/results/clientpositive/llap/constraints_optimization.q.out b6d210becf ql/src/test/results/clientpositive/llap/enforce_constraint_notnull.q.out 9343e078b7 ql/src/test/results/clientpositive/llap/explainuser_1.q.out 735296f814 ql/src/test/results/clientpositive/llap/explainuser_2.q.out b90fb55fd1 ql/src/test/results/clientpositive/llap/external_jdbc_table_perf.q.out 545cce75a9 ql/src/test/results/clientpositive/llap/filter_union.q.out 0df77762a0 ql/src/test/results/clientpositive/llap/limit_pushdown.q.out 3fdd77d802 ql/src/test/results/clientpositive/llap/limit_pushdown3.q.out efa8c38d7c ql/src/test/results/clientpositive/llap/llap_decimal64_reader.q.out ffe5f6fb22 ql/src/test/results/clientpositive/llap/offset_limit.q.out 23f2de46e5 ql/src/test/results/clientpositive/llap/offset_limit_ppd_optimizer.q.out 4ecb7bc46d ql/src/test/results/clientpositive/llap/orc_struct_type_vectorization.q.out 0eac389eb7 ql/src/test/results/clientpositive/llap/parquet_complex_types_vectorization.q.out 4362fb6f2e ql/src/test/results/clientpositive/llap/parquet_map_type_vectorization.q.out 24468c9a1b ql/src/test/results/clientpositive/llap/parquet_struct_type_vectorization.q.out 45890a1890 ql/src/test/results/clientpositive/llap/semijoin_reddedup.q.out 0e9723b8f3 ql/src/test/results/clientpositive/llap/subquery_ALL.q.out d910c1a79d ql/src/test/results/clientpositive/llap/subquery_ANY.q.out 91472d631e ql/src/test/results/clientpositive/llap/topnkey.q.out 1e77587f82 ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out cc2dc47280 ql/src/test/results/clientpositive/llap/vector_char_2.q.out f7e76e5a8b ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_limit.q.out 6fd15e7101 ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out d6325982e3 ql/src/test/results/clientpositive/llap/vector_mr_diff_schema_alias.q.out 4d417b9c3d ql/src/test/results/clientpositive/llap/vector_reduce_groupby_decimal.q.out 97a211cfc6 ql/src/test/results/clientpositive/llap/vector_string_concat.q.out a8019be7aa ql/src/test/results/clientpositive/llap/vector_topnkey.q.out c140bdfd37 ql/src/test/results/clientpositive/llap/vectorization_limit.q.out 7326adf522 ql/src/test/results/clientpositive/perf/tez/cbo_query14.q.out e9308cd709 ql/src/test/results/clientpositive/perf/tez/cbo_query77.q.out 02caf99f7d ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query14.q.out 43e1b2b5c2 ql/src/test/results/clientpositive/perf/tez/constraints/cbo_query77.q.out 2f75361df1 ql/src/test/results/clientpositive/perf/tez/constraints/query10.q.out 7ad55b5c5f ql/src/test/results/clientpositive/perf/tez/constraints/query14.q.out 9b07ceb3a7 ql/src/test/results/clientpositive/perf/tez/constraints/query15.q.out 7c0e6cf8cd ql/src/test/results/clientpositive/perf/tez/constraints/query17.q.out 44fd104a9b ql/src/test/results/clientpositive/perf/tez/constraints/query25.q.out 1ca55ca290 ql/src/test/results/clientpositive/perf/tez/constraints/query26.q.out 90a56acafc ql/src/test/results/clientpositive/perf/tez/constraints/query27.q.out 58b2b86cdf ql/src/test/results/clientpositive/perf/tez/constraints/query29.q.out 073ae52f1f ql/src/test/results/clientpositive/perf/tez/constraints/query35.q.out 4ca9d3cb61 ql/src/test/results/clientpositive/perf/tez/constraints/query37.q.out 83759fd6d8 ql/src/test/results/clientpositive/perf/tez/constraints/query40.q.out 8dff7e8984 ql/src/test/results/clientpositive/perf/tez/constraints/query43.q.out f4ead2363c ql/src/test/results/clientpositive/perf/tez/constraints/query45.q.out b73dc876da ql/src/test/results/clientpositive/perf/tez/constraints/query49.q.out db3129dca0 ql/src/test/results/clientpositive/perf/tez/constraints/query5.q.out 629d2ff013 ql/src/test/results/clientpositive/perf/tez/constraints/query50.q.out 0e210fb5cc ql/src/test/results/clientpositive/perf/tez/constraints/query60.q.out f2b494e706 ql/src/test/results/clientpositive/perf/tez/constraints/query66.q.out 4889093f21 ql/src/test/results/clientpositive/perf/tez/constraints/query69.q.out 71bb17e27a ql/src/test/results/clientpositive/perf/tez/constraints/query7.q.out e4e28188dd ql/src/test/results/clientpositive/perf/tez/constraints/query70.q.out 6fc46fbd83 ql/src/test/results/clientpositive/perf/tez/constraints/query76.q.out 08c26cf74f ql/src/test/results/clientpositive/perf/tez/constraints/query77.q.out 0f1eafc4d8 ql/src/test/results/clientpositive/perf/tez/constraints/query8.q.out f036baf048 ql/src/test/results/clientpositive/perf/tez/constraints/query80.q.out d4e913cb4f ql/src/test/results/clientpositive/perf/tez/constraints/query82.q.out 185629c47c ql/src/test/results/clientpositive/perf/tez/constraints/query99.q.out edcf1c20d7 ql/src/test/results/clientpositive/perf/tez/query10.q.out 30628f4829 ql/src/test/results/clientpositive/perf/tez/query14.q.out abfc5e85d4 ql/src/test/results/clientpositive/perf/tez/query15.q.out 418bffddca ql/src/test/results/clientpositive/perf/tez/query17.q.out e7eda149e8 ql/src/test/results/clientpositive/perf/tez/query25.q.out 201de7c376 ql/src/test/results/clientpositive/perf/tez/query26.q.out 4d26c4be5b ql/src/test/results/clientpositive/perf/tez/query27.q.out d915989654 ql/src/test/results/clientpositive/perf/tez/query29.q.out 8d947e280b ql/src/test/results/clientpositive/perf/tez/query35.q.out 1936f22b61 ql/src/test/results/clientpositive/perf/tez/query37.q.out 53b1cee165 ql/src/test/results/clientpositive/perf/tez/query40.q.out 61f3d7c748 ql/src/test/results/clientpositive/perf/tez/query43.q.out 2e6f86c0a0 ql/src/test/results/clientpositive/perf/tez/query45.q.out ab7181d7a4 ql/src/test/results/clientpositive/perf/tez/query49.q.out aefacb03f4 ql/src/test/results/clientpositive/perf/tez/query5.q.out a345d5caf1 ql/src/test/results/clientpositive/perf/tez/query50.q.out 2a287ce6d3 ql/src/test/results/clientpositive/perf/tez/query60.q.out 87eaa70d50 ql/src/test/results/clientpositive/perf/tez/query66.q.out 23ffd637a3 ql/src/test/results/clientpositive/perf/tez/query69.q.out d27f4060f6 ql/src/test/results/clientpositive/perf/tez/query7.q.out c00b543a0e ql/src/test/results/clientpositive/perf/tez/query70.q.out 26b1ca1f5d ql/src/test/results/clientpositive/perf/tez/query76.q.out c49be8e699 ql/src/test/results/clientpositive/perf/tez/query77.q.out ca68776a34 ql/src/test/results/clientpositive/perf/tez/query8.q.out b35b381a82 ql/src/test/results/clientpositive/perf/tez/query80.q.out e831f68dcf ql/src/test/results/clientpositive/perf/tez/query82.q.out c481ce47fe ql/src/test/results/clientpositive/perf/tez/query99.q.out fadd30cd14 ql/src/test/results/clientpositive/tez/topnkey.q.out 45947d0be8 ql/src/test/results/clientpositive/tez/vector_topnkey.q.out d179013e28 ql/src/test/results/clientpositive/topnkey.q.out cecbe89b1c Diff: https://reviews.apache.org/r/71820/diff/3/ Changes: https://reviews.apache.org/r/71820/diff/2-3/ Testing ------- Run q tests using TestMiniLlapLocalCliDriver topnkey.q vector_topnkey.q Thanks, Krisztian Kasa