Re: GUC thread-safety approaches
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: David Rowley <dgrowleyml@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-11-19T08:04:04Z
Lists: pgsql-hackers
On 18.11.25 23:39, David Rowley wrote: > On Tue, 18 Nov 2025 at 21:50, Peter Eisentraut <peter@eisentraut.org> wrote: >> where get_config_val_*() would be a thin wrapper around hash_search() >> (a bit like the existing GetConfigOption() and find_option(), but >> without all the error checking). >> >> Would that be too expensive? > > Why couldn't in-core GUCs be fields in the Session struct and have a > hash table for storage of custom GUCs, and allow core to access the > fields directly? Extensions would need to go through a function which > does the hash lookup. Until now, we've made it so that in-core and custom GUCs behave exactly the same, once defined. Breaking that apart would create additional complexity. Also, as a general design principle in PostgreSQL, extensions should have access to the same things as in-core code, and in-core code should use the APIs provided to extensions.