Re: [Bug fix]If recovery.conf has target_session_attrs=read-write, the standby fails to start.

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Michael Paquier <michael.paquier@gmail.com>
Cc: "Higuchi, Daisuke" <higuchi.daisuke@jp.fujitsu.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-05-19T19:58:53Z
Lists: pgsql-hackers
On Fri, May 19, 2017 at 12:51 AM, Michael Paquier
<michael.paquier@gmail.com> wrote:
> On Fri, May 19, 2017 at 1:16 PM, Higuchi, Daisuke
> <higuchi.daisuke@jp.fujitsu.com> wrote:
>> The reason of this problem is that sending 'show transaction_read_only' is failed.
>> 'show' must be in uppercase letters because the streaming replication protocol only accepts capital letters.
>> In psql and libpq applications that do not use the streaming replication protocol, this error does not occur.
>>
>> The attached patch fixes this. This patch changes 'show transaction_read_only' to 'SHOW transaction_read_only'.
>
>                      if (!PQsendQuery(conn,
> -                                     "show transaction_read_only"))
> +                                     "SHOW transaction_read_only"))
> Or perhaps the replication command parser could be made more flexible
> with lower-case characters for replication commands?

Maybe, but that sounds a lot more likely to inflict collateral damage
of some kind than the originally-proposed fix, so I've committed that
fix instead.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Commits

  1. Rethink flex flags for syncrep_scanner.l.

  2. Capitalize SHOW when testing whether target_session_attrs=read-write.