Có vẻ như bạn có thể muốn sử dụng giao diện lập trình máy chủ (SPI) để triển khai thủ tục được lưu trữ dưới dạng hàm ngôn ngữ C chạy bên trong back-end PostgreSQL.
Sử dụng SPI_connect
để thiết lập SPI.
Bây giờ SPI_prepare_cursor
một truy vấn, sau đó đến SPI_cursor_open
nó. SPI_cursor_fetch
các hàng từ nó và SPI_cursor_close
nó khi hoàn thành. Lưu ý rằng SPI_cursor_fetch
cho phép bạn tìm nạp hàng loạt hàng.
SPI_finish
để dọn dẹp khi hoàn tất.
Bạn có thể trả về các hàng kết quả thành một bộ tuplestore khi tạo chúng, tránh phải tạo toàn bộ bảng trong bộ nhớ. Xem ví dụ trong bất kỳ hàm nào trong số các hàm set-return trong mã nguồn PostgreSQL. Bạn cũng có thể muốn xem SPI_returntuple
chức năng trợ giúp.
Xem thêm: Các hàm ngôn ngữ C và mở rộng SQL .
Nếu quan tâm đến tốc độ tối đa, khách hàng của bạn có thể muốn sử dụng giao thức nhị phân libpq qua libpqtypes để nó nhận dữ liệu được tạo ra bởi quy trình sử dụng SPI phía máy chủ của bạn với chi phí tối thiểu.