From 805a397db40bd49789946e8fe42e564d564fc27b Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sun, 28 Aug 2022 09:55:04 +0200 Subject: [PATCH] Add more detail why repalloc and pfree do not accept NULL pointers Per discussion, we choose not to change this. This just gives a little bit more information. Discussion: https://www.postgresql.org/message-id/flat/cf26e970-8e92-59f1-247a-aa265235075b%40enterprisedb.com --- src/backend/utils/mmgr/README | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/backend/utils/mmgr/README b/src/backend/utils/mmgr/README index 221b4bd3433..777481c83d3 100644 --- a/src/backend/utils/mmgr/README +++ b/src/backend/utils/mmgr/README @@ -67,6 +67,12 @@ chunk might later be repalloc'd larger; it can also be pfree'd without error. Similarly, repalloc allows realloc'ing to zero size. * pfree and repalloc do not accept a NULL pointer. This is intentional. +(For repalloc, this is necessary: As mentioned above, repalloc does +not depend on the current memory context. But then it needs to know +which memory context to do the allocation in. So the first allocation +has to be done outside of repalloc. For pfree, this behavior is +mostly historical and partially because the extra check would impact +performance.) The Current Memory Context