Rethink recently-added SPI interfaces.
Tom 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: https://postgr.es/m/CAFj8pRCLPdDAETvR7Po7gC5y_ibkn_-bOzbeJb39WHms01194Q@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| 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
- patch: reduce overhead of execution of CALL statement in no atomic mode from PL/pgSQL 10 messages · 2020-11-02 → 2021-01-26