IMPALA-3054: always disable runtime filters when spilling
IMPALA-3054: always disable runtime filters when spilling

Previously the code disabled runtime filters if a partition was spilled
while building hash tables but not if a partition was spilled when
appending input rows before attempting to build the hash table. Runtime
filters are not compatible with spilling in the current implementation
so need to be disabled in both cases. Prior to the switch to bloom
filters the window of vulnerability was small, because the filters were
limited in size and disabled for the large inputs that would typically
cause this kind of early spilling. When we increased the size of the
runtime filters, it became more likely that the partition would be
spilled and the runtime filters left enabled.

This fix handles both cases and by moving the logic to disable runtime
filters from BuildHashTable() to Spill(). It also adds a DCHECK in
BuildHashTables() to enforce the invariant.

Change-Id: Ia29b715cf0cdc64fd82d8a619c3f25757dca2bd2
Reviewed-on: http://gerrit.cloudera.org:8080/2302
Reviewed-by: Dan Hecht <20ebd99959f0f6e5dcb0fc319b4d8ef53a16b5fb@cloudera.com>
Tested-by: Internal Jenkins

cloudera/Impala,cloudera/Impala,michaelhkw/incubator-impala,cloudera/Impala,cloudera/Impala,michaelhkw/incubator-impala,michaelhkw/incubator-impala,michaelhkw/incubator-impala,cloudera/Impala,michaelhkw/incubator-impala,cloudera/Impala,cloudera/Impala,michaelhkw/incubator-impala,michaelhkw/incubator-impala