Test, don't just Assert, that mergejoin's inputs are in order.
authorTom Lane <[email protected]>
Sat, 5 Feb 2022 16:59:30 +0000 (11:59 -0500)
committerTom Lane <[email protected]>
Sat, 5 Feb 2022 16:59:30 +0000 (11:59 -0500)
commitdcfaa7c67e7b5fef0446a63d38dc66ef9035ef5f
tree18af4a525632d72f0fff33dcecca4805e65ab1d1
parent03739f23ff9911aea7d58c9cc0b58109c8ea95a6
Test, don't just Assert, that mergejoin's inputs are in order.

There are two Asserts in nodeMergejoin.c that are reachable if
the input data is not in the expected order.  This seems way too
fragile.  Alexander Lakhin reported a case where the assertions
could be triggered with misconfigured foreign-table partitions,
and bitter experience with unstable operating system collation
definitions suggests another easy route to hitting them.  Neither
Assert is in a place where we can't afford one more test-and-branch,
so replace 'em with plain test-and-elog logic.

Per bug #17395.  While the reported symptom is relatively recent,
collation changes could happen anytime, so back-patch to all
supported branches.

Discussion: https://postgr.es/m/17395-8c326292078d1a57@postgresql.org
src/backend/executor/nodeMergejoin.c