On Thu, Aug 6, 2020 at 06:10:52PM -0400, Bruce Momjian wrote:
> On Thu, Aug 6, 2020 at 02:30:55PM +0100, Robin Abbi wrote:
> > PostgreSQL went as far as release 10 without procedures.
> > Some third party resources written before 11 loosely conflate procedures
> > with
> > functions.
> > Some third party resources written before 11 accurately state PostgreSQL has
> > functions but not procedures.
> > Referring to the PostgreSQL docs for 11 on, procedures have been added.
> >
> > For someone like me, coming to the subject without much of a hinterland
> > other
> > than googling around, it seemed clear that there was a motivating case that
> > caused Procedures to be added to PostgreSQL, but I was not sufficiently
> > familiar with the domain to be able to readily intuit what it might have
> > been.
> >
> > For example, Procedures say they have no return value, yet Functions can
> > return
> > void. Not the same I agree, but I wouldn't be aware in which circumstances
> > it
> > mattered.
> >
> > For me, perhaps the most useful thing would have been a small example
> > highlighting the essential thing(s) that procedures can do that functions
> > could
> > not.
>
> Agreed, this doc area needs help.
I developed the attached patach for this. Is this sufficient?
--
Bruce Momjian <[email protected]> https://momjian.us
EnterpriseDB https://enterprisedb.com
The usefulness of a cup is in its emptiness, Bruce Lee
diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml
index 6de464c654..0b52feffe5 100644
--- a/doc/src/sgml/xfunc.sgml
+++ b/doc/src/sgml/xfunc.sgml
@@ -83,7 +83,8 @@
<para>
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
+ declaration. Procedures can also begin and commit transactions.
+ 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.
</para>