diff --git common/src/java/org/apache/hive/common/util/HashCodeUtil.java common/src/java/org/apache/hive/common/util/HashCodeUtil.java index 1330cbeb6f..8e6cb85d09 100644 --- common/src/java/org/apache/hive/common/util/HashCodeUtil.java +++ common/src/java/org/apache/hive/common/util/HashCodeUtil.java @@ -61,55 +61,7 @@ public static void calculateBytesArrayHashCodes(byte[][] bytesArrays, } } - // Lifted from org.apache.hadoop.util.hash.MurmurHash... but supports offset. - // Must produce the same result as MurmurHash.hash with seed = 0. public static int murmurHash(byte[] data, int offset, int length) { - int m = 0x5bd1e995; - int r = 24; - - int h = length; - - int len_4 = length >> 2; - - for (int i = 0; i < len_4; i++) { - int i_4 = offset + (i << 2); - int k = data[i_4 + 3]; - k = k << 8; - k = k | (data[i_4 + 2] & 0xff); - k = k << 8; - k = k | (data[i_4 + 1] & 0xff); - k = k << 8; - k = k | (data[i_4 + 0] & 0xff); - k *= m; - k ^= k >>> r; - k *= m; - h *= m; - h ^= k; - } - - // avoid calculating modulo - int len_m = len_4 << 2; - int left = length - len_m; - - if (left != 0) { - length += offset; - if (left >= 3) { - h ^= (int) data[length - 3] << 16; - } - if (left >= 2) { - h ^= (int) data[length - 2] << 8; - } - if (left >= 1) { - h ^= (int) data[length - 1]; - } - - h *= m; - } - - h ^= h >>> 13; - h *= m; - h ^= h >>> 15; - - return h; + return Murmur3.hash32(data, offset, length, 0); } } \ No newline at end of file diff --git ql/src/test/results/clientpositive/llap/cbo_limit.q.out ql/src/test/results/clientpositive/llap/cbo_limit.q.out index 87a5770ad2..89077695f8 100644 --- ql/src/test/results/clientpositive/llap/cbo_limit.q.out +++ ql/src/test/results/clientpositive/llap/cbo_limit.q.out @@ -19,7 +19,7 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@cbo_t1 POSTHOOK: Input: default@cbo_t1@dt=2014 #### A masked pattern was here #### -5.0 2 1 +5.0 2 2 PREHOOK: query: select key from(select key from (select key from cbo_t1 limit 5)cbo_t2 limit 5)cbo_t3 limit 5 PREHOOK: type: QUERY PREHOOK: Input: default@cbo_t1 diff --git ql/src/test/results/clientpositive/llap/cbo_rp_limit.q.out ql/src/test/results/clientpositive/llap/cbo_rp_limit.q.out index 87a5770ad2..89077695f8 100644 --- ql/src/test/results/clientpositive/llap/cbo_rp_limit.q.out +++ ql/src/test/results/clientpositive/llap/cbo_rp_limit.q.out @@ -19,7 +19,7 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@cbo_t1 POSTHOOK: Input: default@cbo_t1@dt=2014 #### A masked pattern was here #### -5.0 2 1 +5.0 2 2 PREHOOK: query: select key from(select key from (select key from cbo_t1 limit 5)cbo_t2 limit 5)cbo_t3 limit 5 PREHOOK: type: QUERY PREHOOK: Input: default@cbo_t1 diff --git ql/src/test/results/clientpositive/llap/partialdhj.q.out ql/src/test/results/clientpositive/llap/partialdhj.q.out index 6c99ee2ac8..856f8180cf 100644 --- ql/src/test/results/clientpositive/llap/partialdhj.q.out +++ ql/src/test/results/clientpositive/llap/partialdhj.q.out @@ -200,45 +200,45 @@ POSTHOOK: Input: default@src1 #### A masked pattern was here #### val_311 311 val_311 val_165 165 val_165 -val_409 409 val_409 -val_98 98 val_98 -val_484 484 val_484 +val_278 278 val_278 +val_273 273 val_273 +val_66 66 val_66 +val_406 406 val_406 val_311 311 val_311 +val_278 278 val_278 val_311 311 val_311 val_165 165 val_165 -val_98 98 val_98 -val_409 409 val_409 -val_409 409 val_409 -val_27 27 val_27 -val_146 146 val_146 -val_146 146 val_146 -val_238 238 val_238 -val_238 238 val_238 -val_193 193 val_193 -val_273 273 val_273 -val_193 193 val_193 val_273 273 val_273 -val_193 193 val_193 -val_273 273 val_273 -val_406 406 val_406 val_406 406 val_406 val_406 406 val_406 val_406 406 val_406 -val_66 66 val_66 +val_273 273 val_273 +val_238 238 val_238 val_213 213 val_213 val_213 213 val_213 -val_278 278 val_278 -val_401 401 val_401 -val_278 278 val_278 +val_238 238 val_238 +val_409 409 val_409 +val_146 146 val_146 +val_409 409 val_409 +val_409 409 val_409 +val_146 146 val_146 +val_27 27 val_27 +val_265 265 val_265 +val_265 265 val_265 +val_150 150 val_150 +val_255 255 val_255 +val_98 98 val_98 +val_484 484 val_484 +val_193 193 val_193 val_401 401 val_401 +val_193 193 val_193 +val_98 98 val_98 val_401 401 val_401 val_401 401 val_401 +val_193 193 val_193 val_401 401 val_401 -val_150 150 val_150 -val_255 255 val_255 -val_265 265 val_265 val_255 255 val_255 -val_265 265 val_265 +val_401 401 val_401 PREHOOK: query: EXPLAIN SELECT * FROM src @@ -441,42 +441,42 @@ POSTHOOK: Input: default@src1 #### A masked pattern was here #### 311 val_311 val_311 165 val_165 val_165 -409 val_409 val_409 -98 val_98 val_98 -484 val_484 val_484 +278 val_278 val_278 +273 val_273 val_273 +66 val_66 val_66 +406 val_406 val_406 311 val_311 val_311 +278 val_278 val_278 311 val_311 val_311 165 val_165 val_165 -98 val_98 val_98 -409 val_409 val_409 -409 val_409 val_409 -27 val_27 val_27 -146 val_146 val_146 -146 val_146 val_146 -238 val_238 val_238 -238 val_238 val_238 -193 val_193 val_193 -273 val_273 val_273 -193 val_193 val_193 273 val_273 val_273 -193 val_193 val_193 -273 val_273 val_273 -406 val_406 val_406 406 val_406 val_406 406 val_406 val_406 406 val_406 val_406 -66 val_66 val_66 +273 val_273 val_273 +238 val_238 val_238 213 val_213 val_213 213 val_213 val_213 -278 val_278 val_278 -401 val_401 val_401 -278 val_278 val_278 +238 val_238 val_238 +409 val_409 val_409 +146 val_146 val_146 +409 val_409 val_409 +409 val_409 val_409 +146 val_146 val_146 +27 val_27 val_27 +265 val_265 val_265 +265 val_265 val_265 +150 val_150 val_150 +255 val_255 val_255 +98 val_98 val_98 +484 val_484 val_484 +193 val_193 val_193 401 val_401 val_401 +193 val_193 val_193 +98 val_98 val_98 401 val_401 val_401 401 val_401 val_401 +193 val_193 val_193 401 val_401 val_401 -150 val_150 val_150 -255 val_255 val_255 -265 val_265 val_265 255 val_255 val_255 -265 val_265 val_265 +401 val_401 val_401 diff --git ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out index d219478495..e393dfb902 100644 --- ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out +++ ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out @@ -935,9 +935,9 @@ Stage-0 Stage-1 Map 2 vectorized File Output Operator [FS_34] - Select Operator [SEL_33] (rows=399/50 width=186) + Select Operator [SEL_33] (rows=399/52 width=186) Output:["_col0","_col1","_col2"] - Map Join Operator [MAPJOIN_32] (rows=399/50 width=186) + Map Join Operator [MAPJOIN_32] (rows=399/52 width=186) BucketMapJoin:true,Conds:RS_29._col0=SEL_31._col0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col3"] <-Map 1 [CUSTOM_EDGE] vectorized MULTICAST [RS_29]