Robert Haas <robertmh...@gmail.com> writes: > Second, I don't really like the idea of selectively turning GUCs into > protocol-managed parameters. I think there are a relatively small > number of things that we'd ever want to manage on a protocol level, > but this design would force us to make it work for any GUC whatsoever.
I'd not been following along for the last few days, but I agree that we don't want to make it apply to any GUC at all. > I think we should start by picking one or two protocol-managed > parameters that we want to add, and then adding those in a way that is > distinct from the GUC system. I don't think we should add an abstract > system divorced from any particular application. There is a lot of infrastructure we'll have to re-invent if we make this completely independent of GUCs, notably: * a way to establish the initial/default value * a way to display the active value So my thought was that this should be implemented as an (unchangeable) flag bit for a GUC variable, GUC_PROTOCOL_ONLY or something like that, and then we would refuse SQL-based set attempts on that. The behavior would end up being very much like PGC_BACKEND variables, in that we could allow all the existing setting methods to work to establish a session's initial value; but after that, it can only change within that session via a protocol message from the client. With that rule, it's okay for the protocol message to be nontransactional since there's no interaction with transactions. regards, tom lane