Peter,
> I would like to collect some specs on this feature. So does anyone have
> links to documentation of existing implementations, or their own spec
> writeup? A lot of people appear to have a very clear idea of this
> concept in their own head, so let's start collecting those.
Delta between SPs and Functions for PostgreSQL:
* SPs are executed using CALL or EXECUTE, and not SELECT.
* SPs do not return a value
** optional: SPs *may* have OUT parameters.
* SPs have internal transactions including begin/commit
** optional: SPs can run non-transaction statements, like CREATE INDEX CONCURRENTLY and VACUUM
** corollary: SPs may not be called as part of a larger query
** question: if an SP is called by another SP, what is its transaction context?
* optional: SPs can return multisets (ala SQL Server).
** question: how would multisets be handled on the client end?
--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com