Re: SPI_connect, SPI_connect_ext return type
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: Tom Lane <tgl@sss.pgh.pa.us>, Stepan <sndcppg@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2024-08-12T12:39:04Z
Lists: pgsql-hackers
On 10.08.24 16:12, Tom Lane wrote: > Stepan <sndcppg@gmail.com> writes: >> Hi, hackers! If you look at the code in the src/backend/executor/spi.c file, >> you will see the SPI_connect function familiar to many there, which >> internally simply calls SPI_connect_ext. The return type is int, at the end >> it says return SPI_OK_CONNECT; >> It confuses me that nothing but OK, judging by the code, can return.(I >> understand that earlier, before 1833f1a1, it could also return >> SPI_ERROR_CONNECT). Therefore, I suggest making the returned value void >> instead of int and not checking the returned value. What do you think about >> this? > > That would break a lot of code (much of it not under our control) to > little purpose; it would also foreclose the option to return to using > SPI_ERROR_CONNECT someday. > > We go to a lot of effort to keep the SPI API as stable as we can > across major versions, so I don't see why we'd just randomly make > an API-breaking change like this. Here is a previous discussion: https://www.postgresql.org/message-id/flat/1356682025.20017.4.camel%40vanquo.pezone.net I like the idea that we would keep the API but convert most errors to exceptions.
Commits
-
Don't bother checking the result of SPI_connect[_ext] anymore.
- 218527d01456 18.0 landed