Unify src/common/'s definitions of MaxAllocSize.

As threatened in the previous patch, define MaxAllocSize in
src/include/common/fe_memutils.h rather than having several
copies of it in different src/common/*.c files.  This also
provides an opportunity to document it better.

While this would probably be safe to back-patch, I'll refrain
(for now anyway).
This commit is contained in:
Tom Lane 2024-10-28 14:39:01 -04:00
parent bd28431672
commit 11b7de4a78
4 changed files with 12 additions and 10 deletions

View File

@ -24,9 +24,6 @@
#include "postgres_fe.h"
/* It's possible we could use a different value for this in frontend code */
#define MaxAllocSize ((Size) 0x3fffffff) /* 1 gigabyte - 1 */
#endif

View File

@ -24,10 +24,6 @@
#include "utils/memutils.h"
#else
#include "postgres_fe.h"
/* It's possible we could use a different value for this in frontend code */
#define MaxAllocSize ((Size) 0x3fffffff) /* 1 gigabyte - 1 */
#endif
#include "common/saslprep.h"

View File

@ -24,9 +24,6 @@
#include "postgres_fe.h"
/* It's possible we could use a different value for this in frontend code */
#define MaxAllocSize ((Size) 0x3fffffff) /* 1 gigabyte - 1 */
#endif
#include "lib/stringinfo.h"

View File

@ -9,6 +9,18 @@
#ifndef FE_MEMUTILS_H
#define FE_MEMUTILS_H
/*
* Assumed maximum size for allocation requests.
*
* We don't enforce this, so the actual maximum is the platform's SIZE_MAX.
* But it's useful to have it defined in frontend builds, so that common
* code can check for oversized requests without having frontend-vs-backend
* differences. Also, some code relies on MaxAllocSize being no more than
* INT_MAX/2, so rather than setting this to SIZE_MAX, make it the same as
* the backend's value.
*/
#define MaxAllocSize ((Size) 0x3fffffff) /* 1 gigabyte - 1 */
/*
* Flags for pg_malloc_extended and palloc_extended, deliberately named
* the same as the backend flags.