Re: PSQL error: total cell count of XXX exceeded

From: Hongxu Ma <interma(at)outlook(dot)com>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: PSQL error: total cell count of XXX exceeded
Date: 2023-09-11 06:50:39
Message-ID: TYBP286MB03510C21D207F77D80CF6235B4F2A@TYBP286MB0351.JPNP286.PROD.OUTLOOK.COM
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I created a patch to fix it.
Really appreciate to anyone can help to review it.
Thanks.

________________________________
From: Hongxu Ma <interma(at)outlook(dot)com>
Sent: Saturday, August 26, 2023 19:19
To: David G. Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: PSQL error: total cell count of XXX exceeded

Thank you David.

From the code logic, I don't think this check is meant to check the limit:
If it enters the double-loop (cont.nrows * cont.ncolumns) in printQuery(), the check should be always false (except overflow happened). So, if want to check the limit, we could have done this check before the double-loop: just checking PGresult and reports error earlier.

> I wouldn’t be adverse to an improved error message, and possibly documenting said limit.

Agreed with you, current error message may even report a negative value, it's very confusing for user. It's better to introduce a limit here. Or using a bigger integer type (e.g. long) for them, but it's also have the theoretical upbound.

Thanks.

________________________________
From: David G. Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>
Sent: Saturday, August 26, 2023 12:09
To: Hongxu Ma <interma(at)outlook(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: PSQL error: total cell count of XXX exceeded

On Friday, August 25, 2023, Hongxu Ma <interma(at)outlook(dot)com<mailto:interma(at)outlook(dot)com>> wrote:

When I tried to select a big amount of rows, psql complains a error "Cannot add cell to table content: total cell count of 905032704 exceeded."

We should use long for ncolumns and nrows and give a more obvious error message here.

Any thoughts? or some other hidden reasons?

9 millions cells seems more than realistic a limit for a psql query result output. In any case it isn’t a bug, the code demonstrates that fact by producing an explicit error.

I wouldn’t be adverse to an improved error message, and possibly documenting said limit.

David J.

Attachment Content-Type Size
0001-Using-long-type-in-printTableAddCell.patch application/octet-stream 1.6 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2023-09-11 06:53:05 Re: [PoC] pg_upgrade: allow to upgrade publisher node
Previous Message Michael Paquier 2023-09-11 06:38:19 Re: persist logical slots to disk during shutdown checkpoint