I’ve searched in vain for an account of how "autocommit" mode actually works. 
(I tried the built-in search feature within the PG docs. And I tried Google.)

It seems clear enough that turning "autocommit" mode "on" or "off" is done by 
using a client-env-specific command like "\set" is psql, or "SET" in ECPG 
(Embedded SQL in C) or "self.session.set_session(autocommit=...)" in Python. 
And that the mode is a property of the current session.

But it's not clear who actually implements the opening "start transaction" and 
the closing "commit" around every submitted SQL statement when autocommit is 
"on".

Is this done in client-side code (maybe implying three round trips per intended 
SQL statement)? Or is it done server-side?

Reply via email to