From d57d61533a2b5b27b60cc9024c54688390871bf6 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 13 Nov 2019 15:53:53 -0500 Subject: Add missing check_collation_set call to bpcharne(). We should throw an error for indeterminate collation, but bpcharne() was missing that logic, resulting in a much less user-friendly error (either an assertion failure or "cache lookup failed for collation 0"). Per report from Manuel Rigger. Back-patch to v12 where the mistake came in, evidently in commit 5e1963fb7. (Before non-deterministic collations, this function wasn't collation sensitive.) Discussion: https://postgr.es/m/CA+u7OA4HOjtymxAbuGNh4-X_2R0Lw5n01tzvP8E5-i-2gQXYWA@mail.gmail.com --- src/backend/utils/adt/varchar.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c index 2aed4119740..0469726ec04 100644 --- a/src/backend/utils/adt/varchar.c +++ b/src/backend/utils/adt/varchar.c @@ -784,6 +784,8 @@ bpcharne(PG_FUNCTION_ARGS) bool result; Oid collid = PG_GET_COLLATION(); + check_collation_set(collid); + len1 = bcTruelen(arg1); len2 = bcTruelen(arg2); -- cgit v1.2.3