The function performing real filtering operations.
The function performing real filtering operations. The format of filterBytes depends on the implementation of the BytesEncoder.
true: the record satisfies the predicates false: the record does not satisfy the predicates.
Currently, it is used for partition pruning.
Currently, it is used for partition pruning. As for some codec, the order may be inconsistent between java primitive type and its byte array. We may have to split the predicates on some of the java primitive type into multiple predicates.
For example in naive codec, some of the java primitive types have to be split into multiple predicates, and union these predicates together to make the predicates be performed correctly. For example, if we have "COLUMN < 2", we will transform it into "0 <= COLUMN < 2 OR Integer.MIN_VALUE <= COLUMN <= -1"
The trait to support plugin architecture for different encoder/decoder. encode is used for serializing the data type to byte array and the filter is used to filter out the unnecessary records.