Description
SubstitutionVisitor.splitFilter does structural comparison to identify relevant predicates. The method could sort the operands for some expressions in a deterministic way to maximize possible matches.
For instance, currently this example yields correct results:
condition: x = 1 or y = 2
target: y = 2 or x = 1
-> residue: true
However, the following equivalent example fails:
condition: x = 1 or y = 2 target: y = 2 or 1 = x