On 9/25/24 10:22 AM, Greg Sabino Mullane wrote: > On Tue, Sep 24, 2024 at 10:28 AM Tom Lane <tgl@sss.pgh.pa.us > <mailto:tgl@sss.pgh.pa.us>> wrote: > > It's even looser than that, really: it's the first statement that > requires an MVCC snapshot. > > > Hm....so why does "SELECT 1;" work as a transaction start marker then, > as opposed to "SHOW work_mem;", which does not? Do we simply consider > anything with a SELECT as needing a snapshot?
SELECT some_func();
Where some_func() does something that requires a snapshot.
But why does "SELECT 1;" need a snapshot? Heck, why does "SELECT <immutable>;" need a snapshot?