Re: [PATCH] Add PQconninfoParseParams and PQconninfodefaultsMerge to libpq - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: [PATCH] Add PQconninfoParseParams and PQconninfodefaultsMerge to libpq
Date
Msg-id 009b01ce0dd9$0aef91e0$20ceb5a0$@kapila@huawei.com
Whole thread Raw
In response to Re: [PATCH] Add PQconninfoParseParams and PQconninfodefaultsMerge to libpq  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Responses Re: [PATCH] Add PQconninfoParseParams and PQconninfodefaultsMerge to libpq  (Amit Kapila <amit.kapila@huawei.com>)
List pgsql-hackers
On Monday, February 18, 2013 1:41 PM Heikki Linnakangas wrote:
> On 18.02.2013 06:07, Amit Kapila wrote:
> > On Sunday, February 17, 2013 8:44 PM Phil Sorber wrote:
> >> On Sun, Feb 17, 2013 at 1:35 AM, Amit kapila<amit.kapila@huawei.com>
> >> wrote:
> >>> Now the patch of Phil Sober provides 2 new API's
> >> PQconninfoParseParams(), and PQconninfodefaultsMerge(),
> >>> using these API's I can think of below way for patch "pass a
> >> connection string to pg_basebackup, ..."
> >>>
> >>> 1. Call existing function PQconinfoParse() with connection string
> >> input by user and get PQconninfoOption.
> >>>
> >>> 2. Now use the existing keywords (individual options specified by
> >> user) and extract the keywords from
> >>>     PQconninfoOption structure and call new API
> >> PQconninfoParseParams() which will return PQconninfoOption.
> >>>     The PQconninfoOption structure returned in this step will
> contain
> >> all keywords
> >>>
> >>> 3. Call PQconninfodefaultsMerge() to merge any default values if
> >> exist. Not sure if this step is required?
> >>>
> >>> 4. Extract individual keywords from PQconninfoOption structure and
> >> call PQconnectdbParams.
> >>>
> >>> Is this inline with what you have in mind or you have thought of
> some
> >> other simpler way of using new API's?
> 
> Yep, that's roughly what I had in mind. I don't think it's necessary to
> merge defaults in step 3, but it needs to add the "replication=true"
> and
> "dbname=replication" options.

I could see the advantage of calling PQconninfoParseParams() in step-2 is
that 
it will remove the duplicate values by overriding the values for conflicting
keywords.
This is done in function conninfo_array_parse() which is called from
PQconninfoParseParams().
Am I right or there is any other advantage of calling
PQconninfoParseParams()?

If there is no other advantage then this is done in PQconnectdbParams()
also, so can't we avoid calling PQconninfoParseParams()?

With Regards,
Amit Kapila.




pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: Materialized views WIP patch
Next
From: Boszormenyi Zoltan
Date:
Subject: Re: pg_basebackup with -R option and start standby have problems with escaped password