Sepertinya Anda mungkin ingin menggunakan antarmuka pemrograman server (SPI) untuk mengimplementasikan prosedur tersimpan sebagai fungsi bahasa C berjalan di dalam back-end PostgreSQL.
Gunakan SPI_connect
untuk menyiapkan SPI.
Sekarang SPI_prepare_cursor
kueri, lalu SPI_cursor_open
dia. SPI_cursor_fetch
baris darinya dan SPI_cursor_close
itu ketika dilakukan. Perhatikan bahwa SPI_cursor_fetch
memungkinkan Anda mengambil kumpulan baris.
SPI_finish
untuk dibersihkan setelah selesai.
Anda dapat mengembalikan baris hasil ke dalam tuplestore saat Anda membuatnya, menghindari kebutuhan untuk membangun seluruh tabel dalam memori. Lihat contoh di salah satu fungsi set-return dalam kode sumber PostgreSQL. Anda mungkin juga ingin melihat SPI_returntuple
fungsi pembantu.
Lihat juga:Fungsi bahasa C dan memperluas SQL .
Jika kecepatan maksimum menarik, klien Anda mungkin ingin menggunakan protokol biner libpq melalui libpqtypes sehingga menerima data yang dihasilkan oleh prosedur penggunaan SPI sisi server Anda dengan overhead minimal.