Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
> I would like to implement read-only transactions following the SQL spec,
> ...
> I think it's light-weight and marginally useful.
"Light-weight" would depend on your intended implementation, I suppose.
Where are you planning to check this?
Also, the fact that you are excluding temp tables seems to suggest that
this is a very high-level, abstract notion of read-only-ness; it's
certainly got little to do with whether we try to write on the disk.
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.
regards, tom lane