Re: [PG19] ILIKE index scan misses rows with a libc UTF-8 collation on macOS

From: shihao zhong <zhong950419(at)gmail(dot)com>
To: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Jeff Davis <pgsql(at)j-davis(dot)com>, Noah Misch <noah(at)leadboat(dot)com>
Subject: Re: [PG19] ILIKE index scan misses rows with a libc UTF-8 collation on macOS
Date: 2026-10-20 02:20:16
Message-ID: CAGRkXqS0eX1BbUWPhR8abcs1zQ94WsyjWFd+7NKpknMLG+HLBg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Thanks Fujii and Chao for testing.

> Given that this issue has only been confirmed on macOS so far, does it
> make sense to add the extra checks only for macOS, like this:

I would keep it on all platforms. ILIKE compares with towlower() on
every platform, so this check is what it needs everywhere. Where the C
library is consistent it changes nothing. I went over every code point
with glibc 2.39 and musl 1.2.5, and the new checks add no character
there. It only runs at plan time.

> Then, I would suggest adding a regression test so that CI can help
> check whether the problem exists on other platforms.

Done in 0002.

0001 is unchanged.

Thanks,
Shihao

Attachment Content-Type Size
v2-0001-Fix-pg_iswcased-for-libc-UTF8-case-mappings.patch application/octet-stream 1.5 KB
v2-0002-Add-regression-test-for-ILIKE-prefix-with-libc-UT.patch application/octet-stream 6.5 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Ajin Cherian 2026-10-20 02:21:37 Re: [PG19] Sequence sync stops when the subscription owner can't SET ROLE to a sequence owner
Previous Message Takeshi Ideriha 2026-10-20 02:15:58 Re: DOCS - CREATE PUBLICATION wording re 'ONLY' for partitioned tables.