Re: Mark all GUC variable as PGDLLIMPORT - Mailing list pgsql-hackers
From | Robert Haas |
---|---|
Subject | Re: Mark all GUC variable as PGDLLIMPORT |
Date | |
Msg-id | CA+TgmoYHsRuyAeQkP_OM6e282F8CxzqC1XGkj7yvuVdeub3W-w@mail.gmail.com Whole thread Raw |
In response to | Re: Mark all GUC variable as PGDLLIMPORT (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: Mark all GUC variable as PGDLLIMPORT
|
List | pgsql-hackers |
On Sun, Feb 13, 2022 at 3:17 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > ... > > ObserveTypedConfigValue("log_statement_sample_rate", > > &samprate, &gucs_changed, SAMPRATE_CHANGED); > > ... > > > and will be subscribed to have the native-format value stored into samprate, > > and SAMPRATE_CHANGED ORed into gucs_changed, whenever the value changes. > > > That seems like about 10X more complexity than is warranted, > not only in terms of the infrastructure required, but also in > the intellectual complexity around "just when could that value > change?" I agree in the sense that I believe we should $SUBJECT rather than fooling around with this. It is completely understandable that extensions want to know the value of GUCs, and not just as strings, and doing $SUBJECT would be by far the easiest way of accomplishing that. I'm sure Andres is right when he says that there are cases where not exposing symbols could improve the generated machine code, but I'm also pretty sure that we just have to live with the cost when it's core GUCs that we're talking about. It's just unrealistic to suppose that extensions are not going to care. But if we're not going to do that, then I don't see why Chapman's proposal is overly complex. It seems completely understandable that if (some_guc_var != last_observed_some_guc_var) { ...adapt accordingly... } feels like an OK thing to do but if you have to make a function call every time then it seems too expensive. Imagine a background worker that has to do a bunch of extra setup every time some GUC changes, and every iteration of the main loop just wants to check whether it's changed, and the main loop could iterate very quickly in some cases. I wouldn't want to worry about the cost of a function call on every trip through the loop. Maybe it would be trivial in practice, but who knows? I don't particularly like Chapman's solution, but given that you've repeatedly blocked every effort to just apply PGDLLIMPORT markings across the board, I'm not sure what the realistic alternative is. It doesn't seem fair to argue, on the one hand, that we can't just do what I believe literally every other hacker on the project wants, and that on the other hand, it's also unacceptable to add complexity to work around the problem you've created by blocking that proposal every time it's been raised year after year. It's really pretty frustrating to me that we haven't just done the obvious thing here years ago. The time we've spent arguing about it could have been better spent on just about anything else, with absolutely zero harm to the project. -- Robert Haas EDB: http://www.enterprisedb.com
pgsql-hackers by date: