----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/71820/ -----------------------------------------------------------
(Updated Dec. 3, 2019, 9:27 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 0d6cf3c755 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 283a665a20 ql/src/test/results/clientpositive/llap/explainuser_2.q.out 0219af8833 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 bb3b1b6660 ql/src/test/results/clientpositive/perf/tez/constraints/query14.q.out 228b20a8d7 ql/src/test/results/clientpositive/perf/tez/constraints/query15.q.out 5268ed3ecf ql/src/test/results/clientpositive/perf/tez/constraints/query17.q.out d96222d9e1 ql/src/test/results/clientpositive/perf/tez/constraints/query25.q.out adabb76e04 ql/src/test/results/clientpositive/perf/tez/constraints/query26.q.out 824bbe6769 ql/src/test/results/clientpositive/perf/tez/constraints/query27.q.out abbd02d6c9 ql/src/test/results/clientpositive/perf/tez/constraints/query29.q.out c308771dfb ql/src/test/results/clientpositive/perf/tez/constraints/query35.q.out 23b3399123 ql/src/test/results/clientpositive/perf/tez/constraints/query37.q.out 187ad5c5b5 ql/src/test/results/clientpositive/perf/tez/constraints/query40.q.out 070b5cb1f5 ql/src/test/results/clientpositive/perf/tez/constraints/query43.q.out b5a6c746d1 ql/src/test/results/clientpositive/perf/tez/constraints/query45.q.out 3f5dbf4beb ql/src/test/results/clientpositive/perf/tez/constraints/query49.q.out b384aea779 ql/src/test/results/clientpositive/perf/tez/constraints/query5.q.out d3f79820f2 ql/src/test/results/clientpositive/perf/tez/constraints/query50.q.out 8c9754967f ql/src/test/results/clientpositive/perf/tez/constraints/query60.q.out 06a5689938 ql/src/test/results/clientpositive/perf/tez/constraints/query66.q.out be612609cf ql/src/test/results/clientpositive/perf/tez/constraints/query69.q.out d7469ae5a9 ql/src/test/results/clientpositive/perf/tez/constraints/query7.q.out b2eccdbe90 ql/src/test/results/clientpositive/perf/tez/constraints/query76.q.out ce4f7cb061 ql/src/test/results/clientpositive/perf/tez/constraints/query77.q.out 95ab61bed2 ql/src/test/results/clientpositive/perf/tez/constraints/query8.q.out 170bccf406 ql/src/test/results/clientpositive/perf/tez/constraints/query80.q.out b18f89373c ql/src/test/results/clientpositive/perf/tez/constraints/query82.q.out 8dd6ae9f0f ql/src/test/results/clientpositive/perf/tez/constraints/query99.q.out c77a73f4d5 ql/src/test/results/clientpositive/perf/tez/query10.q.out b346a5c5fb ql/src/test/results/clientpositive/perf/tez/query14.q.out 069fad2b4a ql/src/test/results/clientpositive/perf/tez/query15.q.out 3670a718b3 ql/src/test/results/clientpositive/perf/tez/query17.q.out df70fbc46e ql/src/test/results/clientpositive/perf/tez/query25.q.out d006795c79 ql/src/test/results/clientpositive/perf/tez/query26.q.out a1bf3b099b ql/src/test/results/clientpositive/perf/tez/query27.q.out 6f49de2344 ql/src/test/results/clientpositive/perf/tez/query29.q.out 5066893829 ql/src/test/results/clientpositive/perf/tez/query35.q.out 265c51bb72 ql/src/test/results/clientpositive/perf/tez/query37.q.out 2724fd44dc ql/src/test/results/clientpositive/perf/tez/query40.q.out 4b65c82e00 ql/src/test/results/clientpositive/perf/tez/query43.q.out eb19d41926 ql/src/test/results/clientpositive/perf/tez/query45.q.out 4538a6540d ql/src/test/results/clientpositive/perf/tez/query49.q.out 9c34eccceb ql/src/test/results/clientpositive/perf/tez/query5.q.out 38fba27a8e ql/src/test/results/clientpositive/perf/tez/query50.q.out 6e34831de6 ql/src/test/results/clientpositive/perf/tez/query60.q.out e77c89ba69 ql/src/test/results/clientpositive/perf/tez/query66.q.out 7ddcc21f92 ql/src/test/results/clientpositive/perf/tez/query69.q.out d11b5494e0 ql/src/test/results/clientpositive/perf/tez/query7.q.out c17ec8aeb9 ql/src/test/results/clientpositive/perf/tez/query76.q.out c0d60e88cc ql/src/test/results/clientpositive/perf/tez/query77.q.out ab2b3dc570 ql/src/test/results/clientpositive/perf/tez/query8.q.out 0af8fdf3df ql/src/test/results/clientpositive/perf/tez/query80.q.out 47844158fa ql/src/test/results/clientpositive/perf/tez/query82.q.out c7721acffe ql/src/test/results/clientpositive/perf/tez/query99.q.out c01122f435 ql/src/test/results/clientpositive/tez/topnkey.q.out cf2ecf7133 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/6/ Changes: https://reviews.apache.org/r/71820/diff/5-6/ Testing ------- Run q tests using TestMiniLlapLocalCliDriver topnkey.q vector_topnkey.q Thanks, Krisztian Kasa