Currently, VAST Database allows pushing down filter predicate p of the following logical structure:
- An
ANDbetween multiple column predicates:p = p1 & p2 & p3 - Within each column predicate
pi, anORbetween range predicates:ci = r1 | r2 | r3 | r4 - Each range predicate
rjis one of the following operators (where"x"is a column name, andcis a constant):- comparison operator:
t["x"] < ct["x"] <= ct["x"] == ct["x"] > ct["x"] >= ct["x"] != c
is_inoperator:t["x"].isin([c1, c2, c3, c4, c5])
- NULL checking:
t["x"].isnull()~t["x"].isnull()
- Prefix match:
t["x"].startswith("prefix")
- Substring match:
t["x"].contains("substr")
- comparison operator:
The following Arrow types support predicate pushdown:
int8int16int32int64float32float64utf8booldecimal128binarydate32time32time64timestamp