Re: Small memory fixes for pg_createsubcriber
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Cc: Andres Freund <andres@anarazel.de>, Euler Taveira <euler@eulerto.com>,
"ranier.vf@gmail.com" <ranier.vf@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-02-12T17:38:21Z
Lists: pgsql-hackers
=?utf-8?Q?Dagfinn_Ilmari_Manns=C3=A5ker?= <ilmari@ilmari.org> writes: > Tom Lane <tgl@sss.pgh.pa.us> writes: >> libpq-fe.h has to be compilable by application code that has never >> heard of pg_config.h let alone c.h, so we'd have to tread carefully >> about not breaking that property. But it seems like this would be >> worth looking into. > The fallback code isn't exactly complicated, so we could just duplicate > it in libpq-fe.h: > #ifndef __has_attribute > #define __has_attribute(attribute) 0 > #endif The problem with that approach is the likelihood of stomping on symbols that a calling application will use later. I think we really need a controlling #ifdef check on some PG_FOO symbol that we can be sure no outside application will have defined. Roughly speaking, #ifdef PG_USE_ALLOCATOR_CHECKS #define pg_attribute_malloc __attribute__((malloc)) ... #else #define pg_attribute_malloc ... #endif and then we could make definition of PG_USE_ALLOCATOR_CHECKS be conditional on having the right compiler behavior, rather than trusting that a nest of #ifdef checks is sufficient to detect that. regards, tom lane
Commits
-
pg_upgrade: Fix inconsistency in memory freeing
- 9ca2145b00fb 16.9 landed
- ee78823ff5f6 17.5 landed
- 2a083ab807db 18.0 landed
-
pg_amcheck: Fix inconsistency in memory freeing
- 35a591a0486f 14.18 landed
- ec741d48036a 15.13 landed
- 816149dc6bf9 16.9 landed
- f903d4da9276 17.5 landed
- 48e4ae9a0707 18.0 landed
-
Fix some inconsistencies with memory freeing in pg_createsubscriber
- ff6d9cfcb17e 17.4 landed
- 5b94e2753439 18.0 landed
-
Drop pre-existing subscriptions from the converted subscriber.
- 4867f8a555ce 18.0 cited