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 |
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 |