Re: Libpq support to connect to standby server as priority
От | vignesh C |
---|---|
Тема | Re: Libpq support to connect to standby server as priority |
Дата | |
Msg-id | CALDaNm2JeSU4eA1b3-zSikcaOYEOFM5QYniQ3=ycuH9oP_=PVg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Libpq support to connect to standby server as priority (Greg Nancarrow <gregn4422@gmail.com>) |
Список | pgsql-hackers |
On Tue, Feb 9, 2021 at 5:47 AM Greg Nancarrow <gregn4422@gmail.com> wrote: > > On Mon, Feb 8, 2021 at 8:17 PM vignesh C <vignesh21@gmail.com> wrote: > > > > > > > > I think what we want to do is mark default_transaction_read_only as > > > GUC_REPORT, instead. That will give a reliable report of what the > > > state of its GUC is, and you can combine it with is_hot_standby > > > to decide whether the session should be considered read-only. > > > If you don't get those two GUC values during connection, then you > > > can fall back on "SHOW transaction_read_only". > > > > > > > I have made a patch for the above with the changes suggested and > > rebased it with the head code. > > Attached v21 patch which has the changes for the same. > > Thoughts? > > > > I'm still looking at the patch code, but I noticed that the > documentation update describing how support of read-write transactions > is determined isn't quite right and it isn't clear how the parameters > work. > I'd suggest something like the following (you'd need to fix the line > lengths and line-wrapping appropriately) - please check it for > correctness: > > <para> > The support of read-write transactions is determined by the value of the > <varname>default_transaction_read_only</varname> and > <varname>in_hot_standby</varname> configuration parameters, > that, if supported, > are reported by the server upon successful connection. If the > value of either > of these parameters is <literal>on</literal>, it means the > server doesn't support > read-write transactions. If either/both of these parameters > are not reported, > then the support of read-write transactions is determined by > an explicit query, > by sending <literal>SHOW transaction_read_only</literal> after > successful > connection; if it returns <literal>on</literal>, it means the > server doesn't > support read-write transactions. The standby mode state is > determined by either > the value of the <varname>in_hot_standby</varname> configuration > parameter, that is reported by the server (if supported) upon > successful connection, or is otherwise explicitly queried by sending > <literal>SELECT pg_is_in_recovery()</literal> after successful > connection; if it returns <literal>t</literal>, it means the server is > in hot standby mode. > </para> Thanks Greg for the comments, Please find the attached v22 patch having the fix for the same. Thoughts? Regards, Vignesh
Вложения
В списке pgsql-hackers по дате отправления: