Re: AllocSetContextCreate changes breake extensions

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: pgsql-hackers(at)postgresql(dot)org, Christoph Berg <cb(at)df7cb(dot)de>
Subject: Re: AllocSetContextCreate changes breake extensions
Date: 2018-10-12 17:51:53
Message-ID: 23351.1539366713@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andres Freund <andres(at)anarazel(dot)de> writes:
> But can't we just do something like:

> #if defined(HAVE__BUILTIN_CONSTANT_P) && defined(HAVE__VA_ARGS)
> #define AllocSetContextCreate(parent, name, ...) \
> (StaticAssertExpr(__builtin_constant_p(name), \
> "memory context names must be constant strings"), \
> AllocSetContextCreateExtended(parent, name, __VA_ARGS__))
> #else
> #define AllocSetContextCreate \
> AllocSetContextCreateExtended
> #endif

> The set of compilers that have __builtin_constant_p and not vararg
> macros got to be about empty.

Yeah, fair point, and anyway we don't need the StaticAssert to exist
everywhere. I'll make it so.

Shall we also backpatch the ALLOCSET_*_SIZES macros as Christoph
suggested? I'm not convinced of the usefulness of that, since
extensions would still have to cope with them not being present
when building against existing minor releases.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2018-10-12 17:56:55 Re: AllocSetContextCreate changes breake extensions
Previous Message Andres Freund 2018-10-12 17:46:24 Re: AllocSetContextCreate changes breake extensions