Subject: invalid memory alloc request size Error

From: Roland Che <[email-masked]>
Date: Wed, 5 Apr 2023 05:31:37 -0400

Hello All,

I am having below error when our ANALYZE script runs. Our maintenance
work_mem is set to 128M but when this analyze script is ran, the
maintenance work_mem is set to session level at 2G but we are still
getting the error on some table columns.

ERROR: invalid memory alloc request size 8589934668.

I saw a past dba had to disabled statistics by setting the statistics
value to 0 meaning stats will not be updated on such table columns. He
used these two commands to solve the error which kind of shows if
queries use those columns, like it will be slow as stats will not be
updated .

 ALTER COLUMN position SET STATISTICS 0;

ALTER COLUMN position SET STORAGE EXTENDED;

Please can anyone advise on how to go about this error?
cpu 8
Ram 32 on that server.

Regards
Roland

---

From: Tom Lane <[email-masked]>
Date: Wed, 05 Apr 2023 17:46:04 -0400

> ERROR: invalid memory alloc request size 8589934668.

I am guessing that this happens when one of the pg_statistic entries
for the column exceeds the datum size limit of 1GB.  Do you have
exceedingly wide values, and/or a very high default_statistics_target
setting?

> value to 0 meaning stats will not be updated on such table columns.

Dialing that setting back to zero is probably excessive.  But if you
don't want to back off default_statistics_target overall, you'll
need to set a smaller value for your very wide column(s).

I'm kind of surprised that this is an issue really, because ANALYZE
tends to discriminate against storing very wide values at all.
Can you provide more information about the column that's problematic?
Do you have extended statistics of any sort on it?

			regards, tom lane