On Tue, Feb 27, 2024 at 2:00 PM Hayato Kuroda (Fujitsu) <kuroda.hay...@fujitsu.com> wrote: > > > We do append dbname=replication even in libpqrcv_connect for .pgpass > > lookup as mentioned in comments. See below: > > libpqrcv_connect() > > { > > .... > > else > > { > > /* > > * The database name is ignored by the server in replication mode, > > * but specify "replication" for .pgpass lookup. > > */ > > keys[++i] = "dbname"; > > vals[i] = "replication"; > > } > > ... > > } > > OK. So we must add the value for the authorization, right? > I think it should be described even in GetConnection(). > > > I think as part of this effort we should just add dbname to > > primary_conninfo written in postgresql.auto.conf file. As above, the > > question is valid whether we should do it just for 17 or for prior > > versions. Let's discuss more on that. I am not sure of the use case > > for versions before 17 but commit cca97ce6a665 mentioned that some > > middleware or proxies might however need to know the dbname to make > > the correct routing decision for the connection. Does that apply here > > as well? If so, we can do it and update the docs, otherwise, let's do > > it just for 17. > > Hmm, I might lose your requirements again. So, we must satisfy all of below > ones, right? > 1) add {"dbname", "replication"} key-value pair to look up .pgpass file > correctly. > 2) If the -R is given, output dbname=xxx value to be used by slotsync worker. > 3) If the dbname is not given in the connection string, the same string as > username must be used to keep the libpq connection rule. > 4) No need to add dbname=replication pair >
Point 1) and 4) seems contradictory or maybe I am missing something. -- With Regards, Amit Kapila.