Tom Lane writes:
> Where are you planning to check this?
In general, I'm trying to align it like a (self-imposed) permission check.
For the query-like statements I'm looking at ExecCheckRTPerms(). (That
also handles EXECUTE and EXPLAIN most easily.) Utility statements have a
check in tcop/utility.c, COPY does it in DoCopy() (out of convenience).
In any case you don't pay more than a 'if (XactReadOnly && ...)' if it's
not activated.
> As such it's not clear to me why vacuum and checkpoint are included in
> the forbidden list. They don't logically change any data. The same
> might be said of reindex.
You're right. I'll allow that class of statements.
--
Peter Eisentraut peter_e@gmx.net