Description
Fast hash used with Bloom filter predicate pushdown has special handling for nullptr.
https://github.com/apache/kudu/blob/master/src/kudu/util/hash_util.h#L95
However there isn't any special handling for empty objects/strings. Fast hash for an empty string with seed=0 generates a hash value of 0. This doesn't set any bits in Bloom filter and as a result empty strings are reported as not present.
Impala uses the direct bloom filter approach and includes special handling for empty strings.
https://github.com/apache/impala/blob/master/be/src/runtime/raw-value.inline.h#L352
This leads to discrepancy between Impala and Kudu and returns incorrect join results.