Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)

From: Noah Misch <noah(at)leadboat(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Peter Geoghegan <pg(at)heroku(dot)com>, Marc-Olaf Jaschke <marc-olaf(dot)jaschke(at)s24(dot)com>, Postgres-Bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Date: 2016-03-23 02:44:45
Message-ID: 20160323024445.GA1306688@tornado.leadboat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

On Tue, Mar 22, 2016 at 07:19:44PM -0400, Tom Lane wrote:
> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> > I was a little worried that it was too much to hope for that all libc
> > vendors on earth would ship a strxfrm() implementation that was actually
> > consistent with strcoll(), and here we are.
>
> Indeed. To try to put some scope on the problem, I made an idiot little
> program that just generates some random UTF8 strings and sees whether
> strcoll and strxfrm sort them alike. Attached are that program, a even
> more idiot little shell script that runs it over all available UTF8
> locales, and the results on my RHEL6 box. While de_DE seems to be the
> worst-broken locale, it's far from the only one.
>
> Please try this on as many platforms as you can get hold of ...

I, too, found MAXXFRMLEN insufficient; I raised it fourfold. Cygwin
2.2.1(0.289/5/3) caught fire; 10% of locales passed. (varstr_sortsupport()
already blacklists the UTF8/native Windows case.) The test passed on Solaris
10, Solaris 11, HP-UX B.11.31, OpenBSD 5.0, NetBSD 5.1.2, and FreeBSD 9.0.
See attached tryalllocales.sh outputs. I did not test AIX, because the AIX
machines I use have no UTF8 locales installed.

Attachment Content-Type Size
cygwin text/plain 55.2 KB
sol10 text/plain 5.4 KB
sol11 text/plain 859 bytes
hpux11.31 text/plain 4.5 KB
openbsd50 text/plain 1.5 KB
netbsd512 text/plain 3.8 KB
freebsd9 text/plain 4.7 KB

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Bernd Helmle 2016-03-23 10:32:06 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Previous Message Tom Lane 2016-03-23 02:41:43 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)

Browse pgsql-hackers by date

  From Date Subject
Next Message Etsuro Fujita 2016-03-23 02:50:48 Re: Odd system-column handling in postgres_fdw join pushdown patch
Previous Message Tom Lane 2016-03-23 02:41:43 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)