Tom, I'm implementing a small abstraction layer for event-driven result streaming on PostgreSQL and MariaDB for Ruby, and I'll endeavor to report back with some numbers once I have enough of it working to benchmark something meaningful. Thanks for your patience and help. Kind regards, Samuel On Tue, 30 Jun 2020 at 02:06, Tom Lane <tgl@xxxxxxxxxxxxx> wrote: > > Samuel Williams <space.ship.traveller@xxxxxxxxx> writes: > > Those methods don't seem to have an equivalent in libpq - you can use > > PQgetResult but it buffers all the rows. Using single row mode results > > in many results for each query (seems like a big overhead). > > Have you got any actual evidence for that? Sure, the overhead is > more than zero, but does it mean anything in comparison to the other > costs of data transmission? > > > Maybe the statement about efficiency is incorrect, but it would be > > nice if you could incrementally stream a single result set more > > easily. > > More easily than what? If we did not construct a PGresult then we would > need some other abstraction for access to the returned row, dealing with > error cases, etc etc. That would mean a lot of very duplicative API code > in libpq, and a painful bunch of adjustments in client code. > > regards, tom lane