On Mon, Jul 17, 2023 at 4:53 PM Curt Kolovson <ckolov...@gmail.com> wrote:
> The actual results (shown below) are different than shown on this doc > page. The reason is because the second parameter to the UDF that is > passed to SPI_exec is the maximum number of rows to return, or 0 for > no limit. It is not the maximum number of rows to process. In the case > of "SELECT execq('INSERT INTO a SELECT x + 2 FROM a', 1)", it returned > 0 rows, but it inserted (processed) 2 rows. This example should be > corrected. > > > db=# SELECT execq('INSERT INTO a SELECT x + 2 FROM a', 1); > execq > ------- > 2 > (1 row) > > SPI_exec sees "INSERT 0 2" as the command tag from the SQL command you passed and so 2 is the output of the execq function call. No INFO messages appear because you did not include a returning clause. The 1 you passed to the call is immaterial if the query you supply doesn't produce a result set. David J.