Het klinkt alsof je waarschijnlijk de serverprogrammeerinterface (SPI) om een opgeslagen procedure te implementeren als een C-taalfunctie draait in de PostgreSQL-backend.
Gebruik SPI_connect
om de SPI in te stellen.
Nu SPI_prepare_cursor
een vraag, dan SPI_cursor_open
het. SPI_cursor_fetch
rijen ervan en SPI_cursor_close
het wanneer gedaan. Merk op dat SPI_cursor_fetch
stelt u in staat batches van rijen op te halen.
SPI_finish
om op te ruimen als je klaar bent.
U kunt de resultaatrijen in een tuplestore retourneren terwijl u ze genereert, zodat u niet de hele tabel in het geheugen hoeft op te bouwen. Bekijk voorbeelden in een van de set-retourfuncties in de PostgreSQL-broncode. Je zou ook kunnen kijken naar de SPI_returntuple
helpfunctie.
Zie ook:C-taalfuncties en het uitbreiden van SQL .
Als maximale snelheid van belang is, kan uw klant het binaire protocol libpq gebruiken via libpqtypes zodat het de gegevens ontvangt die zijn geproduceerd door uw server-side SPI-gebruikende procedure met minimale overhead.