Re: Bug in documentation: https://www.postgresql.org/docs/current/spi-examples.html
От | David G. Johnston |
---|---|
Тема | Re: Bug in documentation: https://www.postgresql.org/docs/current/spi-examples.html |
Дата | |
Msg-id | CAKFQuwZjEOJR8i7OLaxLxUCBR4aRU2PL_Xg1UFbUUkmPGxz73Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Bug in documentation: https://www.postgresql.org/docs/current/spi-examples.html (Curt Kolovson <ckolovson@gmail.com>) |
Ответы |
Re: Bug in documentation: https://www.postgresql.org/docs/current/spi-examples.html
|
Список | pgsql-docs |
On Mon, Jul 17, 2023 at 7:45 PM Curt Kolovson <ckolovson@gmail.com> wrote:
I’d vote for showing both (with RETURNING and without), since without it the second argument to SPI_exec has no effect in this example, which may not be obvious. That seems to be one of the subtle points illustrated by this example.
I concur:
=> SELECT execq('CREATE TABLE a (x integer)', 0); // start at 0
=> INSERT INTO a VALUES (execq('INSERT INTO a VALUES (0)', 0)); // insert 2
=> SELECT execq('SELECT * FROM a', 0);
=> INSERT INTO a VALUES (execq('INSERT INTO a VALUES (0)', 0)); // insert 2
=> SELECT execq('SELECT * FROM a', 0);
+ => SELECT execq('INSERT INTO a SELECT x + 2 FROM a returning x', 1); -- one more
+ -- (IIUC non-deterministically regardless of observed behavior even if there were a limit in the SELECT)
=> SELECT execq('INSERT INTO a SELECT x + 2 FROM a', 1); // three more
=> SELECT execq('SELECT * FROM a', 10); // 6 as 10 is a limit
=> SELECT execq('SELECT * FROM a', 10); // 6 as 10 is a limit
...[next block]
David J.
В списке pgsql-docs по дате отправления: