The NOTIFY page said this already, but the PREPARE TRANSACTION page
missed it.
Discussion: https://postgr.es/m/
20171024010602.1488.80066@wrigleys.postgresql.org
It is not currently allowed to <command>PREPARE</> a transaction that
has executed any operations involving temporary tables,
created any cursors <literal>WITH HOLD</>, or executed
- <command>LISTEN</> or <command>UNLISTEN</>.
+ <command>LISTEN</>, <command>UNLISTEN</>, or
+ <command>NOTIFY</>.
Those features are too tightly
tied to the current session to be useful in a transaction to be prepared.
</para>