Improve error message for MaxAllocSize overrun in accumArrayResult.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 14 Jul 2023 14:35:24 +0000 (10:35 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 14 Jul 2023 14:35:49 +0000 (10:35 -0400)
commitb8d3dae00f6c49d0c41abd5b36e2588a81abe5be
treef9e4b5c0ac4ca645007bf3207ea59cfc83f70d08
parent00f2a2556c9b23050e4f987e5d563b6856b83fc2
Improve error message for MaxAllocSize overrun in accumArrayResult.

Before, if you went past about 64M array elements in array_agg() and
allied functions, you got a generic "invalid memory alloc request
size" error.  This patch replaces that with "array size exceeds the
maximum allowed", which seems more user-friendly since it points you
to needing to reduce the size of your array result.  (This is the
same error text you'd get from construct_md_array in the event of
overrunning the maximum physical size for the finished array.)

Per question from Shaozhong Shi.  Since this hasn't come up often,
I don't feel a need to back-patch.

Discussion: https://postgr.es/m/CA+i5JwYtVS9z2E71PcNKAVPbOn4R2wuj-LqbJsYr_XOz73q7dQ@mail.gmail.com
src/backend/utils/adt/arrayfuncs.c