Re: [GENERAL] Retrieving query results
Igor Korot <ikorot01@gmail.com>
From: Igor Korot <ikorot01@gmail.com>
To: Michael Paquier <michael.paquier@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-general <pgsql-general@postgresql.org>
Date: 2025-12-17T05:26:56Z
Lists: pgsql-general
Hi, ALL, On Sun, Aug 27, 2017 at 11:05 PM Michael Paquier <michael.paquier@gmail.com> wrote: > > On Sun, Aug 27, 2017 at 12:12 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Michael Paquier <michael.paquier@gmail.com> writes: > >> On Fri, Aug 25, 2017 at 8:10 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > >>> I think the real problem occurs where we realloc the array bigger. > > > >> Looking at the surroundings, I think that it would be nice to have > >> pqAddTuple and PQsetvalue set an error message with this patch. > > > > Yeah, I was thinking about that myself - the existing design presumes > > that the only possible reason for failure of pqAddTuple is OOM, but > > it'd be better to distinguish "too many tuples" from true OOM. So > > we should also refactor to make pqAddTuple responsible for setting > > the error message. Might be best to do the refactoring first. > > Attached are two patches: > 1) 0001 refactors the code around pqAddTuple to be able to handle > error messages and assign them in PQsetvalue particularly. > 2) 0002 adds sanity checks in pqAddTuple for overflows, maximizing the > size of what is allocated to INT_MAX but now more. > > pqRowProcessor() still has errmsgp, but it is never used on HEAD. At > least with this set of patches it comes to be useful. We could rework > check_field_number() to use as well an error message string, but I > have left that out to keep things simple. Not sure if any complication > is worth compared to just copying the error message in case of an > unmatching column number. > > Attached is as well a small program I have used to test PQsetvalue > through PQcopyResult to see if results get correctly allocated at each > call, looking at the error message stacks on the way. Is this now part of the main libpq codebase? Thank you. > -- > Michael
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Doc: document libpq's restriction to INT_MAX rows in a PGresult.
- 2a82170a56cb 9.2.24 landed
- 1e6c36260635 9.3.20 landed
- 2338ad26374e 9.4.15 landed
- c7e990bb0f4d 9.5.10 landed
- 941e47fc43cc 9.6.6 landed
- ff59f30dc30e 10.0 landed
- 6cbee65eee20 11.0 landed
-
Teach libpq to detect integer overflow in the row count of a PGresult.
- dfd1042c6ae5 9.5.10 landed
- d391fb6c3802 9.3.20 landed
- bc95e5874ac9 9.6.6 landed
- b481b39b876f 10.0 landed
- a07058a6d43b 9.2.24 landed
- 2e70d6b5e99b 11.0 landed
- 1c53722ffd00 9.4.15 landed