summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/src/sgml/protocol.sgml21
1 files changed, 11 insertions, 10 deletions
diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml
index 5a3d6fdb5a3..b0fea8f5d5d 100644
--- a/doc/src/sgml/protocol.sgml
+++ b/doc/src/sgml/protocol.sgml
@@ -1070,16 +1070,17 @@ SELCT 1/0;<!-- this typo is intentional -->
<para>
If the client has not issued an explicit <command>BEGIN</command>,
- then each Sync ordinarily causes an implicit <command>COMMIT</command>
- if the preceding step(s) succeeded, or an
- implicit <command>ROLLBACK</command> if they failed. However, there
- are a few DDL commands (such as <command>CREATE DATABASE</command>)
- that cannot be executed inside a transaction block. If one of
- these is executed in a pipeline, it will fail unless it is the first
- command in the pipeline. Furthermore, upon success it will force an
- immediate commit to preserve database consistency. Thus a Sync
- immediately following one of these commands has no effect except to
- respond with ReadyForQuery.
+ then an implicit transaction block is started and each Sync ordinarily
+ causes an implicit <command>COMMIT</command> if the preceding step(s)
+ succeeded, or an implicit <command>ROLLBACK</command> if they failed.
+ This implicit transaction block will only be detected by the server
+ when the first command ends without a sync. There are a few DDL
+ commands (such as <command>CREATE DATABASE</command>) that cannot be
+ executed inside a transaction block. If one of these is executed in a
+ pipeline, it will fail unless it is the first command after a Sync.
+ Furthermore, upon success it will force an immediate commit to preserve
+ database consistency. Thus a Sync immediately following one of these
+ commands has no effect except to respond with ReadyForQuery.
</para>
<para>