On Wed, Jan 20, 2021 at 9:58 AM Simon Riggs <si...@2ndquadrant.com> wrote: > > On Wed, 20 Jan 2021 at 14:21, James Coleman <jtc...@gmail.com> wrote: > > > An alternative approach that occurred to me while typing this reply: a > > setting in Postgres that would disallow setting session level GUCs > > (i.e., enforce `SET LOCAL` transaction level usage instead) would > > remove a large chunk of our need to set server_reset_query_always=1 > > (and more interestingly it'd highlight when broken code gets pushed). > > But even with that, I see some value in the proposed setting since > > there is additional session state beyond GUCs. > > With transaction_cleanup=on we could force all SETs to be SET LOCAL. > > The point is that if we declare ahead of time that the transaction > will be reset then we can act differently and more easily for various > circumstances, for SETs, for Temp tables and others.
Right, I agree it's independently useful. My "alternative" is a subset of that functionality and doesn't cover as many cases. James