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

Reply via email to