datawave
datawave copied to clipboard
Coalesce Similar Marker Nodes Within Junctions
We may want to consider coalescing similar marker nodes within junctions at some point in the future.
# coalesce delayed predicates within a union
A == '1' || ((_Delayed_ = true) && (B == '2')) || ((_Delayed_ = true) && (C == '3'))
..should coalesce to..
A =~ '1.*' || ((_Delayed_ = true) && (B == '2.*' || C == '3.*'))
# coalesce value exceeded markers within an intersection
A =~ '1.*' && ((_Value_ = true) && (B =~ '2.*')) && ((_Value_ = true) && (C =~ '3.*'))
..should coalesce to..
A =~ '1.*' && ((_Value_ = true) && (B =~ '2.*' && C =~ '3.*'))
Some implications
- this would change how we pull up and pushdown query terms
- the iterator building visitor makes assumptions about certain query property markers only having a single-term source
- bounded ranges