Subject: Re: [PATCH] Fix for bug #19474: LIKE fails to match literal backslashes with nondeterministic collations

From: Nitin Motiani <[email-masked]>
Date: Fri, 5 Jun 2026 14:58:05 +0530

Hi,

I have created a commitfest entry for this patch here
https://commitfest.postgresql.org/patch/6844/. Please take a look.

Thanks,
Nitin Motiani
Google

---

From: Ewan Young <[email-masked]>
Date: Fri, 5 Jun 2026 19:26:26 +0800

Hi,

I reviewed the v2 patch.

The patch applies cleanly on the current master (4cb2a9863d8). I built with
--enable-cassert and ICU, and confirmed that the three backslash test
cases give wrong results on unpatched master and the expected results
with the patch applied. The full regression suite passes (245/245),
including the updated collate.icu.utf8 test.

Two comments:

1. The commit message describes the symptom as "an incorrect match
failure", but the bug also causes incorrect matches in the other
direction. Since the unescaping logic dropped the literal backslash
from the pattern, a text *without* a backslash could wrongly match a
pattern that requires one:

    SELECT 'backslash' COLLATE ignore_accents LIKE 'back\\slash%';
    -- unpatched: t (wrong), patched: f (correct)

I think it's worth mentioning this false-positive side of the bug in
the commit message, since silently-too-permissive LIKE filters are
arguably the more dangerous symptom for applications.

2. A small typo in the new comment in like_match.c:
"occurences" should be "occurrences".

Best regards

---

From: Nitin Motiani <[email-masked]>
Date: Sat, 6 Jun 2026 17:55:20 +0530

> I reviewed the v2 patch.

Thanks for the feedback.

> arguably the more dangerous symptom for applications.

I have updated the commit message. I also added another test for this
scenario in v3.

> "occurences" should be "occurrences".

Fixed the typo.

Thanks,
Nitin Motiani
Google

---

From: Ewan Young <[email-masked]>
Date: Mon, 8 Jun 2026 15:59:59 +0800

Hi Nitin,

Thanks for v3.

I re-applied it on top of current master (4cb2a986) and re-ran the
regression suite: all 245 tests pass, and the collate.icu.utf8 set now
covers both directions of the bug, including the false-positive case
('backslash' LIKE 'back\\slash%' -> f).

LGTM, and changed commitfest status to "Ready for Commiter".

Regards,
Ewan Young