From 9b89afcf1a5cba13781382f904a7c0a20039a48a Mon Sep 17 00:00:00 2001 From: Jeff Davis Date: Mon, 6 Jul 2026 13:38:25 -0700 Subject: [PATCH v1] Fix like_fixed_prefix_ci() selectivity. A wrong calculation introduced by 9c8de15969 could cause trailing characters from the prefix to be passed to like_selectivity() rather than just the "rest". Backpatch-through: 19 --- src/backend/utils/adt/like_support.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/adt/like_support.c b/src/backend/utils/adt/like_support.c index 01cd6b10730..3ad3c9ca358 100644 --- a/src/backend/utils/adt/like_support.c +++ b/src/backend/utils/adt/like_support.c @@ -1138,12 +1138,12 @@ like_fixed_prefix_ci(Const *patt_const, Oid collation, Const **prefix_const, if (rest_selec != NULL) { - int wrestlen = wpattlen - wmatch_pos; + int wrestlen = wpattlen - wpos; char *rest; int rest_mblen; rest = palloc(pg_database_encoding_max_length() * wrestlen + 1); - rest_mblen = pg_wchar2mb_with_len(&wpatt[wmatch_pos], rest, wrestlen); + rest_mblen = pg_wchar2mb_with_len(&wpatt[wpos], rest, wrestlen); *rest_selec = like_selectivity(rest, rest_mblen, true); pfree(rest); -- 2.43.0