Fix order of parameters in BRIN minmax-multi calls
authorTomas Vondra <tomas.vondra@postgresql.org>
Sun, 4 Apr 2021 17:25:36 +0000 (19:25 +0200)
committerTomas Vondra <tomas.vondra@postgresql.org>
Sun, 4 Apr 2021 17:25:41 +0000 (19:25 +0200)
commit1dad2a5ea3d14dd205603c31cc94ec088183ab2a
treeaeffab551a97f91682a55f740bdc935cd74b5b2e
parente1fbe1181c86247eaf8b4b142b81361ce4efcc66
Fix order of parameters in BRIN minmax-multi calls

The BRIN minmax-multi consistent function incorrectly assumed it can
lookup an operator, and then swap the arguments to get the commutator.
For example <(a,b) would be called as <(b,a) to get >(a,b). This works
when the arguments are of the same type, but with cross-type opclasses
this fails. We can't swap <(float4,float8) arguments, for example.

Fixed by passing arguments in the right order.

Discussion: https://postgr.es/m/CAJKUy5jLZFLCxyxfT%3DMfK5mtPfSzHA1rVLowR-j4RRsFVvKm7A%40mail.gmail.com
src/backend/access/brin/brin_minmax_multi.c