BEGIN initiates a transaction block, that is, all statements after a BEGIN command will be executed in a single transaction until an explicit COMMIT or ROLLBACK is given. By default (without BEGIN), PostgreSQL executes transactions in “autocommit” mode, that is, each statement is executed in its own transaction and a commit is implicitly performed at the end of the statement (if execution was successful, otherwise a rollback is done).
I guess the pg_stat_database view column xact_commit refers to 'non-autocommit' transactions?
If so, should we say something like "Number of autocommit transactions...."
--
I recommend David Deutsch's <<The Beginning of Infinity>>