pgsql: Rethink recently-added SPI interfaces.

Started by Tom Laneover 5 years ago1 messagescomitters
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

Rethink recently-added SPI interfaces.

SPI_execute_with_receiver and SPI_cursor_parse_open_with_paramlist are
new in v14 (cf. commit 2f48ede08). Before they can get out the door,
let's change their APIs to follow the practice recently established by
SPI_prepare_extended etc: shove all optional arguments into a struct
that callers are supposed to pre-zero. The hope is to allow future
addition of more options without either API breakage or a continuing
proliferation of new SPI entry points. With that in mind, choose
slightly more generic names for them: SPI_execute_extended and
SPI_cursor_parse_open respectively.

Discussion: /messages/by-id/CAFj8pRCLPdDAETvR7Po7gC5y_ibkn_-bOzbeJb39WHms01194Q@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d5a83d79c9f9b660a6a5a77afafe146d3c8c6f46

Modified Files
--------------
doc/src/sgml/spi.sgml | 306 ++++++++++++++++++++++++++-----------------
src/backend/executor/spi.c | 114 +++++++---------
src/include/executor/spi.h | 24 ++--
src/pl/plpgsql/src/pl_exec.c | 46 ++++---
4 files changed, 280 insertions(+), 210 deletions(-)