Hi čt 20. 9. 2018 v 17:55 odesílatel Dave Cramer <davecra...@gmail.com> napsal:
> Is there somewhere that the transaction semantics inside a procedure are > documented ? From what I can tell transactions start from the first DML > statement and end implicitly when the procedure exits. Commit or Rollback > can be called anytime inside the transaction and this implicitly starts > another transaction. > > Is there anything else I am missing ? Does DDL get applied after the > transaction ends ? > The CALL statement starts possible chain of transactions. You can check pg_stat_activity - transaction is started by CALL command. > > I do find this somewhat surprising as Postgres typically requires a BEGIN > statement to start a transaction block. > When SELECT is not executed under explicitly started transactions, then transaction is started implicitly before execution of SELECT command. There is different behave - SELECT is executed under only one transaction without exception. The procedure looks like client batch executed on server. It can be sequence of transactions. Regards Pavel > Thanks > Dave Cramer >