HIVE-18908: FULL OUTER JOIN to MapJoin (Matt McCline, reviewed by Teddy Choi)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/a37827ec Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/a37827ec Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/a37827ec Branch: refs/heads/master Commit: a37827ecd557c7f7d69f3b2ccdbf6535908b1461 Parents: 45163ee Author: Matt McCline <mmccl...@hortonworks.com> Authored: Sun Sep 16 09:04:59 2018 -0500 Committer: Matt McCline <mmccl...@hortonworks.com> Committed: Sun Sep 16 09:04:59 2018 -0500 ---------------------------------------------------------------------- .../org/apache/hadoop/hive/conf/HiveConf.java | 10 +- data/files/fullouter_long_big_1a.txt | 11 + data/files/fullouter_long_big_1a_nonull.txt | 10 + data/files/fullouter_long_big_1b.txt | 13 + data/files/fullouter_long_big_1c.txt | 11 + data/files/fullouter_long_big_1d.txt | 12 + data/files/fullouter_long_small_1a.txt | 54 + data/files/fullouter_long_small_1a_nonull.txt | 51 + data/files/fullouter_long_small_1b.txt | 72 + data/files/fullouter_long_small_1c.txt | 81 + data/files/fullouter_long_small_1d.txt | 39 + data/files/fullouter_multikey_big_1a.txt | 13 + data/files/fullouter_multikey_big_1a_nonull.txt | 10 + data/files/fullouter_multikey_big_1b.txt | 17 + data/files/fullouter_multikey_small_1a.txt | 92 + .../fullouter_multikey_small_1a_nonull.txt | 90 + data/files/fullouter_multikey_small_1b.txt | 118 + data/files/fullouter_string_big_1a.txt | 13 + data/files/fullouter_string_big_1a_nonull.txt | 12 + data/files/fullouter_string_big_1a_old.txt | 13 + data/files/fullouter_string_small_1a.txt | 38 + data/files/fullouter_string_small_1a_nonull.txt | 35 + data/files/fullouter_string_small_1a_old.txt | 38 + .../vectorization/mapjoin/AbstractMapJoin.java | 66 +- .../mapjoin/MapJoinMultiKeyBenchBase.java | 3 +- .../mapjoin/MapJoinOneLongKeyBenchBase.java | 3 +- .../mapjoin/MapJoinOneStringKeyBenchBase.java | 3 +- .../test/resources/testconfiguration.properties | 5 + .../hadoop/hive/ql/exec/CommonJoinOperator.java | 11 +- .../apache/hadoop/hive/ql/exec/ExplainTask.java | 187 +- .../apache/hadoop/hive/ql/exec/JoinUtil.java | 2 +- .../hadoop/hive/ql/exec/MapJoinOperator.java | 199 +- .../apache/hadoop/hive/ql/exec/Operator.java | 86 +- .../hadoop/hive/ql/exec/TableScanOperator.java | 6 +- .../persistence/BytesBytesMultiHashMap.java | 71 +- .../ql/exec/persistence/HashMapWrapper.java | 22 + .../persistence/HybridHashTableContainer.java | 118 +- .../persistence/MapJoinBytesTableContainer.java | 199 +- .../hive/ql/exec/persistence/MapJoinKey.java | 15 + .../persistence/MapJoinObjectSerDeContext.java | 17 + .../exec/persistence/MapJoinTableContainer.java | 61 +- .../hive/ql/exec/persistence/MatchTracker.java | 154 + .../ReusableGetAdaptorDirectAccess.java | 4 +- .../ql/exec/persistence/UnwrapRowContainer.java | 12 +- .../hive/ql/exec/tez/ReduceRecordProcessor.java | 2 +- .../vector/VectorAppMasterEventOperator.java | 2 +- .../hive/ql/exec/vector/VectorAssignRow.java | 12 + .../hive/ql/exec/vector/VectorCopyRow.java | 21 +- .../ql/exec/vector/VectorDeserializeRow.java | 32 + .../ql/exec/vector/VectorFilterOperator.java | 2 +- .../ql/exec/vector/VectorGroupByOperator.java | 2 +- .../ql/exec/vector/VectorLimitOperator.java | 2 +- .../exec/vector/VectorMapJoinBaseOperator.java | 23 +- .../ql/exec/vector/VectorMapJoinOperator.java | 23 +- .../exec/vector/VectorSMBMapJoinOperator.java | 2 +- .../ql/exec/vector/VectorSelectOperator.java | 4 +- .../ql/exec/vector/VectorTopNKeyOperator.java | 2 +- .../mapjoin/VectorMapJoinCommonOperator.java | 409 +- .../VectorMapJoinFullOuterLongOperator.java | 68 + .../VectorMapJoinFullOuterMultiKeyOperator.java | 71 + .../VectorMapJoinFullOuterStringOperator.java | 71 + .../VectorMapJoinGenerateResultOperator.java | 163 +- ...pJoinInnerBigOnlyGenerateResultOperator.java | 18 +- .../VectorMapJoinInnerBigOnlyLongOperator.java | 63 +- ...ctorMapJoinInnerBigOnlyMultiKeyOperator.java | 60 +- ...VectorMapJoinInnerBigOnlyStringOperator.java | 50 +- ...ectorMapJoinInnerGenerateResultOperator.java | 22 +- .../mapjoin/VectorMapJoinInnerLongOperator.java | 64 +- .../VectorMapJoinInnerMultiKeyOperator.java | 58 +- .../VectorMapJoinInnerStringOperator.java | 50 +- ...orMapJoinLeftSemiGenerateResultOperator.java | 12 +- .../VectorMapJoinLeftSemiLongOperator.java | 64 +- .../VectorMapJoinLeftSemiMultiKeyOperator.java | 58 +- .../VectorMapJoinLeftSemiStringOperator.java | 50 +- ...ectorMapJoinOuterGenerateResultOperator.java | 382 +- .../mapjoin/VectorMapJoinOuterLongOperator.java | 117 +- .../VectorMapJoinOuterMultiKeyOperator.java | 110 +- .../VectorMapJoinOuterStringOperator.java | 99 +- .../fast/VectorMapJoinFastBytesHashMap.java | 162 +- .../VectorMapJoinFastBytesHashMapStore.java | 30 +- .../VectorMapJoinFastBytesHashMultiSet.java | 5 +- .../fast/VectorMapJoinFastBytesHashSet.java | 5 +- .../fast/VectorMapJoinFastBytesHashTable.java | 7 +- .../mapjoin/fast/VectorMapJoinFastHashMap.java | 8 +- .../fast/VectorMapJoinFastHashMultiSet.java | 8 +- .../mapjoin/fast/VectorMapJoinFastHashSet.java | 6 +- .../fast/VectorMapJoinFastHashTable.java | 33 +- .../mapjoin/fast/VectorMapJoinFastKeyStore.java | 34 +- .../fast/VectorMapJoinFastLongHashMap.java | 166 +- .../fast/VectorMapJoinFastLongHashMultiSet.java | 38 +- .../fast/VectorMapJoinFastLongHashSet.java | 27 +- .../fast/VectorMapJoinFastLongHashTable.java | 26 +- .../fast/VectorMapJoinFastMultiKeyHashMap.java | 8 +- .../VectorMapJoinFastMultiKeyHashMultiSet.java | 8 +- .../fast/VectorMapJoinFastMultiKeyHashSet.java | 8 +- .../VectorMapJoinFastNonMatchedIterator.java | 40 + .../fast/VectorMapJoinFastStringCommon.java | 12 +- .../fast/VectorMapJoinFastStringHashMap.java | 16 +- .../VectorMapJoinFastStringHashMultiSet.java | 21 +- .../fast/VectorMapJoinFastStringHashSet.java | 13 +- .../fast/VectorMapJoinFastTableContainer.java | 64 +- .../hashtable/VectorMapJoinBytesHashMap.java | 16 + .../mapjoin/hashtable/VectorMapJoinHashMap.java | 1 - .../hashtable/VectorMapJoinHashTable.java | 8 +- .../hashtable/VectorMapJoinLongHashMap.java | 13 + .../hashtable/VectorMapJoinLongHashTable.java | 1 - .../VectorMapJoinNonMatchedIterator.java | 72 + .../VectorMapJoinOptimizedCreateHashTable.java | 12 - .../VectorMapJoinOptimizedHashMap.java | 80 +- .../VectorMapJoinOptimizedHashMultiSet.java | 2 +- .../VectorMapJoinOptimizedHashSet.java | 2 +- .../VectorMapJoinOptimizedHashTable.java | 27 +- .../VectorMapJoinOptimizedLongCommon.java | 2 - .../VectorMapJoinOptimizedLongHashMap.java | 122 +- .../VectorMapJoinOptimizedMultiKeyHashMap.java | 2 - ...ectorMapJoinOptimizedNonMatchedIterator.java | 55 + .../VectorMapJoinOptimizedStringCommon.java | 19 +- .../VectorMapJoinOptimizedStringHashMap.java | 76 +- .../hive/ql/optimizer/AbstractSMBJoinProc.java | 3 + .../hive/ql/optimizer/ConvertJoinMapJoin.java | 175 +- .../optimizer/FullOuterMapJoinOptimization.java | 95 + .../hive/ql/optimizer/MapJoinProcessor.java | 260 +- .../ql/optimizer/SparkMapJoinProcessor.java | 3 + .../hive/ql/optimizer/physical/Vectorizer.java | 206 +- .../optimizer/spark/SparkMapJoinOptimizer.java | 3 + .../hive/ql/parse/ExplainConfiguration.java | 9 + .../hive/ql/parse/ExplainSemanticAnalyzer.java | 2 + .../org/apache/hadoop/hive/ql/parse/HiveLexer.g | 1 + .../apache/hadoop/hive/ql/parse/HiveParser.g | 2 + .../hadoop/hive/ql/parse/IdentifiersParser.g | 1 + .../org/apache/hadoop/hive/ql/plan/Explain.java | 2 +- .../apache/hadoop/hive/ql/plan/ExplainWork.java | 4 + .../hadoop/hive/ql/plan/JoinCondDesc.java | 2 +- .../apache/hadoop/hive/ql/plan/JoinDesc.java | 2 +- .../apache/hadoop/hive/ql/plan/MapJoinDesc.java | 210 +- .../hadoop/hive/ql/plan/MergeJoinWork.java | 57 + .../ql/plan/OperatorExplainVectorization.java | 19 + .../hadoop/hive/ql/plan/ReduceSinkDesc.java | 74 +- .../hadoop/hive/ql/plan/VectorMapJoinDesc.java | 16 +- .../hadoop/hive/ql/plan/VectorMapJoinInfo.java | 97 +- .../persistence/TestBytesBytesMultiHashMap.java | 8 +- .../CollectorTestOperator.java | 22 + .../RowCollectorTestOperator.java | 22 +- .../RowVectorCollectorTestOperator.java | 10 + .../util/rowobjects/RowTestObjectsMultiSet.java | 169 +- .../TestTimestampWritableAndColumnVector.java | 2 - .../exec/vector/TestVectorSelectOperator.java | 3 +- .../ql/exec/vector/VectorRandomRowSource.java | 45 +- .../exec/vector/mapjoin/MapJoinTestConfig.java | 734 +- .../ql/exec/vector/mapjoin/MapJoinTestData.java | 269 +- .../vector/mapjoin/MapJoinTestDescription.java | 249 +- .../ql/exec/vector/mapjoin/NoOpExpression.java | 52 + .../vector/mapjoin/TestMapJoinOperator.java | 1924 +++- .../vector/mapjoin/fast/CheckFastHashTable.java | 184 +- ...VectorMapJoinFastBytesHashMapNonMatched.java | 167 + .../fast/TestVectorMapJoinFastBytesHashSet.java | 16 +- ...tVectorMapJoinFastLongHashMapNonMatched.java | 196 + .../exec/vector/mapjoin/fast/VerifyFastRow.java | 2 - .../util/batchgen/VectorBatchGenerator.java | 29 +- .../batchgen/VectorColumnGroupGenerator.java | 290 +- .../ql/plan/mapping/TestCounterMapping.java | 2 +- ql/src/test/queries/clientnegative/join32.q | 3 + .../queries/clientpositive/auto_join_filters.q | 29 + .../queries/clientpositive/auto_join_nulls.q | 9 + .../clientpositive/bucket_map_join_tez1.q | 2 +- .../clientpositive/correlationoptimizer1.q | 30 + .../clientpositive/correlationoptimizer2.q | 107 + .../clientpositive/correlationoptimizer4.q | 47 +- .../fullouter_mapjoin_1_optimized.q | 290 + .../queries/clientpositive/join32_lessSize.q | 1 + ql/src/test/queries/clientpositive/join33.q | 1 + ql/src/test/queries/clientpositive/mapjoin2.q | 14 + ql/src/test/queries/clientpositive/mapjoin46.q | 109 + .../clientpositive/parquet_vectorization_0.q | 14 +- .../clientpositive/parquet_vectorization_1.q | 2 +- .../clientpositive/parquet_vectorization_10.q | 2 +- .../clientpositive/parquet_vectorization_11.q | 2 +- .../clientpositive/parquet_vectorization_12.q | 2 +- .../clientpositive/parquet_vectorization_13.q | 2 +- .../clientpositive/parquet_vectorization_14.q | 2 +- .../clientpositive/parquet_vectorization_15.q | 2 +- .../clientpositive/parquet_vectorization_16.q | 2 +- .../clientpositive/parquet_vectorization_17.q | 2 +- .../clientpositive/parquet_vectorization_2.q | 2 +- .../clientpositive/parquet_vectorization_3.q | 2 +- .../clientpositive/parquet_vectorization_4.q | 2 +- .../clientpositive/parquet_vectorization_5.q | 2 +- .../clientpositive/parquet_vectorization_6.q | 2 +- .../clientpositive/parquet_vectorization_7.q | 2 +- .../clientpositive/parquet_vectorization_8.q | 2 +- .../clientpositive/parquet_vectorization_9.q | 2 +- .../parquet_vectorization_limit.q | 12 +- .../clientpositive/tez_dynpart_hashjoin_3.q | 6 + ql/src/test/queries/clientpositive/union14.q | 4 +- ql/src/test/queries/clientpositive/union7.q | 3 +- ql/src/test/queries/clientpositive/union_null.q | 3 +- ql/src/test/queries/clientpositive/union_view.q | 2 + .../clientpositive/vector_full_outer_join.q | 82 + .../vector_fullouter_mapjoin_1_fast.q | 290 + .../vector_fullouter_mapjoin_1_optimized.q | 290 + ...tor_fullouter_mapjoin_1_optimized_passthru.q | 290 + .../test/queries/clientpositive/vector_join30.q | 219 +- .../clientpositive/vector_join_filters.q | 14 + .../queries/clientpositive/vector_join_nulls.q | 16 + .../clientpositive/vector_left_outer_join2.q | 13 +- .../clientpositive/vector_leftsemi_mapjoin.q | 290 +- .../clientpositive/vector_nullsafe_join.q | 8 + .../queries/clientpositive/vectorized_join46.q | 35 +- .../clientpositive/vectorized_join46_mr.q | 228 + .../clientpositive/annotate_stats_join.q.out | 2 +- .../results/clientpositive/auto_join18.q.out | 2 +- .../auto_join18_multi_distinct.q.out | 2 +- .../results/clientpositive/auto_join6.q.out | 2 +- .../results/clientpositive/auto_join7.q.out | 2 +- .../clientpositive/beeline/mapjoin2.q.out | 532 + .../clientpositive/beeline/smb_mapjoin_1.q.out | 4 +- .../clientpositive/beeline/smb_mapjoin_2.q.out | 4 +- .../clientpositive/beeline/smb_mapjoin_3.q.out | 4 +- .../clientpositive/beeline/smb_mapjoin_7.q.out | 2 +- .../results/clientpositive/cbo_rp_join1.q.out | 8 +- .../clientpositive/correlationoptimizer8.q.out | 2 +- .../clientpositive/fullouter_mapjoin_1.q.out | 176 + .../clientpositive/infer_join_preds.q.out | 2 +- ql/src/test/results/clientpositive/join18.q.out | 2 +- .../clientpositive/join18_multi_distinct.q.out | 2 +- ql/src/test/results/clientpositive/join45.q.out | 4 +- ql/src/test/results/clientpositive/join46.q.out | 10 +- ql/src/test/results/clientpositive/join47.q.out | 4 +- ql/src/test/results/clientpositive/join6.q.out | 2 +- ql/src/test/results/clientpositive/join7.q.out | 2 +- .../clientpositive/join_filters_overlap.q.out | 2 +- .../clientpositive/llap/acid_no_buckets.q.out | 62 +- .../clientpositive/llap/auto_join_filters.q.out | 389 + .../clientpositive/llap/auto_join_nulls.q.out | 133 + .../llap/convert_decimal64_to_decimal.q.out | 14 +- .../llap/correlationoptimizer1.q.out | 288 +- .../llap/correlationoptimizer2.q.out | 1346 ++- .../llap/correlationoptimizer4.q.out | 921 +- .../clientpositive/llap/cross_prod_1.q.out | 2 +- .../clientpositive/llap/explainuser_4.q.out | 6 +- .../llap/fullouter_mapjoin_1_optimized.q.out | 3139 ++++++ .../results/clientpositive/llap/join46.q.out | 10 +- .../llap/join_max_hashtable.q.out | 4 + .../results/clientpositive/llap/llap_acid.q.out | 14 +- .../clientpositive/llap/llap_acid_fast.q.out | 14 +- .../clientpositive/llap/llap_partitioned.q.out | 16 +- .../llap/llap_vector_nohybridgrace.q.out | 2 + .../results/clientpositive/llap/mapjoin2.q.out | 546 + .../results/clientpositive/llap/mapjoin46.q.out | 956 +- .../results/clientpositive/llap/mergejoin.q.out | 138 +- .../clientpositive/llap/orc_llap_counters.q.out | 176 +- .../llap/orc_llap_counters1.q.out | 12 +- .../clientpositive/llap/partialdhj.q.out | 4 + .../results/clientpositive/llap/reopt_dpp.q.out | 2 +- .../clientpositive/llap/reopt_semijoin.q.out | 2 +- .../clientpositive/llap/results_cache_2.q.out | 6 +- .../clientpositive/llap/runtime_stats_hs2.q.out | 12 +- .../results/clientpositive/llap/semijoin.q.out | 4 +- .../clientpositive/llap/smb_mapjoin_4.q.out | 12 +- .../clientpositive/llap/smb_mapjoin_5.q.out | 12 +- .../llap/tez_dynpart_hashjoin_1.q.out | 4 + .../llap/tez_dynpart_hashjoin_3.q.out | 109 + .../llap/tez_input_counters.q.out | 32 +- .../llap/tez_vector_dynpart_hashjoin_1.q.out | 3 + .../results/clientpositive/llap/union7.q.out | 16 +- .../llap/vector_aggregate_9.q.out | 9 +- .../llap/vector_aggregate_without_gby.q.out | 3 +- .../llap/vector_auto_smb_mapjoin_14.q.out | 45 + .../llap/vector_between_columns.q.out | 6 + .../llap/vector_binary_join_groupby.q.out | 2 + .../llap/vector_case_when_2.q.out | 8 +- .../llap/vector_char_mapjoin1.q.out | 3 + .../clientpositive/llap/vector_coalesce_3.q.out | 15 +- .../clientpositive/llap/vector_coalesce_4.q.out | 4 +- .../llap/vector_complex_all.q.out | 18 +- .../llap/vector_complex_join.q.out | 3 + .../clientpositive/llap/vector_date_1.q.out | 20 +- .../clientpositive/llap/vector_decimal_1.q.out | 27 +- .../llap/vector_decimal_10_0.q.out | 6 +- .../clientpositive/llap/vector_decimal_2.q.out | 48 +- .../clientpositive/llap/vector_decimal_6.q.out | 16 +- .../llap/vector_decimal_aggregate.q.out | 16 +- .../llap/vector_decimal_expressions.q.out | 6 +- .../llap/vector_decimal_mapjoin.q.out | 21 +- .../llap/vector_decimal_precision.q.out | 6 +- .../llap/vector_decimal_round.q.out | 24 +- .../llap/vector_decimal_round_2.q.out | 16 +- .../llap/vector_decimal_trailing.q.out | 4 +- .../llap/vector_decimal_udf.q.out | 50 +- .../llap/vector_full_outer_join.q.out | 1228 +++ .../llap/vector_fullouter_mapjoin_1_fast.q.out | 3945 +++++++ .../vector_fullouter_mapjoin_1_optimized.q.out | 3945 +++++++ ...fullouter_mapjoin_1_optimized_passthru.q.out | 3923 +++++++ .../llap/vector_groupby_cube1.q.out | 48 +- .../llap/vector_groupby_grouping_id1.q.out | 18 +- .../llap/vector_groupby_grouping_id2.q.out | 138 +- .../llap/vector_groupby_grouping_id3.q.out | 8 +- .../llap/vector_groupby_grouping_sets1.q.out | 26 +- .../llap/vector_groupby_grouping_sets2.q.out | 28 +- .../llap/vector_groupby_grouping_sets3.q.out | 4 +- .../vector_groupby_grouping_sets3_dec.q.out | 16 +- .../llap/vector_groupby_grouping_sets4.q.out | 61 +- .../llap/vector_groupby_grouping_sets5.q.out | 25 +- .../llap/vector_groupby_grouping_sets6.q.out | 6 +- .../vector_groupby_grouping_sets_grouping.q.out | 53 +- .../vector_groupby_grouping_sets_limit.q.out | 44 +- .../llap/vector_groupby_grouping_window.q.out | 10 +- .../llap/vector_groupby_mapjoin.q.out | 2 + .../llap/vector_groupby_rollup1.q.out | 40 +- .../llap/vector_groupby_sort_11.q.out | 21 +- .../llap/vector_groupby_sort_8.q.out | 3 +- .../llap/vector_include_no_sel.q.out | 3 + .../clientpositive/llap/vector_inner_join.q.out | 134 +- .../llap/vector_interval_mapjoin.q.out | 1 + .../clientpositive/llap/vector_join30.q.out | 2047 +++- .../llap/vector_join_filters.q.out | 868 +- .../clientpositive/llap/vector_join_nulls.q.out | 823 +- .../llap/vector_left_outer_join2.q.out | 120 +- .../llap/vector_leftsemi_mapjoin.q.out | 9583 +++++++++++------- .../clientpositive/llap/vector_like_2.q.out | 4 +- .../llap/vector_llap_io_data_conversion.q.out | 3 +- .../llap/vector_llap_text_1.q.out | 21 +- .../llap/vector_mapjoin_reduce.q.out | 4 + .../llap/vector_mr_diff_schema_alias.q.out | 6 + .../llap/vector_nullsafe_join.q.out | 298 +- .../llap/vector_orc_nested_column_pruning.q.out | 15 + .../clientpositive/llap/vector_order_null.q.out | 33 +- .../llap/vector_outer_join0.q.out | 34 +- .../llap/vector_outer_join1.q.out | 56 +- .../llap/vector_outer_join2.q.out | 27 +- .../llap/vector_outer_reference_windowed.q.out | 120 +- .../clientpositive/llap/vector_ptf_1.q.out | 6 +- .../llap/vector_ptf_part_simple.q.out | 156 +- .../vector_reduce_groupby_duplicate_cols.q.out | 10 +- .../llap/vector_reuse_scratchcols.q.out | 6 +- .../clientpositive/llap/vector_topnkey.q.out | 24 +- .../clientpositive/llap/vector_udf1.q.out | 6 +- .../clientpositive/llap/vector_windowing.q.out | 346 +- .../llap/vector_windowing_expressions.q.out | 55 +- .../llap/vector_windowing_gby.q.out | 17 +- .../llap/vector_windowing_gby2.q.out | 58 +- .../vector_windowing_multipartitioning.q.out | 60 +- .../llap/vector_windowing_navfn.q.out | 57 +- .../llap/vector_windowing_order_null.q.out | 45 +- .../vector_windowing_range_multiorder.q.out | 57 +- .../llap/vector_windowing_rank.q.out | 52 +- .../llap/vector_windowing_streaming.q.out | 5 +- .../llap/vector_windowing_windowspec.q.out | 60 +- .../llap/vector_windowing_windowspec4.q.out | 5 +- .../clientpositive/llap/vectorization_0.q.out | 42 +- .../clientpositive/llap/vectorization_1.q.out | 3 +- .../clientpositive/llap/vectorization_12.q.out | 8 +- .../clientpositive/llap/vectorization_13.q.out | 7 +- .../clientpositive/llap/vectorization_14.q.out | 8 +- .../clientpositive/llap/vectorization_15.q.out | 4 +- .../clientpositive/llap/vectorization_16.q.out | 4 +- .../clientpositive/llap/vectorization_17.q.out | 4 +- .../clientpositive/llap/vectorization_2.q.out | 3 +- .../clientpositive/llap/vectorization_3.q.out | 3 +- .../clientpositive/llap/vectorization_4.q.out | 3 +- .../clientpositive/llap/vectorization_5.q.out | 3 +- .../clientpositive/llap/vectorization_7.q.out | 3 +- .../clientpositive/llap/vectorization_8.q.out | 3 +- .../clientpositive/llap/vectorization_9.q.out | 4 +- .../llap/vectorization_limit.q.out | 30 +- .../llap/vectorization_nested_udf.q.out | 3 +- .../llap/vectorized_bucketmapjoin1.q.out | 9 + .../clientpositive/llap/vectorized_case.q.out | 6 +- .../llap/vectorized_distinct_gby.q.out | 9 +- .../vectorized_dynamic_partition_pruning.q.out | 87 + .../vectorized_dynamic_semijoin_reduction.q.out | 18 + ...vectorized_dynamic_semijoin_reduction2.q.out | 15 +- .../clientpositive/llap/vectorized_join46.q.out | 731 +- .../llap/vectorized_mapjoin.q.out | 1 + .../llap/vectorized_mapjoin3.q.out | 48 +- .../clientpositive/llap/vectorized_ptf.q.out | 136 +- .../llap/vectorized_shufflejoin.q.out | 3 + .../llap/vectorized_timestamp.q.out | 9 +- .../test/results/clientpositive/mapjoin2.q.out | 532 + .../test/results/clientpositive/mapjoin46.q.out | 907 +- .../test/results/clientpositive/mapjoin47.q.out | 4 +- .../test/results/clientpositive/mergejoin.q.out | 2 +- .../clientpositive/mergejoins_mixed.q.out | 8 +- .../results/clientpositive/optional_outer.q.out | 4 +- .../parquet_vectorization_0.q.out | 119 +- .../parquet_vectorization_1.q.out | 11 +- .../parquet_vectorization_10.q.out | 11 +- .../parquet_vectorization_11.q.out | 11 +- .../parquet_vectorization_12.q.out | 18 +- .../parquet_vectorization_13.q.out | 18 +- .../parquet_vectorization_14.q.out | 18 +- .../parquet_vectorization_15.q.out | 18 +- .../parquet_vectorization_16.q.out | 11 +- .../parquet_vectorization_17.q.out | 11 +- .../parquet_vectorization_2.q.out | 11 +- .../parquet_vectorization_3.q.out | 11 +- .../parquet_vectorization_4.q.out | 11 +- .../parquet_vectorization_5.q.out | 11 +- .../parquet_vectorization_6.q.out | 11 +- .../parquet_vectorization_7.q.out | 11 +- .../parquet_vectorization_8.q.out | 11 +- .../parquet_vectorization_9.q.out | 11 +- .../parquet_vectorization_limit.q.out | 59 +- .../clientpositive/perf/spark/query51.q.out | 2 +- .../clientpositive/perf/spark/query97.q.out | 2 +- .../clientpositive/skewjoin_mapjoin2.q.out | 4 +- .../results/clientpositive/skewjoinopt3.q.out | 4 +- .../results/clientpositive/smb_mapjoin_1.q.out | 4 +- .../results/clientpositive/smb_mapjoin_2.q.out | 4 +- .../results/clientpositive/smb_mapjoin_3.q.out | 4 +- .../results/clientpositive/smb_mapjoin_46.q.out | 8 +- .../results/clientpositive/smb_mapjoin_47.q.out | 4 +- .../results/clientpositive/smb_mapjoin_7.q.out | 2 +- .../spark/annotate_stats_join.q.out | 2 +- .../clientpositive/spark/auto_join14.q.out | 2 +- .../clientpositive/spark/auto_join18.q.out | 2 +- .../spark/auto_join18_multi_distinct.q.out | 2 +- .../clientpositive/spark/auto_join6.q.out | 2 +- .../clientpositive/spark/auto_join7.q.out | 2 +- .../spark/auto_join_filters.q.out | 377 + .../clientpositive/spark/auto_join_nulls.q.out | 129 + .../spark/bucket_map_join_tez1.q.out | 3506 +++---- .../results/clientpositive/spark/join18.q.out | 2 +- .../spark/join18_multi_distinct.q.out | 2 +- .../results/clientpositive/spark/join32.q.out | 166 +- .../results/clientpositive/spark/join33.q.out | 166 +- .../results/clientpositive/spark/join6.q.out | 2 +- .../results/clientpositive/spark/join7.q.out | 2 +- .../spark/join_filters_overlap.q.out | 2 +- .../clientpositive/spark/mergejoins_mixed.q.out | 8 +- .../spark/parquet_vectorization_0.q.out | 194 +- .../spark/parquet_vectorization_1.q.out | 20 +- .../spark/parquet_vectorization_10.q.out | 11 +- .../spark/parquet_vectorization_11.q.out | 11 +- .../spark/parquet_vectorization_12.q.out | 29 +- .../spark/parquet_vectorization_13.q.out | 29 +- .../spark/parquet_vectorization_14.q.out | 29 +- .../spark/parquet_vectorization_15.q.out | 13 +- .../spark/parquet_vectorization_16.q.out | 20 +- .../spark/parquet_vectorization_17.q.out | 20 +- .../spark/parquet_vectorization_2.q.out | 20 +- .../spark/parquet_vectorization_3.q.out | 20 +- .../spark/parquet_vectorization_4.q.out | 20 +- .../spark/parquet_vectorization_5.q.out | 20 +- .../spark/parquet_vectorization_6.q.out | 11 +- .../spark/parquet_vectorization_7.q.out | 20 +- .../spark/parquet_vectorization_8.q.out | 20 +- .../spark/parquet_vectorization_9.q.out | 20 +- .../spark/parquet_vectorization_limit.q.out | 115 +- .../results/clientpositive/spark/semijoin.q.out | 4 +- .../clientpositive/spark/skewjoinopt3.q.out | 4 +- .../clientpositive/spark/smb_mapjoin_1.q.out | 4 +- .../clientpositive/spark/smb_mapjoin_2.q.out | 4 +- .../clientpositive/spark/smb_mapjoin_3.q.out | 4 +- .../clientpositive/spark/smb_mapjoin_4.q.out | 12 +- .../clientpositive/spark/smb_mapjoin_5.q.out | 12 +- .../clientpositive/spark/smb_mapjoin_7.q.out | 2 +- ...k_vectorized_dynamic_partition_pruning.q.out | 389 +- .../results/clientpositive/spark/union14.q.out | 18 +- .../results/clientpositive/spark/union7.q.out | 18 +- .../clientpositive/spark/union_null.q.out | 10 +- .../clientpositive/spark/union_view.q.out | 4 +- .../spark/vector_decimal_aggregate.q.out | 16 +- .../spark/vector_inner_join.q.out | 102 +- .../spark/vector_mapjoin_reduce.q.out | 4 + .../spark/vector_outer_join0.q.out | 26 +- .../spark/vector_outer_join1.q.out | 43 +- .../spark/vector_outer_join2.q.out | 21 +- .../clientpositive/spark/vectorization_0.q.out | 42 +- .../clientpositive/spark/vectorization_1.q.out | 3 +- .../clientpositive/spark/vectorization_12.q.out | 8 +- .../clientpositive/spark/vectorization_13.q.out | 7 +- .../clientpositive/spark/vectorization_14.q.out | 8 +- .../clientpositive/spark/vectorization_15.q.out | 4 +- .../clientpositive/spark/vectorization_16.q.out | 4 +- .../clientpositive/spark/vectorization_17.q.out | 4 +- .../clientpositive/spark/vectorization_2.q.out | 3 +- .../clientpositive/spark/vectorization_3.q.out | 3 +- .../clientpositive/spark/vectorization_4.q.out | 3 +- .../clientpositive/spark/vectorization_5.q.out | 3 +- .../clientpositive/spark/vectorization_9.q.out | 4 +- .../spark/vectorization_nested_udf.q.out | 3 +- .../clientpositive/spark/vectorized_case.q.out | 6 +- .../spark/vectorized_mapjoin.q.out | 1 + .../clientpositive/spark/vectorized_ptf.q.out | 124 +- .../clientpositive/stat_estimate_drill.q.out | 40 +- .../stat_estimate_related_col.q.out | 38 +- .../clientpositive/tez/explainanalyze_3.q.out | 30 +- .../clientpositive/tez/explainanalyze_4.q.out | 6 +- .../results/clientpositive/union_null.q.out | 12 +- .../results/clientpositive/union_offcbo.q.out | 12 +- .../vector_left_outer_join2.q.out | 70 +- .../clientpositive/vectorized_join46_mr.q.out | 2050 ++++ .../apache/hadoop/hive/serde2/VerifyFast.java | 2 - .../exec/vector/TestTimestampColumnVector.java | 2 - 495 files changed, 51405 insertions(+), 11939 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java ---------------------------------------------------------------------- diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index 0bfee2e..9d41790 100644 --- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -1679,7 +1679,15 @@ public class HiveConf extends Configuration { "joins unnecessary memory will be allocated and then trimmed."), HIVEHYBRIDGRACEHASHJOINBLOOMFILTER("hive.mapjoin.hybridgrace.bloomfilter", true, "Whether to " + "use BloomFilter in Hybrid grace hash join to minimize unnecessary spilling."), - + HIVEMAPJOINFULLOUTER("hive.mapjoin.full.outer", true, + "Whether to use MapJoin for FULL OUTER JOINs."), + HIVE_TEST_MAPJOINFULLOUTER_OVERRIDE( + "hive.test.mapjoin.full.outer.override", + "none", new StringSet("none", "enable", "disable"), + "internal use only, used to override the hive.mapjoin.full.outer\n" + + "setting. Using enable will force it on and disable will force it off.\n" + + "The default none is do nothing, of course", + true), HIVESMBJOINCACHEROWS("hive.smbjoin.cache.rows", 10000, "How many rows with the same key value should be cached in memory per smb joined table."), HIVEGROUPBYMAPINTERVAL("hive.groupby.mapaggr.checkinterval", 100000, http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_long_big_1a.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_long_big_1a.txt b/data/files/fullouter_long_big_1a.txt new file mode 100644 index 0000000..8cf831f --- /dev/null +++ b/data/files/fullouter_long_big_1a.txt @@ -0,0 +1,11 @@ +-5310365297525168078 +-6187919478609154811 +968819023021777205 +3313583664488247651 +-5206670856103795573 +\N +-6187919478609154811 +1569543799237464101 +-6187919478609154811 +-8460550397108077433 +-6187919478609154811 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_long_big_1a_nonull.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_long_big_1a_nonull.txt b/data/files/fullouter_long_big_1a_nonull.txt new file mode 100644 index 0000000..b2325ad --- /dev/null +++ b/data/files/fullouter_long_big_1a_nonull.txt @@ -0,0 +1,10 @@ +1569543799237464101 +-6187919478609154811 +968819023021777205 +-8460550397108077433 +-6187919478609154811 +-5310365297525168078 +-6187919478609154811 +-5206670856103795573 +3313583664488247651 +-6187919478609154811 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_long_big_1b.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_long_big_1b.txt b/data/files/fullouter_long_big_1b.txt new file mode 100644 index 0000000..87c2b3c --- /dev/null +++ b/data/files/fullouter_long_big_1b.txt @@ -0,0 +1,13 @@ +\N +31713 +31713 +31713 +31713 +32030 +31713 +-25394 +31713 +31713 +31713 +31713 +31713 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_long_big_1c.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_long_big_1c.txt b/data/files/fullouter_long_big_1c.txt new file mode 100644 index 0000000..2d13c26 --- /dev/null +++ b/data/files/fullouter_long_big_1c.txt @@ -0,0 +1,11 @@ +1928928239,\N +-1437463633,YYXPPCH +-1437463633,TKTKGVGFW +1725068083,MKSCCE +1928928239,\N +\N,ABBZ +1928928239,AMKTIWQ +-1437463633,JU +1928928239,VAQHVRI +-1437463633,SOWDWMS +-1437463633,\N http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_long_big_1d.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_long_big_1d.txt b/data/files/fullouter_long_big_1d.txt new file mode 100644 index 0000000..4137f67 --- /dev/null +++ b/data/files/fullouter_long_big_1d.txt @@ -0,0 +1,12 @@ +-702028721 +-702028721 +-1780951928 +-670834064 +-814597051 +\N +-814597051 +-814597051 +-702028721 +-2038654700 +\N +-814597051 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_long_small_1a.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_long_small_1a.txt b/data/files/fullouter_long_small_1a.txt new file mode 100644 index 0000000..45d5825 --- /dev/null +++ b/data/files/fullouter_long_small_1a.txt @@ -0,0 +1,54 @@ +-1339636982994067311,2000-06-20 +-2575185053386712613,2105-01-21 +\N,2098-02-10 +-6784441713807772877,1845-02-16 +\N,2024-01-23 +-4224290881682877258,2185-07-08 +-614848861623872247,2101-05-25 +-2098090254092150988,2163-05-26 +434940853096155515,2275-02-08 +3873405809071478736,2034-06-09 +-2184423060953067642,1880-10-06 +7297177530102477725,1921-05-11 +7937120928560087303,2083-03-14 +\N,2242-02-08 +-2688622006344936758,2129-01-11 +214451696109242839,1977-01-04 +-4961171400048338491,2196-08-10 +4436884039838843341,2031-05-23 +2438535236662373438,1916-01-10 +6049335087268933751,2282-06-09 +8755921538765428593,1827-05-01 +5252407779338300447,2039-03-10 +-2184423060953067642,1853-07-06 +7297177530102477725,1926-04-12 +-2098090254092150988,1817-03-12 +-5754527700632192146,1958-07-15 +-614848861623872247,2112-11-09 +5246983111579595707,1817-07-01 +-2098090254092150988,2219-12-23 +-5706981533666803767,2151-06-09 +7297177530102477725,2125-08-26 +-7707546703881534780,2134-08-20 +214451696109242839,2179-04-18 +3845554233155411208,1805-11-10 +3905351789241845882,2045-12-05 +2438535236662373438,2026-06-23 +-2688622006344936758,1948-10-15 +6049335087268933751,2086-12-17 +-2575185053386712613,1809-07-12 +-327698348664467755,2222-10-15 +-4224290881682877258,1813-05-17 +3873405809071478736,2164-04-23 +-5706981533666803767,1800-09-20 +214451696109242839,1855-05-12 +2438535236662373438,1881-09-16 +5252407779338300447,2042-04-26 +-3655445881497026796,2108-08-16 +3905351789241845882,1866-07-28 +-6784441713807772877,2054-06-17 +5246983111579595707,2260-05-11 +-1339636982994067311,2008-12-03 +3873405809071478736,1918-11-20 +-4224290881682877258,2120-01-16 +3845554233155411208,2264-04-05 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_long_small_1a_nonull.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_long_small_1a_nonull.txt b/data/files/fullouter_long_small_1a_nonull.txt new file mode 100644 index 0000000..bf94d5a --- /dev/null +++ b/data/files/fullouter_long_small_1a_nonull.txt @@ -0,0 +1,51 @@ +5246983111579595707,1817-07-01 +4436884039838843341,2031-05-23 +-4224290881682877258,1813-05-17 +-4961171400048338491,2196-08-10 +-2575185053386712613,2105-01-21 +5252407779338300447,2042-04-26 +-614848861623872247,2101-05-25 +-2098090254092150988,2163-05-26 +2438535236662373438,1881-09-16 +214451696109242839,2179-04-18 +2438535236662373438,2026-06-23 +-2184423060953067642,1853-07-06 +3873405809071478736,2164-04-23 +214451696109242839,1855-05-12 +-6784441713807772877,1845-02-16 +-2688622006344936758,1948-10-15 +7297177530102477725,1921-05-11 +-2575185053386712613,1809-07-12 +3905351789241845882,2045-12-05 +3845554233155411208,1805-11-10 +-3655445881497026796,2108-08-16 +3905351789241845882,1866-07-28 +-1339636982994067311,2008-12-03 +7297177530102477725,2125-08-26 +7297177530102477725,1926-04-12 +-5706981533666803767,1800-09-20 +6049335087268933751,2282-06-09 +3845554233155411208,2264-04-05 +8755921538765428593,1827-05-01 +-1339636982994067311,2000-06-20 +-2098090254092150988,1817-03-12 +3873405809071478736,2034-06-09 +2438535236662373438,1916-01-10 +5246983111579595707,2260-05-11 +-5706981533666803767,2151-06-09 +-614848861623872247,2112-11-09 +-327698348664467755,2222-10-15 +-2184423060953067642,1880-10-06 +434940853096155515,2275-02-08 +-4224290881682877258,2120-01-16 +-5754527700632192146,1958-07-15 +-4224290881682877258,2185-07-08 +-2098090254092150988,2219-12-23 +-7707546703881534780,2134-08-20 +214451696109242839,1977-01-04 +-2688622006344936758,2129-01-11 +7937120928560087303,2083-03-14 +-6784441713807772877,2054-06-17 +3873405809071478736,1918-11-20 +6049335087268933751,2086-12-17 +5252407779338300447,2039-03-10 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_long_small_1b.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_long_small_1b.txt b/data/files/fullouter_long_small_1b.txt new file mode 100644 index 0000000..7d45fe4 --- /dev/null +++ b/data/files/fullouter_long_small_1b.txt @@ -0,0 +1,72 @@ +2748,2298-06-20 21:01:24 +11232,2533-11-26 12:22:18 +\N,2124-05-07 15:01:19.021 +3198,2428-06-13 16:21:33.955 +-7624,2219-12-03 17:07:19 +24870,2752-12-26 12:32:23.03685163 +14865,2943-03-21 00:42:10.505 +-8624,2644-05-04 04:45:07.839 +-30059,2269-05-04 21:23:44.000339209 +14865,2079-10-06 16:54:35.117 +-8435,2834-12-06 16:38:18.901 +10553,2168-05-05 21:10:59.000152113 +-8624,2282-03-28 07:58:16 +-15361,2219-09-15 20:15:03.000169887 +-14172,1918-09-13 11:44:24.496926711 +26484,1919-03-04 07:32:37.519 +-14172,2355-01-14 23:23:34 +-24775,2920-08-06 15:58:28.261059449 +-23117,2037-01-05 21:52:30.685952759 +17125,2236-07-14 01:54:40.927230276 +21181,2253-03-12 11:55:48.332 +-7373,2662-10-28 12:07:02.000526564 +-8087,2550-06-26 23:57:42.588007617 +29407,2385-12-14 06:03:39.597 +21181,2434-02-20 00:46:29.633 +-14172,2809-06-07 02:10:58 +13598,2421-05-20 14:18:31.000264698 +2748,2759-02-13 18:04:36.000307355 +-22422,1949-03-13 00:07:53.075 +26484,2953-03-10 02:05:26.508953676 +4510,2777-03-24 03:44:28.000169723 +-24775,2035-03-26 08:11:23.375224153 +-30059,2713-10-13 09:28:49 +-20517,2774-06-23 12:04:06.5 +11232,2038-04-06 14:53:59 +32030,2101-09-09 07:35:05.145 +-29600,2333-11-02 15:06:30 +-30306,2619-05-24 10:35:58.000774018 +-7624,2289-08-28 00:14:34 +-4279,2470-08-12 11:21:14.000955747 +-4279,2214-09-10 03:53:06 +-26998,2428-12-26 07:53:45.96925825 +17125,2629-11-15 15:34:52 +-8087,2923-07-02 11:40:26.115 +2632,2561-12-15 15:42:27 +21436,2696-05-08 05:19:24.112 +\N,2971-08-07 12:02:11.000948152 +-7624,2623-03-20 03:18:45.00006465 +-26998,2926-07-18 09:02:46.077 +11232,2507-01-27 22:04:22.49661421 +-30059,2420-12-10 22:12:30 +-15427,2355-01-08 12:34:11.617 +3198,2223-04-14 13:20:49 +-19167,2319-08-26 11:07:11.268 +14865,2220-02-28 03:41:36 +-20517,2233-12-20 04:06:56.666522799 +-15427,2046-06-07 22:58:40.728 +2748,2862-04-20 13:12:39.482805897 +-8435,2642-02-07 11:45:04.353231638 +-19167,2230-12-22 20:25:39.000242111 +-15427,2023-11-09 19:31:21 +13598,2909-06-25 23:22:50 +21436,2526-09-22 23:44:55 +-15361,2434-08-13 20:37:07.000172979 +4510,2293-01-17 13:47:41.00001006 +-8624,2120-02-15 15:36:40.000758423 +-22422,2337-07-19 06:33:02.000353352 +-26998,2268-08-04 12:48:11.848006292 +-22422,2982-12-28 06:30:26.000883228 +\N,2933-06-20 11:48:09.000839488 +3198,2736-12-20 03:59:50.343550301 +-20824,2478-11-05 00:28:05 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_long_small_1c.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_long_small_1c.txt b/data/files/fullouter_long_small_1c.txt new file mode 100644 index 0000000..ff323d3 --- /dev/null +++ b/data/files/fullouter_long_small_1c.txt @@ -0,0 +1,81 @@ +-1093006502,-69.55665828 +452719211,83003.43722 +1242586043,71.1485 +-934092157,-7843850349.57130038 +294598722,-3542.6 +284554389,5.727146 +90660785,12590.288613 +-99948814,-38076694.3981 +466567142,-9763217822.129028 +1909136587,-8610.078036935181 +1242586043,-4 +\N,1.089120893565337 +1039864870,987601.57 +-466171792,0 +-1681455031,-6.4543 +1755897735,-39.965207 +1585021913,745222.66808954 +448130683,-4302.485366846491 +193709887,0.8 +-424713789,0.48 +1585021913,607.22747 +-1250662632,5454127198.951479 +294598722,-9377326244.444 +193709887,-19889.83 +1039864870,0.7 +1242586043,-749975924224.63 +-1250662632,-544.554649 +-1740848088,-9.157 +-369457052,7.7 +-369457052,560.11907883090455 +90660785,-4564.517185 +466567142,-58810.60586 +466567142,196.5785295398584 +1738753776,1525.280459649262 +1816559437,-1035.7009 +-1490239076,92253.232096 +1039864870,94.04 +560745412,678.25 +-466171792,4227.5344 +1561921421,53050.55 +-99948814,-96386.438 +1519948464,152 +1719049112,-7888197 +-793950320,-16 +-466171792,69.9 +1738753776,-99817635066320.2416 +1091836730,0.02 +891262439,-0.04 +452719211,3020.2938930744636 +-2048404259,3939387044.1 +698032489,-330457.4292625839 +-1197550983,-0.5588796922 +-2123273881,-55.89198 +-2048404259,-0.3222960446251 +1585021913,-5762331.06697112 +1785750809,47443.115 +1909136587,181.07681535944 +1801735854,-1760956929364.267 +\N,4.26165227 +1801735854,-438541294.7 +150678276,-8278 +1479580778,92077343080.7 +1091836730,-5017.14 +193709887,-0.5663 +-1681455031,-11105.372477 +-1250662632,93104 +-1197550983,0.1 +\N,682070836.2649603 +-1197550983,71852.8338674412613 +1561921421,-5.405 +-1740848088,0.506394259 +150678276,15989394.8436 +-793950320,-0.1 +-1740848088,901.441 +-477147437,6 +-1264372462,0.883 +-2123273881,3.959 +-1264372462,-6993985240226 +-1264372462,-899 +-243940373,-97176129669.654953 +-243940373,-583.258 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_long_small_1d.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_long_small_1d.txt b/data/files/fullouter_long_small_1d.txt new file mode 100644 index 0000000..9778d3f --- /dev/null +++ b/data/files/fullouter_long_small_1d.txt @@ -0,0 +1,39 @@ +533298451 +1164387380 +1614287784 +1635405412 +-1912571616 +-894799664 +-1210744742 +-1014271154 +-747044796 +-1003639073 +436878811 +-1323620496 +-1379355738 +-1712018127 +246169862 +1431997749 +670834064 +1780951928 +-707688773 +1997943409 +1372592319 +-932176731 +162858059 +-683339273 +-497171161 +699863556 +1685473722 +41376947 +-1036083124 +1825107160 +-2038654700 +2119085509 +260588085 +-1792852276 +1831520491 +103640700 +\N +699007128 +1840266070 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_multikey_big_1a.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_multikey_big_1a.txt b/data/files/fullouter_multikey_big_1a.txt new file mode 100644 index 0000000..fe38c7b --- /dev/null +++ b/data/files/fullouter_multikey_big_1a.txt @@ -0,0 +1,13 @@ +22767,-1969080993 +-17582,-1730236061 +3556,\N +-17582,1082230084 +-17582,827141667 +1499,371855128 +-17582,9637312 +\N,1082230084 +-6131,-1969080993 +3556,-1969080993 +\N,\N +-18222,-1969080993 +-17582,267529350 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_multikey_big_1a_nonull.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_multikey_big_1a_nonull.txt b/data/files/fullouter_multikey_big_1a_nonull.txt new file mode 100644 index 0000000..40e84b0 --- /dev/null +++ b/data/files/fullouter_multikey_big_1a_nonull.txt @@ -0,0 +1,10 @@ +-17582,1082230084 +22767,-1969080993 +-17582,827141667 +-17582,-1730236061 +3556,-1969080993 +-6131,-1969080993 +-18222,-1969080993 +1499,371855128 +-17582,267529350 +-17582,9637312 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_multikey_big_1b.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_multikey_big_1b.txt b/data/files/fullouter_multikey_big_1b.txt new file mode 100644 index 0000000..40cfb9a --- /dev/null +++ b/data/files/fullouter_multikey_big_1b.txt @@ -0,0 +1,17 @@ +2061-12-19 22:10:32.000628309,21635,ANCO +\N,21635,ANCO +2686-05-23 07:46:46.565832918,13212,NCYBDW +2082-07-14 04:00:40.695380469,12556,NCYBDW +2188-06-04 15:03:14.963259704,9468,AAA +2608-02-23 23:44:02.546440891,26184,NCYBDW +2093-04-10 23:36:54.846,\N,\N +2898-10-01 22:27:02.000871113,10361,NCYBDW +2306-06-21 11:02:00.143124239,1446,\N +\N,-6909,\N +\N,\N,\N +2306-06-21 11:02:00.143124239,-6909,NCYBDW +2093-04-10 23:36:54.846,1446,GHZVPWFO +\N,\N,CCWYD +2686-05-23 07:46:46.565832918,\N,GHZVPWFO +2093-04-10 23:36:54.846,28996,Q +2299-11-15 16:41:30.401,-31077,NCYBDW http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_multikey_small_1a.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_multikey_small_1a.txt b/data/files/fullouter_multikey_small_1a.txt new file mode 100644 index 0000000..4e0742c --- /dev/null +++ b/data/files/fullouter_multikey_small_1a.txt @@ -0,0 +1,92 @@ +23015,258882280 +23015,-276888585 +21186,-586336015 +-22311,-2055239583 +3412,-1249487623 +\N,1082230084 +20156,-1618478138 +-17788,-738743861 +-24206,-1456409156 +30353,2044473567 +20969,-1995259010 +-23457,-63842445 +3412,-2081156563 +-6131,-1969080993 +23015,-252525791 +30353,1364268303 +23015,564751472 +15404,1078466156 +4586,-586336015 +-4117,-1386947816 +-26894,-63842445 +-17788,-1361776766 +-7386,-2112062470 +23015,-1893013623 +30353,1241923267 +-24206,641361618 +-28129,-2055239583 +-20125,-1995259010 +16166,931172175 +31443,-1968665833 +-28313,837320573 +11460,1078466156 +15061,-63842445 +13672,-63842445 +14400,-825652334 +-7386,100736776 +26944,-1995259010 +-11868,97203778 +12089,-63842445 +-28137,-63842445 +3412,1253976194 +-980,2009785365 +16696,-63842445 +-11868,930596435 +4902,1078466156 +-17582,267529350 +-12252,964377504 +20156,963883665 +-11868,1658440922 +4779,-1995259010 +-7386,-1635102480 +-28313,51228026 +-11868,1052120431 +-980,-270600267 +-20900,1078466156 +\N,\N +20156,1165375499 +30353,-1507157031 +3412,-1196037018 +22934,-1695419330 +30353,105613996 +-17788,-872691214 +-980,-333603940 +30353,-1011627089 +-11868,-3536499 +-2407,1078466156 +23015,-217613200 +-28313,-706104224 +-980,712692345 +-11868,1456809245 +-17788,528419995 +-11868,-915441041 +-980,628784462 +30353,-1007182618 +23015,-696928205 +-980,356970043 +23015,-893234501 +-980,-465544127 +-5734,1078466156 +-980,-801821285 +26738,-2055239583 +8177,-1995259010 +-11868,1318114822 +3890,1411429004 +-6061,-586336015 +3412,-2132472060 +-15212,-2055239583 +-12252,1956403781 +5957,-1995259010 +-1787,-63842445 +20156,1855042153 +-980,1310479628 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_multikey_small_1a_nonull.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_multikey_small_1a_nonull.txt b/data/files/fullouter_multikey_small_1a_nonull.txt new file mode 100644 index 0000000..2a8b9a1 --- /dev/null +++ b/data/files/fullouter_multikey_small_1a_nonull.txt @@ -0,0 +1,90 @@ +16696,-63842445 +4586,-586336015 +26738,-2055239583 +-17788,-738743861 +-28313,-706104224 +-23457,-63842445 +-20900,1078466156 +-12252,964377504 +-28313,51228026 +-11868,-3536499 +11460,1078466156 +26944,-1995259010 +20156,1855042153 +-11868,97203778 +15061,-63842445 +-17788,528419995 +-26894,-63842445 +-28313,837320573 +20156,963883665 +-15212,-2055239583 +5957,-1995259010 +30353,-1011627089 +3890,1411429004 +-980,-333603940 +13672,-63842445 +-980,628784462 +23015,-252525791 +-11868,1052120431 +-980,356970043 +23015,-217613200 +-6061,-586336015 +-5734,1078466156 +-11868,1318114822 +23015,258882280 +-2407,1078466156 +12089,-63842445 +3412,-2132472060 +-28129,-2055239583 +-980,-270600267 +16166,931172175 +-7386,100736776 +4902,1078466156 +20969,-1995259010 +22934,-1695419330 +3412,-1249487623 +3412,1253976194 +21186,-586336015 +8177,-1995259010 +-7386,-1635102480 +-11868,1456809245 +-20125,-1995259010 +-980,-801821285 +-980,1310479628 +23015,564751472 +23015,-893234501 +4779,-1995259010 +-980,2009785365 +-24206,641361618 +30353,-1507157031 +14400,-825652334 +3412,-2081156563 +20156,-1618478138 +31443,-1968665833 +-22311,-2055239583 +30353,1241923267 +-11868,930596435 +-17788,-1361776766 +-24206,-1456409156 +-7386,-2112062470 +30353,1364268303 +23015,-1893013623 +-17788,-872691214 +30353,2044473567 +-28137,-63842445 +30353,105613996 +-6131,-1969080993 +-17582,267529350 +23015,-276888585 +-12252,1956403781 +23015,-696928205 +-11868,1658440922 +-1787,-63842445 +-11868,-915441041 +-980,-465544127 +30353,-1007182618 +-980,712692345 +20156,1165375499 +3412,-1196037018 +15404,1078466156 +-4117,-1386947816 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_multikey_small_1b.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_multikey_small_1b.txt b/data/files/fullouter_multikey_small_1b.txt new file mode 100644 index 0000000..b56a3f7 --- /dev/null +++ b/data/files/fullouter_multikey_small_1b.txt @@ -0,0 +1,118 @@ +2304-12-15 15:31:16,11101,YJCKKCR,-0.2 +2018-11-25 22:27:55.84,-12202,VBDBM,7506645.9537 +1957-03-06 09:57:31,-26373,NXLNNSO,2 +2332-06-14 07:02:42.32,-26373,XFFFDTQ,56845106806308.9 +2535-03-01 05:04:49.000525883,23663,ALIQKNXHE,-0.1665691 +2629-04-07 01:54:11,-6776,WGGFVFTW,6.8012851708 +2266-09-26 06:27:29.000284762,20223,EDYJJN,14 +2969-01-23 14:08:04.000667259,-18138,VDPN,8924831210.42768019 +2861-05-27 07:13:01.000848622,-19598,WKPXNLXS,29399 +2301-06-03 17:16:19,15332,ZVEUKC,0.5 +1980-09-13 19:57:15,\N,M,57650.7723 +2304-12-15 15:31:16,1301,T,-0.8 +2461-03-09 09:54:45.000982385,-16454,ZSMB,-991.43605 +2044-05-02 07:00:03.35,-8751,ZSMB,-453797242.029791752 +2409-09-23 10:33:27,2638,XSXR,-9926693851 +1941-10-16 02:19:36.000423663,-24459,AO,-821445414.4579712 +2512-10-06 03:03:03,-3465,VZQ,-49.51219 +2971-02-14 09:13:19,-16605,BVACIRP,-5.751278023 +2075-10-25 20:32:40.000792874,\N,\N,226612651968.36076 +2073-03-21 15:32:57.617920888,26425,MPRACIRYW,5 +2969-01-23 14:08:04.000667259,14500,WXLTRFQP,-23.8198 +2898-12-18 03:37:17,-24459,MHNBXPBM,14.23669356238481 +\N,\N,\N,-2207.3 +2391-01-17 15:28:37.00045143,16160,ZVEUKC,771355639420297.133 +2309-01-15 12:43:49,22821,ZMY,40.9 +2340-12-15 05:15:17.133588982,23663,HHTP,33383.8 +2969-01-23 14:08:04.000667259,-8913,UIMQ,9.178 +2145-10-15 06:58:42.831,2638,\N,-9784.82 +2888-05-08 08:36:55.182302102,5786,ZVEUKC,-56082455.033918 +2467-05-11 06:04:13.426693647,23196,EIBSDASR,-8.5548883801 +2829-06-04 08:01:47.836,22771,ZVEUKC,94317.75318 +2938-12-21 23:35:59.498,29362,ZMY,0.88 +2304-12-15 15:31:16,-13125,JFYW,6.086657 +2808-07-09 02:10:11.928498854,-19598,FHFX,0.3 +2083-06-07 09:35:19.383,-26373,MR,-394.0867 +2686-05-23 07:46:46.565832918,13212,NCYBDW,-917116793.4 +2969-01-23 14:08:04.000667259,-8913,UIMQ,-375994644577.315257 +2338-02-12 09:30:07,20223,CTH,-6154.763054 +2629-04-07 01:54:11,-6776,WGGFVFTW,41.77451507786646 +2242-08-04 07:51:46.905,20223,UCYXACQ,37.7288 +2637-03-12 22:25:46.385,-12923,PPTJPFR,5.4 +2304-12-15 15:31:16,8650,RLNO,0.71351747335 +2688-02-06 20:58:42.000947837,20223,PAIY,67661.735 +\N,\N,\N,-2.4 +2512-10-06 03:03:03,-3465,VZQ,0.4458 +2960-04-12 07:03:42.000366651,20340,CYZYUNSF,-96.3 +2461-03-09 09:54:45.000982385,-16454,ZSMB,-9575827.55396 +2512-10-06 03:03:03,1560,X,-922.6951584107 +2396-04-06 15:39:02.404013577,29661,ZSMB,0.76718326 +2409-09-23 10:33:27,2638,XSXR,0.4 +2969-01-23 14:08:04.000667259,6689,TFGVOGPJF,-0.01 +2333-07-28 09:59:26,23196,RKSK,37872288434740893.5 +2409-09-23 10:33:27,2638,XSXR,-162.95 +2357-05-08 07:09:09.000482799,6226,ZSMB,-472 +2304-12-15 15:31:16,15090,G,-4319470286240016.3 +2304-12-15 15:31:16,1301,T,61.302 +2105-01-04 16:27:45,23100,ZSMB,-83.2328 +2242-08-04 07:51:46.905,20223,UCYXACQ,-0.26149 +2637-03-12 22:25:46.385,-17786,HYEGQ,-84.169614329419 +1931-12-04 11:13:47.269597392,23196,HVJCQMTQL,-9697532.8994 +2897-08-10 15:21:47.09,23663,XYUVBED,6370 +2888-05-08 08:36:55.182302102,5786,ZVEUKC,57.62175257788037 +2145-10-15 06:58:42.831,2638,UANGISEXR,-5996.306 +2462-12-16 23:11:32.633305644,-26373,CB,67.41799 +2396-04-06 15:39:02.404013577,29661,ZSMB,-5151598.347 +2304-12-15 15:31:16,15090,G,975 +2512-10-06 03:03:03,32099,ARNZ,-0.41 +2188-06-04 15:03:14.963259704,9468,AAA,2.75496352 +2512-10-06 03:03:03,1560,X,761196.522 +2304-12-15 15:31:16,1301,T,2720.8 +1919-06-20 00:16:50.611028595,20223,ZKBC,-23 +2897-08-10 15:21:47.09,23663,XYUVBED,51.7323303273 +2086-04-09 00:03:10,20223,THXNJGFFV,-85184687349898.892 +2238-05-17 19:27:25.519,20223,KQCM,-0.01095 +2086-04-09 00:03:10,20223,THXNJGFFV,482.5383411359219 +2480-10-02 09:31:37.000770961,-26373,NBN,-5875.5197252 +2086-04-09 00:03:10,20223,THXNJGFFV,0.4396861 +2759-11-26 22:19:55.410967136,-27454,ZMY,60.6025797 +2083-06-07 09:35:19.383,-26373,MR,67892053.02376094 +2882-05-20 07:21:25.221299462,23196,U,-9951044 +2971-02-14 09:13:19,-16605,BVACIRP,-27394351.3 +2512-10-06 03:03:03,24313,QBHUG,-8423.151573236 +2882-05-20 07:21:25.221299462,23196,U,-4244.926206619 +1905-04-20 13:42:25.000469776,2638,KAUUFF,7 +2410-05-03 13:44:56,2638,PHOR,-769088.176482 +2668-06-25 07:12:37.000970744,2638,TJE,-2.7796827 +2969-01-23 14:08:04.000667259,-32485,AGEPWWLJF,-48431309405.652522 +2410-05-03 13:44:56,2638,PHOR,93262.914526611 +2512-10-06 03:03:03,13195,CRJ,14 +2018-11-25 22:27:55.84,-12202,VBDBM,98790.713907420831 +2304-12-15 15:31:16,8650,RLNO,-0.4355 +2071-07-21 20:02:32.000250697,2638,NRUV,-66198.351092 +2525-05-12 15:59:35,-24459,SAVRGA,53106747151.8633 +2637-03-12 22:25:46.385,21841,CXTI,749563668434009.65 +2018-11-25 22:27:55.84,-22419,LOTLS,342.3726040228584 +2637-03-12 22:25:46.385,21841,CXTI,7362887891522.3782 +2038-10-12 09:15:33.000539653,-19598,YKNIAJW,-642807895924.66 +2957-05-07 10:41:46,20223,OWQT,-586953.153681 +2304-12-15 15:31:16,11101,YJCKKCR,1279917802.42 +2355-09-23 19:52:34.638084141,-19598,H,92.15 +2960-04-12 07:03:42.000366651,20340,CYZYUNSF,2.1577659 +2355-09-23 19:52:34.638084141,-19598,H,74179461.880493 +2969-01-23 14:08:04.000667259,-8913,UIMQ,-81 +\N,-12914,ZVEUKC,221 +2743-12-27 05:16:19.000573579,-12914,ZVEUKC,-811984611.5178497 +1957-02-01 14:00:29.000548421,-16085,ZVEUKC,-2312.8149 +2201-07-05 17:22:06.084206844,-24459,UBGT,1.5069483282 +2461-03-09 09:54:45.000982385,-16454,ZSMB,8694.89 +2169-04-02 06:30:32,23855,PDVQATOS,-1515597428 +2304-12-15 15:31:16,30285,GSJPSIYOU,0.2 +2913-07-17 15:06:58.041,-10206,\N,-0.2 +2169-04-02 06:30:32,23855,PDVQATOS,-4016.9608 +2759-11-26 22:19:55.410967136,-27454,ZMY,368 +2073-03-21 15:32:57.617920888,26425,MPRACIRYW,726945733.4193 +2304-12-15 15:31:16,11101,YJCKKCR,-0.5 +2462-12-16 23:11:32.633305644,-26373,CB,-582687 +2357-05-08 07:09:09.000482799,6226,ZSMB,-32.46 +2304-12-15 15:31:16,12587,OPW,-4.59489504 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_string_big_1a.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_string_big_1a.txt b/data/files/fullouter_string_big_1a.txt new file mode 100644 index 0000000..1cbcd05 --- /dev/null +++ b/data/files/fullouter_string_big_1a.txt @@ -0,0 +1,13 @@ +FTWURVH +QNCYBDW +UA +WXHJ +\N +WXHJ +PXLD +WXHJ +PXLD +WXHJ +WXHJ +MXGDMBD +PXLD http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_string_big_1a_nonull.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_string_big_1a_nonull.txt b/data/files/fullouter_string_big_1a_nonull.txt new file mode 100644 index 0000000..a6566f2 --- /dev/null +++ b/data/files/fullouter_string_big_1a_nonull.txt @@ -0,0 +1,12 @@ +WXHJ +WXHJ +FTWURVH +MXGDMBD +UA +WXHJ +QNCYBDW +PXLD +PXLD +WXHJ +PXLD +WXHJ http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_string_big_1a_old.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_string_big_1a_old.txt b/data/files/fullouter_string_big_1a_old.txt new file mode 100644 index 0000000..1fa51ad --- /dev/null +++ b/data/files/fullouter_string_big_1a_old.txt @@ -0,0 +1,13 @@ +WXHJ +WXHJ +WXHJ +WXHJ +WXHJ +QNCYBDW +PXLD +PXLD +PXLD +UA +\N +FTWURVH +MXGDMBD http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_string_small_1a.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_string_small_1a.txt b/data/files/fullouter_string_small_1a.txt new file mode 100644 index 0000000..f223da0 --- /dev/null +++ b/data/files/fullouter_string_small_1a.txt @@ -0,0 +1,38 @@ +BDBMW,2278-04-27,2101-02-21 08:53:34.692 +FROPIK,2023-02-28,2467-05-11 06:04:13.426693647 +GOYJHW,1976-03-06,2805-07-10 10:51:57.00083302 +MXGDMBD,1880-11-01,2765-10-06 13:28:17.000688592 +CQMTQLI,2031-09-13,1927-02-13 08:39:25.000919094 +,1985-01-22,2111-01-10 15:44:28 +IOQIDQBHU,2198-02-08,2073-03-21 15:32:57.617920888 +GSJPSIYOU,1948-07-17,2006-09-24 16:01:24.000239251 +\N,1865-11-08,2893-04-07 07:36:12 +BEP,2206-08-10,2331-10-09 10:59:51 +NADANUQMW,2037-10-19,2320-04-26 18:50:25.000426922 +\N,2250-04-22,2548-03-21 08:23:13.133573801 +ATZJTPECF,1829-10-16,2357-05-08 07:09:09.000482799 +IWEZJHKE,\N,\N +AARNZRVZQ,2002-10-23,2525-05-12 15:59:35 +BEP,2141-02-19,2521-06-09 01:20:07.121 +AARNZRVZQ,2000-11-13,2309-06-05 19:54:13 +LOTLS,1957-11-09,2092-06-07 06:42:30.000538454 +FROPIK,2124-10-01,2974-07-06 12:05:08.000146048 +KL,1980-09-22,2073-08-25 11:51:10.318 +\N,1915-02-22,2554-10-27 09:34:30 +WNGFTTY,1843-06-10,2411-01-28 20:03:59 +VNRXWQ,1883-02-06,2287-07-17 16:46:58.287 +QTSRKSKB,2144-01-13,2627-12-20 03:38:53.000389266 +GOYJHW,1959-04-27,\N +LOTLS,2099-08-04,2181-01-25 01:04:25.000030055 +CQMTQLI,2090-11-13,2693-03-17 16:19:55.82 +VNRXWQ,2276-11-16,2072-08-16 17:45:47.48349887 +LOTLS,2126-09-16,1977-12-15 15:28:56 +FTWURVH,1976-03-10,2683-11-22 13:07:04.66673556 +,2021-02-21,2802-04-21 18:48:18.5933838 +ZNOUDCR,\N,1988-04-23 08:40:21 +FROPIK,2214-02-09,1949-08-18 17:14:38.000703738 +SDA,2196-04-12,2462-10-26 19:28:12.733 +WNGFTTY,2251-08-16,2649-12-21 18:30:42.498 +GOYJHW,1993-04-07,1950-05-04 09:28:22.000114784 +FYW,1807-03-20,2305-08-17 01:32:44 +ATZJTPECF,2217-10-22,2808-10-20 16:01:24.558 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_string_small_1a_nonull.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_string_small_1a_nonull.txt b/data/files/fullouter_string_small_1a_nonull.txt new file mode 100644 index 0000000..6b97ef4 --- /dev/null +++ b/data/files/fullouter_string_small_1a_nonull.txt @@ -0,0 +1,35 @@ +LOTLS,2126-09-16,1977-12-15 15:28:56 +MXGDMBD,1880-11-01,2765-10-06 13:28:17.000688592 +WNGFTTY,2251-08-16,2649-12-21 18:30:42.498 +QTSRKSKB,2144-01-13,2627-12-20 03:38:53.000389266 +AARNZRVZQ,2002-10-23,2525-05-12 15:59:35 +BEP,2141-02-19,2521-06-09 01:20:07.121 +ZNOUDCR,\N,1988-04-23 08:40:21 +FROPIK,2023-02-28,2467-05-11 06:04:13.426693647 +GOYJHW,1993-04-07,1950-05-04 09:28:22.000114784 +CQMTQLI,2090-11-13,2693-03-17 16:19:55.82 +BDBMW,2278-04-27,2101-02-21 08:53:34.692 +AARNZRVZQ,2000-11-13,2309-06-05 19:54:13 +FYW,1807-03-20,2305-08-17 01:32:44 +,2021-02-21,2802-04-21 18:48:18.5933838 +VNRXWQ,1883-02-06,2287-07-17 16:46:58.287 +FROPIK,2124-10-01,2974-07-06 12:05:08.000146048 +LOTLS,2099-08-04,2181-01-25 01:04:25.000030055 +BEP,2206-08-10,2331-10-09 10:59:51 +WNGFTTY,1843-06-10,2411-01-28 20:03:59 +LOTLS,1957-11-09,2092-06-07 06:42:30.000538454 +CQMTQLI,2031-09-13,1927-02-13 08:39:25.000919094 +GOYJHW,1976-03-06,2805-07-10 10:51:57.00083302 +,1985-01-22,2111-01-10 15:44:28 +SDA,2196-04-12,2462-10-26 19:28:12.733 +ATZJTPECF,1829-10-16,2357-05-08 07:09:09.000482799 +GOYJHW,1959-04-27,\N +FTWURVH,1976-03-10,2683-11-22 13:07:04.66673556 +KL,1980-09-22,2073-08-25 11:51:10.318 +ATZJTPECF,2217-10-22,2808-10-20 16:01:24.558 +NADANUQMW,2037-10-19,2320-04-26 18:50:25.000426922 +FROPIK,2214-02-09,1949-08-18 17:14:38.000703738 +IWEZJHKE,\N,\N +GSJPSIYOU,1948-07-17,2006-09-24 16:01:24.000239251 +IOQIDQBHU,2198-02-08,2073-03-21 15:32:57.617920888 +VNRXWQ,2276-11-16,2072-08-16 17:45:47.48349887 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/data/files/fullouter_string_small_1a_old.txt ---------------------------------------------------------------------- diff --git a/data/files/fullouter_string_small_1a_old.txt b/data/files/fullouter_string_small_1a_old.txt new file mode 100644 index 0000000..505c403 --- /dev/null +++ b/data/files/fullouter_string_small_1a_old.txt @@ -0,0 +1,38 @@ +,2021-02-21,2802-04-21 18:48:18.5933838 +,1985-01-22,2111-01-10 15:44:28 +VNRXWQ,1883-02-06,2287-07-17 16:46:58.287 +VNRXWQ,2276-11-16,2072-08-16 17:45:47.48349887 +KL,1980-09-22,2073-08-25 11:51:10.318 +FYW,1807-03-20,2305-08-17 01:32:44 +WNGFTTY,2251-08-16,2649-12-21 18:30:42.498 +WNGFTTY,1843-06-10,2411-01-28 20:03:59 +FTWURVH,1976-03-10,2683-11-22 13:07:04.66673556 +CQMTQLI,2031-09-13,1927-02-13 08:39:25.000919094 +CQMTQLI,2090-11-13,2693-03-17 16:19:55.82 +BEP,2141-02-19,2521-06-09 01:20:07.121 +BEP,2206-08-10,2331-10-09 10:59:51 +FROPIK,2023-02-28,2467-05-11 06:04:13.426693647 +FROPIK,2214-02-09,1949-08-18 17:14:38.000703738 +FROPIK,2124-10-01,2974-07-06 12:05:08.000146048 +SDA,2196-04-12,2462-10-26 19:28:12.733 +ATZJTPECF,2217-10-22,2808-10-20 16:01:24.558 +ATZJTPECF,1829-10-16,2357-05-08 07:09:09.000482799 +MXGDMBD,1880-11-01,2765-10-06 13:28:17.000688592 +IWEZJHKE,\N,\N +NADANUQMW,2037-10-19,2320-04-26 18:50:25.000426922 +GOYJHW,1993-04-07,1950-05-04 09:28:22.000114784 +GOYJHW,1976-03-06,2805-07-10 10:51:57.00083302 +GOYJHW,1959-04-27,\N +QTSRKSKB,2144-01-13,2627-12-20 03:38:53.000389266 +IOQIDQBHU,2198-02-08,2073-03-21 15:32:57.617920888 +ZNOUDCR,\N,1988-04-23 08:40:21 +AARNZRVZQ,2000-11-13,2309-06-05 19:54:13 +AARNZRVZQ,2002-10-23,2525-05-12 15:59:35 +BDBMW,2278-04-27,2101-02-21 08:53:34.692 +\N,1865-11-08,2893-04-07 07:36:12 +\N,2250-04-22,2548-03-21 08:23:13.133573801 +\N,1915-02-22,2554-10-27 09:34:30 +LOTLS,1957-11-09,2092-06-07 06:42:30.000538454 +LOTLS,2126-09-16,1977-12-15 15:28:56 +LOTLS,2099-08-04,2181-01-25 01:04:25.000030055 +GSJPSIYOU,1948-07-17,2006-09-24 16:01:24.000239251 http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/AbstractMapJoin.java ---------------------------------------------------------------------- diff --git a/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/AbstractMapJoin.java b/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/AbstractMapJoin.java index af446db..48f85f4 100644 --- a/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/AbstractMapJoin.java +++ b/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/AbstractMapJoin.java @@ -13,21 +13,25 @@ */ package org.apache.hive.benchmark.vectorization.mapjoin; +import java.util.ArrayList; import java.util.concurrent.TimeUnit; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.ql.exec.MapJoinOperator; import org.apache.hadoop.hive.ql.exec.Operator; import org.apache.hadoop.hive.ql.exec.tez.ObjectCache; +import org.apache.hadoop.hive.ql.exec.persistence.MapJoinTableContainer; import org.apache.hadoop.hive.ql.exec.util.collectoroperator.CountCollectorTestOperator; import org.apache.hadoop.hive.ql.exec.util.collectoroperator.CountVectorCollectorTestOperator; +import org.apache.hadoop.hive.ql.exec.vector.VectorRandomBatchSource; import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; import org.apache.hadoop.hive.ql.exec.vector.mapjoin.MapJoinTestConfig; import org.apache.hadoop.hive.ql.exec.vector.mapjoin.MapJoinTestConfig.MapJoinTestImplementation; import org.apache.hadoop.hive.ql.exec.vector.mapjoin.MapJoinTestData; import org.apache.hadoop.hive.ql.exec.vector.mapjoin.MapJoinTestDescription; +import org.apache.hadoop.hive.ql.exec.vector.mapjoin.MapJoinTestConfig.CreateMapJoinResult; +import org.apache.hadoop.hive.ql.exec.vector.mapjoin.MapJoinTestDescription.MapJoinPlanVariation; import org.apache.hadoop.hive.ql.exec.vector.mapjoin.MapJoinTestDescription.SmallTableGenerationParameters; -import org.apache.hadoop.hive.ql.exec.vector.util.batchgen.VectorBatchGenerateUtil; import org.apache.hadoop.hive.ql.plan.MapJoinDesc; import org.apache.hadoop.hive.ql.plan.OperatorDesc; import org.apache.hadoop.hive.ql.plan.VectorMapJoinDesc.VectorMapJoinVariation; @@ -74,30 +78,31 @@ public abstract class AbstractMapJoin { } protected void setupMapJoin(HiveConf hiveConf, long seed, int rowCount, - VectorMapJoinVariation vectorMapJoinVariation, MapJoinTestImplementation mapJoinImplementation, - String[] bigTableColumnNames, TypeInfo[] bigTableTypeInfos, int[] bigTableKeyColumnNums, - String[] smallTableValueColumnNames, TypeInfo[] smallTableValueTypeInfos, - int[] bigTableRetainColumnNums, - int[] smallTableRetainKeyColumnNums, int[] smallTableRetainValueColumnNums, - SmallTableGenerationParameters smallTableGenerationParameters) throws Exception { + VectorMapJoinVariation vectorMapJoinVariation, MapJoinTestImplementation mapJoinImplementation, + String[] bigTableColumnNames, TypeInfo[] bigTableTypeInfos, + int[] bigTableKeyColumnNums, + String[] smallTableValueColumnNames, TypeInfo[] smallTableValueTypeInfos, + int[] bigTableRetainColumnNums, + int[] smallTableRetainKeyColumnNums, int[] smallTableRetainValueColumnNums, + SmallTableGenerationParameters smallTableGenerationParameters) throws Exception { this.vectorMapJoinVariation = vectorMapJoinVariation; this.mapJoinImplementation = mapJoinImplementation; testDesc = new MapJoinTestDescription( hiveConf, vectorMapJoinVariation, - bigTableColumnNames, bigTableTypeInfos, + bigTableTypeInfos, bigTableKeyColumnNums, - smallTableValueColumnNames, smallTableValueTypeInfos, - bigTableRetainColumnNums, - smallTableRetainKeyColumnNums, smallTableRetainValueColumnNums, - smallTableGenerationParameters); + smallTableValueTypeInfos, + smallTableRetainKeyColumnNums, + smallTableGenerationParameters, + MapJoinPlanVariation.DYNAMIC_PARTITION_HASH_JOIN); // Prepare data. Good for ANY implementation variation. - testData = new MapJoinTestData(rowCount, testDesc, seed, seed * 10); + testData = new MapJoinTestData(rowCount, testDesc, seed); ObjectRegistryImpl objectRegistry = new ObjectRegistryImpl(); ObjectCache.setupObjectRegistry(objectRegistry); - + operator = setupBenchmarkImplementation( mapJoinImplementation, testDesc, testData); @@ -108,15 +113,21 @@ public abstract class AbstractMapJoin { */ if (!isVectorOutput) { - bigTableRows = VectorBatchGenerateUtil.generateRowObjectArray( - testDesc.bigTableKeyTypeInfos, testData.getBigTableBatchStream(), - testData.getBigTableBatch(), testDesc.outputObjectInspectors); + bigTableRows = testData.getBigTableBatchSource().getRandomRows(); } else { - bigTableBatches = VectorBatchGenerateUtil.generateBatchArray( - testData.getBigTableBatchStream(), testData.getBigTableBatch()); - + ArrayList<VectorizedRowBatch> bigTableBatchList = new ArrayList<VectorizedRowBatch>(); + VectorRandomBatchSource batchSource = testData.getBigTableBatchSource(); + batchSource.resetBatchIteration(); + while (true) { + VectorizedRowBatch batch = testData.createBigTableBatch(testDesc); + if (!batchSource.fillNextBatch(batch)) { + break; + } + bigTableBatchList.add(batch); + } + bigTableBatches = bigTableBatchList.toArray(new VectorizedRowBatch[0]); } } @@ -131,7 +142,6 @@ public abstract class AbstractMapJoin { MapJoinTestData testData) throws Exception { - // UNDONE: Parameterize for implementation variation? MapJoinDesc mapJoinDesc = MapJoinTestConfig.createMapJoinDesc(testDesc); final boolean isVectorOutput = isVectorOutput(mapJoinImplementation); @@ -141,9 +151,19 @@ public abstract class AbstractMapJoin { (!isVectorOutput ? new CountCollectorTestOperator() : new CountVectorCollectorTestOperator()); - MapJoinOperator operator = + CreateMapJoinResult createMapJoinResult = MapJoinTestConfig.createMapJoinImplementation( - mapJoinImplementation, testDesc, testCollectorOperator, testData, mapJoinDesc); + mapJoinImplementation, testDesc, testData, mapJoinDesc, + /* shareMapJoinTableContainer */ null); + MapJoinOperator operator = createMapJoinResult.mapJoinOperator; + MapJoinTableContainer mapJoinTableContainer = createMapJoinResult.mapJoinTableContainer; + + // Invoke initializeOp methods. + operator.initialize(testDesc.hiveConf, testDesc.inputObjectInspectors); + + // Fixup the mapJoinTables. + operator.setTestMapJoinTableContainer(1, mapJoinTableContainer, null); + return operator; } http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinMultiKeyBenchBase.java ---------------------------------------------------------------------- diff --git a/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinMultiKeyBenchBase.java b/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinMultiKeyBenchBase.java index c9da92a..aa88297 100644 --- a/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinMultiKeyBenchBase.java +++ b/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinMultiKeyBenchBase.java @@ -59,7 +59,8 @@ public abstract class MapJoinMultiKeyBenchBase extends AbstractMapJoin { setupMapJoin(hiveConf, seed, rowCount, vectorMapJoinVariation, mapJoinImplementation, - bigTableColumnNames, bigTableTypeInfos, bigTableKeyColumnNums, + bigTableColumnNames, bigTableTypeInfos, + bigTableKeyColumnNums, smallTableValueColumnNames, smallTableValueTypeInfos, bigTableRetainColumnNums, smallTableRetainKeyColumnNums, smallTableRetainValueColumnNums, http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinOneLongKeyBenchBase.java ---------------------------------------------------------------------- diff --git a/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinOneLongKeyBenchBase.java b/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinOneLongKeyBenchBase.java index a6b4719..60b2890 100644 --- a/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinOneLongKeyBenchBase.java +++ b/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinOneLongKeyBenchBase.java @@ -57,7 +57,8 @@ public abstract class MapJoinOneLongKeyBenchBase extends AbstractMapJoin { setupMapJoin(hiveConf, seed, rowCount, vectorMapJoinVariation, mapJoinImplementation, - bigTableColumnNames, bigTableTypeInfos, bigTableKeyColumnNums, + bigTableColumnNames, bigTableTypeInfos, + bigTableKeyColumnNums, smallTableValueColumnNames, smallTableValueTypeInfos, bigTableRetainColumnNums, smallTableRetainKeyColumnNums, smallTableRetainValueColumnNums, http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinOneStringKeyBenchBase.java ---------------------------------------------------------------------- diff --git a/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinOneStringKeyBenchBase.java b/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinOneStringKeyBenchBase.java index 1b31038..937ede1 100644 --- a/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinOneStringKeyBenchBase.java +++ b/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/vectorization/mapjoin/MapJoinOneStringKeyBenchBase.java @@ -57,7 +57,8 @@ public abstract class MapJoinOneStringKeyBenchBase extends AbstractMapJoin { setupMapJoin(hiveConf, seed, rowCount, vectorMapJoinVariation, mapJoinImplementation, - bigTableColumnNames, bigTableTypeInfos, bigTableKeyColumnNums, + bigTableColumnNames, bigTableTypeInfos, + bigTableKeyColumnNums, smallTableValueColumnNames, smallTableValueTypeInfos, bigTableRetainColumnNums, smallTableRetainKeyColumnNums, smallTableRetainValueColumnNums, http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/itests/src/test/resources/testconfiguration.properties ---------------------------------------------------------------------- diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties index 0e071fb..64e8183 100644 --- a/itests/src/test/resources/testconfiguration.properties +++ b/itests/src/test/resources/testconfiguration.properties @@ -512,6 +512,7 @@ minillaplocal.query.files=\ explainanalyze_2.q,\ explainuser_1.q,\ explainuser_4.q,\ + fullouter_mapjoin_1_optimized.q,\ groupby2.q,\ groupby_groupingset_bug.q,\ hybridgrace_hashjoin_1.q,\ @@ -760,6 +761,10 @@ minillaplocal.query.files=\ vector_create_struct_table.q,\ vector_decimal_2.q,\ vector_decimal_udf.q,\ + vector_full_outer_join.q,\ + vector_fullouter_mapjoin_1_fast.q,\ + vector_fullouter_mapjoin_1_optimized.q,\ + vector_fullouter_mapjoin_1_optimized_passthru.q,\ vector_groupby_cube1.q,\ vector_groupby_grouping_id1.q,\ vector_groupby_grouping_id2.q,\ http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java index 02a67cb..3762ee5 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java @@ -790,7 +790,16 @@ public abstract class CommonJoinOperator<T extends JoinDesc> extends } private boolean hasAnyFiltered(int alias, List<Object> row) { - return row == dummyObj[alias] || hasFilter(alias) && JoinUtil.hasAnyFiltered(getFilterTag(row)); + if (row == dummyObj[alias]) { + return true; + } + if (hasFilter(alias) && row != null) { + ShortWritable shortWritable = (ShortWritable) row.get(row.size() - 1); + if (shortWritable != null) { + return JoinUtil.hasAnyFiltered(shortWritable.get()); + } + } + return false; } protected final boolean hasFilter(int alias) { http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java index 65ec4b2..2f20dd4 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java @@ -732,6 +732,73 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable { return outputPlan(work, out, extended, jsonOutput, indent, ""); } + private boolean isInvokeVectorization(Vectorization vectorization) { + + boolean invokeFlag = true; // Assume. + + // The EXPLAIN VECTORIZATION option was specified. + final boolean desireOnly = this.work.isVectorizationOnly(); + final VectorizationDetailLevel desiredVecDetailLevel = + this.work.isVectorizationDetailLevel(); + + switch (vectorization) { + case NON_VECTORIZED: + // Display all non-vectorized leaf objects unless ONLY. + if (desireOnly) { + invokeFlag = false; + } + break; + case SUMMARY: + case OPERATOR: + case EXPRESSION: + case DETAIL: + if (vectorization.rank < desiredVecDetailLevel.rank) { + // This detail not desired. + invokeFlag = false; + } + break; + case SUMMARY_PATH: + case OPERATOR_PATH: + if (desireOnly) { + if (vectorization.rank < desiredVecDetailLevel.rank) { + // Suppress headers and all objects below. + invokeFlag = false; + } + } + break; + default: + throw new RuntimeException("Unknown EXPLAIN vectorization " + vectorization); + } + + return invokeFlag; + } + + private boolean isInvokeNonVectorization(Vectorization vectorization) { + + boolean invokeFlag = true; // Assume. + + // Do not display vectorization objects. + switch (vectorization) { + case SUMMARY: + case OPERATOR: + case EXPRESSION: + case DETAIL: + invokeFlag = false; + break; + case NON_VECTORIZED: + // No action. + break; + case SUMMARY_PATH: + case OPERATOR_PATH: + // Always include headers since they contain non-vectorized objects, too. + break; + default: + throw new RuntimeException("Unknown EXPLAIN vectorization " + vectorization); + } + + return invokeFlag; + } + @VisibleForTesting JSONObject outputPlan(Object work, PrintStream out, boolean extended, boolean jsonOutput, int indent, String appendToHeader) throws Exception { @@ -756,65 +823,17 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable { if (extended) { invokeFlag = Level.EXTENDED.in(xpl_note.explainLevels()); } else { - invokeFlag = Level.DEFAULT.in(xpl_note.explainLevels()); + invokeFlag = + Level.DEFAULT.in(xpl_note.explainLevels()) || + (this.work != null && this.work.isDebug() && Level.DEBUG.in(xpl_note.explainLevels())); } } if (invokeFlag) { Vectorization vectorization = xpl_note.vectorization(); if (this.work != null && this.work.isVectorization()) { - - // The EXPLAIN VECTORIZATION option was specified. - final boolean desireOnly = this.work.isVectorizationOnly(); - final VectorizationDetailLevel desiredVecDetailLevel = - this.work.isVectorizationDetailLevel(); - - switch (vectorization) { - case NON_VECTORIZED: - // Display all non-vectorized leaf objects unless ONLY. - if (desireOnly) { - invokeFlag = false; - } - break; - case SUMMARY: - case OPERATOR: - case EXPRESSION: - case DETAIL: - if (vectorization.rank < desiredVecDetailLevel.rank) { - // This detail not desired. - invokeFlag = false; - } - break; - case SUMMARY_PATH: - case OPERATOR_PATH: - if (desireOnly) { - if (vectorization.rank < desiredVecDetailLevel.rank) { - // Suppress headers and all objects below. - invokeFlag = false; - } - } - break; - default: - throw new RuntimeException("Unknown EXPLAIN vectorization " + vectorization); - } + invokeFlag = isInvokeVectorization(vectorization); } else { - // Do not display vectorization objects. - switch (vectorization) { - case SUMMARY: - case OPERATOR: - case EXPRESSION: - case DETAIL: - invokeFlag = false; - break; - case NON_VECTORIZED: - // No action. - break; - case SUMMARY_PATH: - case OPERATOR_PATH: - // Always include headers since they contain non-vectorized objects, too. - break; - default: - throw new RuntimeException("Unknown EXPLAIN vectorization " + vectorization); - } + invokeFlag = isInvokeNonVectorization(vectorization); } } if (invokeFlag) { @@ -892,64 +911,18 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable { if (extended) { invokeFlag = Level.EXTENDED.in(xpl_note.explainLevels()); } else { - invokeFlag = Level.DEFAULT.in(xpl_note.explainLevels()); + invokeFlag = + Level.DEFAULT.in(xpl_note.explainLevels()) || + (this.work != null && this.work.isDebug() && Level.DEBUG.in(xpl_note.explainLevels())); } } if (invokeFlag) { Vectorization vectorization = xpl_note.vectorization(); - if (this.work != null && this.work.isVectorization()) { - - // The EXPLAIN VECTORIZATION option was specified. - final boolean desireOnly = this.work.isVectorizationOnly(); - final VectorizationDetailLevel desiredVecDetailLevel = - this.work.isVectorizationDetailLevel(); - - switch (vectorization) { - case NON_VECTORIZED: - // Display all non-vectorized leaf objects unless ONLY. - if (desireOnly) { - invokeFlag = false; - } - break; - case SUMMARY: - case OPERATOR: - case EXPRESSION: - case DETAIL: - if (vectorization.rank < desiredVecDetailLevel.rank) { - // This detail not desired. - invokeFlag = false; - } - break; - case SUMMARY_PATH: - case OPERATOR_PATH: - if (desireOnly) { - if (vectorization.rank < desiredVecDetailLevel.rank) { - // Suppress headers and all objects below. - invokeFlag = false; - } - } - break; - default: - throw new RuntimeException("Unknown EXPLAIN vectorization " + vectorization); - } - } else { - // Do not display vectorization objects. - switch (vectorization) { - case SUMMARY: - case OPERATOR: - case EXPRESSION: - case DETAIL: - invokeFlag = false; - break; - case NON_VECTORIZED: - // No action. - break; - case SUMMARY_PATH: - case OPERATOR_PATH: - // Always include headers since they contain non-vectorized objects, too. - break; - default: - throw new RuntimeException("Unknown EXPLAIN vectorization " + vectorization); + if (invokeFlag) { + if (this.work != null && this.work.isVectorization()) { + invokeFlag = isInvokeVectorization(vectorization); + } else { + invokeFlag = isInvokeNonVectorization(vectorization); } } } http://git-wip-us.apache.org/repos/asf/hive/blob/a37827ec/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java index a914ce3..1aae142 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java @@ -140,7 +140,7 @@ public class JoinUtil { if (key == (byte) posBigTableAlias) { valueFields.add(null); } else { - valueFields.add(ExprNodeEvaluatorFactory.get(expr, conf)); + valueFields.add(expr == null ? null : ExprNodeEvaluatorFactory.get(expr, conf)); } } outMap[key] = valueFields;