Re: Mark all GUC variable as PGDLLIMPORT

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Chapman Flack <chap@anastigmatix.net>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Julien Rouhaud <rjuju123@gmail.com>, Michael Paquier <michael@paquier.xyz>, pgsql-hackers@lists.postgresql.org
Date: 2022-02-13T20:48:18Z
Lists: pgsql-hackers
Hi,

On 2022-02-13 15:36:16 -0500, Chapman Flack wrote:
> Clearly I'm not thinking here of the GUCs that are read-only views of
> values that are determined some other way. How many of those are there
> that are mutable, and could have their values changed without going
> through the GUC mechanisms?

Is there any GUCs where one needs this? There are a few GUCs frequently
changing values, but it's stuff like transaction_read_only. Where I don't
really see a use for constantly checking the value.


> Also, I think there are some options that are only represented by
> an int, float8, etc., when shown, but whose native internal form
> is something else, like a struct. I was definitely contemplating
> that you could 'subscribe' to one of those too, by passing the
> address of an appropriate struct. But of course a GetConfigOption()
> flavor could work that way too.

I have a very hard time seeing a use-case for this. Nor how it'd even work
with a struct - you can't just copy the struct contents, because of pointers
to objects etc.  I don't think there really are options like this anyway.

Greetings,

Andres Freund



Commits

  1. Remove PGDLLIMPORT marker from __pg_log_level

  2. Mark a few 'bbsink' related functions / variables static.

  3. Add some missing PGDLLIMPORT markings

  4. Apply PGDLLIMPORT markings broadly.

  5. Helper script to apply PGDLLIMPORT markings.

  6. Simplify declaring variables exported from libpgcommon and libpgport.