The default behavior in can_be_pushed_down_impl treats CastExpr as supported only by the overall shape of the child, but doesn't validate its actual children.
For example WHERE CAST(a % 2 AS BIGINT) = 0 will be pushed down, but we currently can't handle %.
This is a symptom of a bigger drift between the different checks, conversions and operations like expression splitting.
The default behavior in
can_be_pushed_down_impltreatsCastExpras supported only by the overall shape of the child, but doesn't validate its actual children.For example
WHERE CAST(a % 2 AS BIGINT) = 0will be pushed down, but we currently can't handle%.This is a symptom of a bigger drift between the different checks, conversions and operations like expression splitting.