Fix LIKE matching with nondeterministic collations and backslashes.

Commit 85b7efa1c added support for LIKE with nondeterministic
collations, but it included a bug in the de-escaping logic for
literal pattern substrings.  That unconditionally skipped all
backslashes, but when it encounters '\\' it should emit the second
backslash as a de-escaped character.  That led to acting as though
the escaped backslash was not there.

Bug: #19474
Reported-by: Bowen Shi <[email protected]>
Author: Nitin Motiani <[email protected]>
Reviewed-by: Zsolt Parragi <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Reviewed-by: Tom Lane <[email protected]>
Discussion: https://postgr.es/m/[email protected]
Discussion: 
https://postgr.es/m/cah5hc94yu+k8gcdy12m5bs8gwd_sxlshzc9k5tnk7jdnpbi...@mail.gmail.com
Backpatch-through: 18

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d6ffcae32a10bd9b53fcfe7be507ba00c6083acc

Modified Files
--------------
src/backend/utils/adt/like_match.c             |  5 ++---
src/test/regress/expected/collate.icu.utf8.out | 31 ++++++++++++++++++++++++++
src/test/regress/sql/collate.icu.utf8.sql      |  7 ++++++
3 files changed, 40 insertions(+), 3 deletions(-)

Reply via email to