postgresql/src/interfaces/libpq
Tom Lane 4643a2b265 Support retrieval of results in chunks with libpq.
This patch generalizes libpq's existing single-row mode to allow
individual partial-result PGresults to contain up to N rows, rather
than always one row.  This reduces malloc overhead compared to plain
single-row mode, and it is very useful for psql's FETCH_COUNT feature,
since otherwise we'd have to add code (and cycles) to either merge
single-row PGresults into a bigger one or teach psql's
results-printing logic to accept arrays of PGresults.

To avoid API breakage, PQsetSingleRowMode() remains the same, and we
add a new function PQsetChunkedRowsMode() to invoke the more general
case.  Also, PGresults obtained the old way continue to carry the
PGRES_SINGLE_TUPLE status code, while if PQsetChunkedRowsMode() is
used then their status code is PGRES_TUPLES_CHUNK.  The underlying
logic is the same either way, though.

Daniel Vérité, reviewed by Laurenz Albe and myself (and whacked
around a bit by me, so any remaining bugs are my fault)

Discussion: https://postgr.es/m/CAKZiRmxsVTkO928CM+-ADvsMyePmU3L9DQCa9NwqjvLPcEe5QA@mail.gmail.com
2024-04-06 20:45:11 -04:00
..
po Update copyright for 2024 2024-01-03 20:49:05 -05:00
t Update copyright for 2024 2024-01-03 20:49:05 -05:00
test Update copyright for 2024 2024-01-03 20:49:05 -05:00
.gitignore Run tap tests in src/interfaces/libpq. 2022-02-26 16:51:47 -08:00
exports.txt Support retrieval of results in chunks with libpq. 2024-04-06 20:45:11 -04:00
fe-auth-sasl.h Refactor SASL exchange to return tri-state status 2024-03-21 14:45:46 +01:00
fe-auth-scram.c Refactor SASL exchange to return tri-state status 2024-03-21 14:45:46 +01:00
fe-auth.c Explicitly require password for SCRAM exchange 2024-03-21 14:45:54 +01:00
fe-auth.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
fe-cancel.c Fix typo in comment 2024-03-25 14:49:17 +01:00
fe-connect.c libpq: Add encrypted and non-blocking query cancellation routines 2024-03-12 17:32:25 +01:00
fe-exec.c Support retrieval of results in chunks with libpq. 2024-04-06 20:45:11 -04:00
fe-gssapi-common.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
fe-gssapi-common.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
fe-lobj.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
fe-misc.c Expose PQsocketPoll via libpq 2024-04-02 10:15:56 -04:00
fe-print.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
fe-protocol3.c Support retrieval of results in chunks with libpq. 2024-04-06 20:45:11 -04:00
fe-secure-common.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
fe-secure-common.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
fe-secure-gssapi.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
fe-secure-openssl.c Avoid "unused variable" warning on non-USE_SSL_ENGINE platforms. 2024-04-01 19:01:36 -04:00
fe-secure.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
fe-trace.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
legacy-pqsignal.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
libpq-events.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
libpq-events.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
libpq-fe.h Support retrieval of results in chunks with libpq. 2024-04-06 20:45:11 -04:00
libpq-int.h Support retrieval of results in chunks with libpq. 2024-04-06 20:45:11 -04:00
Makefile Remove AIX support 2024-02-28 15:17:23 +04:00
meson.build Remove AIX support 2024-02-28 15:17:23 +04:00
nls.mk Rename port/thread.c to port/user.c. 2023-07-09 18:17:09 +12:00
pg_service.conf.sample Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
pqexpbuffer.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pqexpbuffer.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
pthread-win32.c Clean up Windows-specific mutex code in libpq and ecpglib. 2024-02-09 11:11:39 -05:00
README Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
win32.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
win32.h Recognize network-failure errnos as indicating hard connection loss. 2020-10-10 13:28:12 -04:00

src/interfaces/libpq/README

This directory contains the C version of Libpq, the POSTGRES frontend library.