Re: pgsql: ICU support

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com>
Cc: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: ICU support
Date: 2017-03-24 13:26:34
Message-ID: 15963.1490361994@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com> writes:
> On 03/23/2017 11:53 PM, Tom Lane wrote:
>> + ERROR: collation "en-x-icu" for encoding "SQL_ASCII" does not exist
>>
>> I can reproduce this with vanilla configure options if I'm running
>> with --with-icu and LANG=C. In short, this regression test does not
>> work in C locale, and you need to find a way to disable it in that
>> environment.

> Possibly something like this:

> REGRESS_OPTS = --dlpath=. $(EXTRA_REGRESS_OPTS)
> ifeq ($(with_icu),yes)
> +ifndef NO_LOCALE
> +ifneq ($(LANG),C)
> override EXTRA_TESTS := collate.icu $(EXTRA_TESTS)
> endif
> +endif
> +endif

That's better than nothing, certainly, but it doesn't catch all the ways
that C locale could be selected (LC_ALL, no valid setting for LANG, etc).

I suppose that what we really want to know is what encoding will be used
in the regression database. I wonder whether the Makefile could find
that out more directly. Although maybe it's time to bite the bullet
and teach pg_regress how to select whether or not to run the test ---
that would have the advantage of (probably) working on Windows, which
no amount of Makefile-hacking will do.

BTW, is there a reason that override isn't spelled more like

override EXTRA_TESTS += collate.icu

? That seems more readable and idiomatic to me.

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Simon Riggs 2017-03-24 14:23:02 pgsql: Avoid SnapshotResetXmin() during AtEOXact_Snapshot()
Previous Message Peter Eisentraut 2017-03-24 12:50:34 pgsql: Handle empty result set in libpqrcv_exec