Re: our checks for read-only queries are not great
Robert Haas <[email protected]> Mon, 13 Jan 2020 14:14:05 -0500
| Newsgroups | gmane.comp.db.postgresql.devel.general |
|---|---|
| Message-ID | <CA+TgmoabZCY8Dtho6dCrrJvOLieK56yedqzRNM_H1v23KP8n-A@mail.gmail.com> |
On Mon, Jan 13, 2020 at 5:57 AM Peter Eisentraut <[email protected]> wrote: > 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? No, but committing one changes the database contents as seen by a subsequent pg_dump. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company