Обсуждение: Re: [PATCH] Add support for displaying database service in psql prompt

Поиск
Список
Период
Сортировка

Re: [PATCH] Add support for displaying database service in psql prompt

От
Greg Sabino Mullane
Дата:
Compiled and tested: works fine, so +1 from me. Honestly, I was surprised %s was still available. :) 

Cheers,
Greg


Re: [PATCH] Add support for displaying database service in psql prompt

От
Michael Banck
Дата:
Hi,

On Tue, Nov 19, 2024 at 07:47:58PM -0500, Greg Sabino Mullane wrote:
> Compiled and tested: works fine, so +1 from me. Honestly, I was surprised
> %s was still available. :)

Thanks. Was that full review? You kept the commitfest item in "Needs
Review" state.


Michael



Re: [PATCH] Add support for displaying database service in psql prompt

От
Michael Banck
Дата:
Hi,

On Wed, Dec 18, 2024 at 03:17:36PM +0900, Michael Paquier wrote:
> On Tue, Dec 17, 2024 at 09:42:36AM +0100, Michael Banck wrote:
> > Done.
> > 
> > V3 attached.
> 
> Done.

Thanks!


Michael



Re: [PATCH] Add support for displaying database service in psql prompt

От
Noah Misch
Дата:
On Wed, Dec 18, 2024 at 03:17:36PM +0900, Michael Paquier wrote:
> Done.

This new PQservice() function from commit 4b99fed75 came up in the annual
exports.txt diff.  The standard in libpq has been to not clutter the API with
new functions that simply retrieve one PQconninfoOption value.  PQconninfo()
provides access to all those values in a generic way.  What do you think of
making psql use PQconninfo() for this, then removing PQservice()?  The rest of
the commit (adding the struct field, necessary for PQconninfo() to include the
value) looks good.



Re: [PATCH] Add support for displaying database service in psql prompt

От
Noah Misch
Дата:
On Mon, Jul 07, 2025 at 11:06:06AM +0900, Michael Paquier wrote:
> On Sun, Jul 06, 2025 at 09:13:19AM -0700, Noah Misch wrote:
> > This new PQservice() function from commit 4b99fed75 came up in the annual
> > exports.txt diff.  The standard in libpq has been to not clutter the API with
> > new functions that simply retrieve one PQconninfoOption value.  PQconninfo()
> > provides access to all those values in a generic way.  What do you think of
> > making psql use PQconninfo() for this, then removing PQservice()?  The rest of
> > the commit (adding the struct field, necessary for PQconninfo() to include the
> > value) looks good.
> 
> Sure, I was not aware of such a policy.  Relying on PQconninfoOption
> is less efficient because we would need to look through the whole set
> of options when looking for the service name, and this needs one extra
> allocation as PQconninfoFree() frees the values allocated.  With two
> callers perhaps this inefficiency is OK to live with anyway.

I think the choice to make there is whether to call PQconninfo() once per
prompt emission or to cache the value, invalidating that cache e.g. once per
SyncVariables().  My first thought was to cache, but the decision is not too
important.  A PQconninfo() call is likely negligible relative to all that
happens between prompts.  Even if not negligible, the overhead of not caching
will affect only prompts using the new escape sequence.



Re: [PATCH] Add support for displaying database service in psql prompt

От
Noah Misch
Дата:
On Tue, Jul 08, 2025 at 08:52:08AM +0900, Michael Paquier wrote:
> On Sun, Jul 06, 2025 at 08:00:09PM -0700, Noah Misch wrote:
> > I think the choice to make there is whether to call PQconninfo() once per
> > prompt emission or to cache the value, invalidating that cache e.g. once per
> > SyncVariables().  My first thought was to cache, but the decision is not too
> > important.  A PQconninfo() call is likely negligible relative to all that
> > happens between prompts.  Even if not negligible, the overhead of not caching
> > will affect only prompts using the new escape sequence.
> 
> SyncVariables() happens at startup and when re-syncing a connection
> during a check, so that does not really worry me.
> 
> By the way, there is a second change in the CF that's suggesting the
> addition of a SERVICEFILE variable, which also uses a separate libpq
> API (forgot about this one):
> https://commitfest.postgresql.org/patch/5387/
> 
> Changing the patch on the other thread to use a conninfo is
> stright-forward.  How about extending the get_service_name()@common.c
> I've proposed upthread so as it takes a string in input and it could
> be reused for more connection options than only "service" so as it
> could be reused there as well?

I'd prefer not to get involved in decisions affecting only psql efficiency and
psql code cosmetics.  Please make that decision without my input.



Re: [PATCH] Add support for displaying database service in psql prompt

От
Michael Paquier
Дата:
On Tue, Jul 08, 2025 at 05:41:32PM -0700, Noah Misch wrote:
> I'd prefer not to get involved in decisions affecting only psql efficiency and
> psql code cosmetics.  Please make that decision without my input.

Okay, I have used this more extensible routine then, planning to use
it for the other patch.  The prompt shortcut retrieves the value using
a GetVariable(), rather than looking at the connection options all the
time.
--
Michael

Вложения