Sync patternsel_common's operator selection logic with pattern_prefix's.
authorTom Lane <[email protected]>
Wed, 20 Nov 2019 20:00:11 +0000 (15:00 -0500)
committerTom Lane <[email protected]>
Wed, 20 Nov 2019 20:00:18 +0000 (15:00 -0500)
commit9ff5b699ed3e2d922ff6f5660e53b51bb5db983c
tree9e457b16cfebf5daea47492225cb39a6499db0e4
parent9f0f12ac57023653ad870a33a2e0337e6f3bf512
Sync patternsel_common's operator selection logic with pattern_prefix's.

Make patternsel_common() select the comparison operators to use with
hardwired logic that matches pattern_prefix()'s new logic, eliminating
its dependencies on particular index opfamilies.

This shouldn't change any behavior, as it's just replacing runtime
operator lookups with the same values hard-wired.  But it makes these
closely-related functions look more alike, and saving some runtime
syscache lookups is worth something.

Actually, it's not quite true that this is zero behavioral change:
when estimating for a column of type "name", the comparison constant
will be kept as "text" not coerced to "name".  But that's more correct
anyway, and it allows additional simplification of the coercion logic,
again syncing this more closely with pattern_prefix().

Per consideration of a report from Manuel Rigger.

Discussion: https://postgr.es/m/CA+u7OA7nnGYy8rY0vdTe811NuA+Frr9nbcBO9u2Z+JxqNaud+g@mail.gmail.com
src/backend/utils/adt/like_support.c