Use elog, not Assert, to report failure to provide an outer snapshot.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 31 Jul 2021 15:50:14 +0000 (11:50 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 31 Jul 2021 15:50:14 +0000 (11:50 -0400)
commitef12f32c0870b73ab7589ffc178094ac9ba3e84f
treec11fcf7a9ce313e283164823825112241fccc0b9
parent89404a01b4dadab8231dfa08cab507191c2ac929
Use elog, not Assert, to report failure to provide an outer snapshot.

As of commit 84f5c2908, executing SQL commands (via SPI or otherwise)
requires having either an active Portal, or a caller-established
active snapshot.  We were simply Assert'ing that that's the case.
But we've now had a couple different reports of people testing
extensions that didn't meet this requirement, and were confused by
the resulting crash.  Let's convert the Assert to a test-and-elog,
in hopes of making the issue clearer for extension authors.

Per gripes from Liu Huailing and RekGRpth.  Back-patch to v11,
like the prior commit.

Discussion: https://postgr.es/m/OSZPR01MB6215671E3C5956A034A080DFBEEC9@OSZPR01MB6215.jpnprd01.prod.outlook.com
Discussion: https://postgr.es/m/17035-14607d308ac8643c@postgresql.org
src/backend/tcop/pquery.c