On Wed, Apr 5, 2023 at 11:34 AM Pavel Stehule <pavel.stehule@gmail.com> wrote: > If the GUC_REPORT should not be used, then only one possibility is enhancing the protocol, about the possibility to read some predefined server's features from the client. > It can be much cheaper than SQL query, and it can be used when the current transaction is aborted. I can imagine a possibility to read server time or a server session role from a prompt processing routine. > > But for this specific case, you need to cache the role name somewhere. You can simply get oid everytime, but for role name you need to access to system catalogue, and it is not possible in aborted transactions. So at the end, you probably should read "role" GUC. > > Can this design be acceptable?
I don't think we want to add a dedicated protocol message that says "send me the role GUC right now". I mean, we could, but being able to tell the GUC mechanism "please send me the role GUC after every command" sounds a lot easier to use.
I'll try it
here is patch with setting GUC_REPORT on role only when it is required by prompt