Rethink recently-added SPI interfaces.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: d5a83d79c9f9b660a6a5a77afafe146d3c8c6f46
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2021-01-26T21:37:12Z
Releases: 14.0
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: https://postgr.es/m/CAFj8pRCLPdDAETvR7Po7gC5y_ibkn_-bOzbeJb39WHms01194Q@mail.gmail.com

Files

PathChange+/−
doc/src/sgml/spi.sgml modified +189 −117
src/backend/executor/spi.c modified +50 −64
src/include/executor/spi.h modified +14 −10
src/pl/plpgsql/src/pl_exec.c modified +27 −19

Documentation touched

Discussion