Re: creating WITH HOLD cursors using SPI
От | Andrew Dunstan |
---|---|
Тема | Re: creating WITH HOLD cursors using SPI |
Дата | |
Msg-id | 42BC2DE8.1010405@dunslane.net обсуждение исходный текст |
Ответ на | creating WITH HOLD cursors using SPI (Abhijit Menon-Sen <ams@oryx.com>) |
Список | pgsql-hackers |
Abhijit Menon-Sen wrote: >Hi. > >I've been working on making it possible for PL/Perl users to fetch large >result sets one row at a time (the current spi_exec_query interface just >returns a big hash). > >The idea is to have spi_query call SPI_prepare/SPI_open_cursor, and have >an spi_fetchrow that calls SPI_cursor_fetch. It works well enough, but I >don't know how to reproduce spi_exec_query's error handling (it runs the >SPI_execute in a subtransaction). > >To do something similar, I would have to create a WITH HOLD cursor in my >spi_query function. But SPI_cursor_open provides no way to do this, and >it calls PortalStart before I can set CURSOR_OPT_HOLD myself. > >Suggestions? > > > > Abhijit, Thinking and reading about this some more, I think we should not try to mimic the error handling of the existing mechanism. Let's just provide a separate API using SPI_prepare/SPI_open_cursor/SPI_cursor_fetch, and leave the current mechanism in place - it's useful enough on small resultsets. Does that make sense? If so, can you do that, or give me what you have and let me bang on it? cheers andrew
В списке pgsql-hackers по дате отправления: