Re: ICU for global collation

Поиск
Список
Период
Сортировка
От Julien Rouhaud
Тема Re: ICU for global collation
Дата
Msg-id YdZjctLaTLthqpOA@jrouhaud
обсуждение исходный текст
Ответ на Re: ICU for global collation  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Ответы Re: ICU for global collation  ("Finnerty, Jim" <jfinnert@amazon.com>)
Список pgsql-hackers
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.



В списке pgsql-hackers по дате отправления:

Предыдущее
От: "tanghy.fnst@fujitsu.com"
Дата:
Сообщение: RE: Optionally automatically disable logical replication subscriptions on error
Следующее
От: Justin Pryzby
Дата:
Сообщение: Re: Map WAL segment files on PMEM as WAL buffers