From 785affc1d653bac43b7d4fad93f22e9e51aefcc1 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 31 Aug 2020 13:20:04 -0400
Subject: [PATCH] doc:  clarify the useful features of procedures

This was not clearly documented when procedures were added in PG 11.

Reported-by: Robin Abbi

Discussion: https://postgr.es/m/CAGmg_NX327KKVuJmbWZD=pGutYFxzZjX1rU+3ji8UuX=8ONn9Q@mail.gmail.com

Backpatch-through: 11
---
 doc/src/sgml/xfunc.sgml | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml
index 6de464c654..732d935521 100644
--- a/doc/src/sgml/xfunc.sgml
+++ b/doc/src/sgml/xfunc.sgml
@@ -84,8 +84,11 @@
     A procedure is a database object similar to a function.  The difference is
     that a procedure does not return a value, so there is no return type
     declaration.  While a function is called as part of a query or DML
-    command, a procedure is called explicitly using
-    the <xref linkend="sql-call"/> statement.
+    command, a procedure is called in isolation using
+    the <xref linkend="sql-call"/> command.  If the CALL command is not
+    part of an explicit transaction, a procedure in many server-side
+    languages can commit, rollback, and begin new transactions during
+    its execution, which is not possible in functions.
    </para>
 
    <para>