On 2020-01-10 14:41, Robert Haas wrote:
> This rule very nearly matches the current behavior: it explains why
> temp table operations are allowed, and why ALTER SYSTEM is allowed,
> and why REINDEX etc. are allowed. However, there's a notable
> exception: PREPARE, COMMIT PREPARED, and ROLLBACK PREPARED are allowed
> in a read-only transaction. Under the "doesn't change pg_dump output"
> criteria, the first and third ones should be permitted but COMMIT
> PREPARED should be denied, except maybe if the prepared transaction
> didn't do any writes (and in that case, why did we bother preparing
> it?). Despite that, this rule does a way better job explaining the
> current behavior than anything else suggested so far.
I don't follow. Does pg_dump dump prepared transactions?
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services