po 24. 8. 2020 v 17:38 odesílatel Bruce Momjian <bruce@momjian.us> napsal:
On Mon, Aug 24, 2020 at 11:35:57AM -0400, Bruce Momjian wrote: > On Mon, Aug 24, 2020 at 05:24:19PM +0200, Pavel Stehule wrote: > > > > > > po 24. 8. 2020 v 17:01 odesílatel Bruce Momjian <bruce@momjian.us> napsal: > > > > On Sat, Aug 22, 2020 at 01:21:43PM -0700, David G. Johnston wrote: > > > On Sat, Aug 22, 2020 at 10:14 AM Bruce Momjian <bruce@momjian.us> wrote: > > > > > > On Fri, Aug 21, 2020 at 07:42:35PM -0700, David G. Johnston wrote: > > > > > > > [...] the CALL command. If the CALL command is not part of an > > explicit > > > > transaction a procedure can also manage multiple transactions > > during its > > > > execution. > > > > > > OK, how is this updated patch? > > > > > > > > > Looks good. I felt "begin and commit" was a bit wordy but it works. > > > > So, I was worried that "manage multiple transactions" could imply > > something like savepoints, which can be managed by functions. It is > > really the top-level begin/commit that is unique for procedures. > > > > Functions is executed under outer transaction every time - rollback to save > > point hasn't impact on outer transaction. Inside procedures (in special case) > > can be transactions ended (by statements COMMIT or ROLLBACK). Immediately is > > started new transaction. > > Well, savepoints control what commands are considered _part_ of the > outer transaction, so in a way you are managing what is in the outer > transaction. This is why begin/commit was clearer for me. Maybe "start > and commit" is clearer?
Should the new text be?
a procedure can commit and begin new transactions during its execution.
sure. Maybe enhancing about sentence like "it is not possible in a function."
and
"a procedure can commit (or rollback) and begin new transactions during its execution"