Skip to content

BloomFilterMightContain Predicate Expression

BloomFilterMightContain is a Predicate that uses BloomFilter when executed (evaluate and doGenCode) to mightContainLong.

BloomFilterMightContain is a BinaryExpression.

null Result

BloomFilterMightContain returns null when executed and there is neither BloomFilter nor value (for an InternalRow) defined.

Creating Instance

BloomFilterMightContain takes the following to be created:

BloomFilterMightContain is created when:

Bloom Filter Expression

BloomFilterMightContain is given a Bloom Filter Expression when created.

The Bloom Filter expression is always a ScalarSubquery expression over an Aggregate logical operator.

The Aggregate logical operator is created as follows:

  • No grouping (all rows are in the same group)
  • BloomFilterAggregate as the aggregate function (with XxHash64 child expression)

Value Expression

BloomFilterMightContain is given a Value Expression when created.

The Value expression is always an XxHash64 expression (of type Long).

null Value

If the value evaluates to null, BloomFilterMightContain evaluates to null (in eval and doGenCode).

BloomFilter

bloomFilter: BloomFilter
Lazy Value

bloomFilter is a Scala lazy value to guarantee that the code to initialize it is executed once only (when accessed for the first time) and the computed value never changes afterwards.

Learn more in the Scala Language Specification.

bloomFilter requests the Bloom Filter Expression to evaluate (that gives an Array[Byte]).

In the end, bloomFilter deserializes the bytes (to re-create a BloomFilter).

Note

If the Array[Byte] is null (undefined), bloomFilter is null.


bloomFilter is used when:

Pretty Name

Expression
prettyName: String

prettyName is part of the Expression abstraction.

prettyName is the following text:

might_contain