Re: Retrieving query results

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Igor Korot <ikorot01@gmail.com>
Cc: Michael Paquier <michael.paquier@gmail.com>, pgsql-general <pgsql-general@postgresql.org>
Date: 2017-08-24T14:56:33Z
Lists: pgsql-general
Igor Korot <ikorot01@gmail.com> writes:
> On Thu, Aug 24, 2017 at 8:51 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> I think what we need is to (1) introduce some error checking in libpq so
>> that it reports an error if the resultset exceeds 2G rows --- right now
>> it'll just crash, I fear, and (2) change the documentation so that this
>> is explained as a library-wide limitation and not just a problem with
>> PQntuples.

> Does this mean that querying a table with a big number of rows will
> crash the psql?

I haven't tried it, but it sure looks like it would, if you don't hit
OOM first.  pqAddTuple() isn't doing anything to guard against integer
overflow.  The lack of reports implies that no one has ever tried to
retrieve even 1G rows, let alone more ...

			regards, tom lane


Commits

  1. Doc: document libpq's restriction to INT_MAX rows in a PGresult.

  2. Teach libpq to detect integer overflow in the row count of a PGresult.