Hi, What is the canonical way to override Strong.Policy to built in SqlOperators? We have an issue where FilterIntoJoin rule will not push-down filter expressions when using lower/upper/concat on fields being nullable from a join. (For example `select … from A left join B where lower(B.foo) = ‘asdf’` will not be converted to an inner join). This is because the Strong.Policy for these functions is AS_IS, when it should (probably) be ANY.
Without changing the actual Calcite library code, the only real solution (for us) seems to be to copy-paste the operator definition, override the getStrongPolicy method to return the desired Stong.Policy, and bind that into an operator table. That works for us as we primarily use Calcite as a representation, and not for any execution, but that may not work for other users. Is there a different way to go about this? Thanks! -Ian J. Bertolacci
