pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Julien Rouhaud <rjuju123@gmail.com>
To: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: Daniel Verite <daniel@manitou-mail.org>
Subject: Re: ICU for global collation
Date: Thu, 6 Jan 2022 11:35:14 +0800
Message-ID: <YdZjctLaTLthqpOA@jrouhaud> (raw)
In-Reply-To: <bba413de-5548-3480-e8f8-1ced562a866b@enterprisedb.com>
References: <374f8048-9d87-462c-a8aa-d02ffca6525f@manitou-mail.org>
	<d7060bf1-177c-e0f2-f13f-b857cdd1182e@2ndquadrant.com>
	<525ef44f-52bf-505f-a491-07835d039424@enterprisedb.com>
	<YdOvEAFGbfGY/47A@jrouhaud>
	<bba413de-5548-3480-e8f8-1ced562a866b@enterprisedb.com>

On Tue, Jan 04, 2022 at 05:03:10PM +0100, Peter Eisentraut wrote:
> On 04.01.22 03:21, Julien Rouhaud wrote:
> 
> > > -	if (!lc_collate_is_c(collid) && collid != DEFAULT_COLLATION_OID)
> > > -		mylocale = pg_newlocale_from_collation(collid);
> > > +	if (!lc_collate_is_c(collid))
> > > +	{
> > > +		if (collid != DEFAULT_COLLATION_OID)
> > > +			mylocale = pg_newlocale_from_collation(collid);
> > > +		else if (default_locale.provider == COLLPROVIDER_ICU)
> > > +			mylocale = &default_locale;
> > > +	}
> > 
> > There are really a lot of places with this new code.  Maybe it could be some
> > new function/macro to wrap that for the normal case (e.g. not formatting.c)?
> 
> Right, we could just put this into pg_newlocale_from_collation(), but the
> comment there says
> 
>  * In fact, they shouldn't call this function at all when they are dealing
>  * with the default locale.  That can save quite a bit in hotspots.
> 
> I don't know how to assess that.
> 
> We could pack this into a macro or inline function if we are concerned about
> this.

Yes that was my idea, just have a new function (inline function or a macro
then since pg_newlocale_from_collation() clearly warns about performance
concerns) that have the whole
is-not-c-collation-and-is-default-collation-or-icu-collation logic and calls
pg_newlocale_from_collation() only when needed.





view thread (111+ messages)  latest in thread

Message-ID: <YdZjctLaTLthqpOA@jrouhaud>
Permalink:  ../YdZjctLaTLthqpOA@jrouhaud/
Also on:    postgresql.org/message-id/YdZjctLaTLthqpOA@jrouhaud

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: rjuju123@gmail.com, peter.eisentraut@enterprisedb.com, daniel@manitou-mail.org
  Subject: Re: ICU for global collation
  In-Reply-To: <YdZjctLaTLthqpOA@jrouhaud>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox