2023年2月19日(日) 9:51 Christophe Pettus <xof@xxxxxxxxxxxx>: > > > > > On Feb 18, 2023, at 15:49, Bryn Llewellyn <bryn@xxxxxxxxxxxx> wrote: > > > > I’ve searched in vain for an account of how "autocommit" mode actually works. > > I realize now I may have misinterpreted your question... apologies if so! If you mean the BEGIN and COMMIT statement that some client libraries insert into the stream when autocommit is off, that's the client, not PostgreSQL. > > PostgreSQL has no idea that mode even exists: it either sees statements without transactions, which run in their own transaction, or BEGIN / COMMIT statements. Because client stacks have traditionally loved to provide their own transaction semantics, they might inject BEGIN and COMMIT statements, but that's not something PostgreSQL sees. Historical trivia: PostgreSQL had a (backend) "autocommit" GUC in 7.3 only, which remained as a dummy GUC until 9.5 (see: https://pgpedia.info/a/autocommit.html ). Regards Ian Barwick