From: Tom Lane Date: Wed, 13 Nov 2019 20:53:53 +0000 (-0500) Subject: Add missing check_collation_set call to bpcharne(). X-Git-Url: http://git.postgresql.org/gitweb/-?a=commitdiff_plain;h=d57d61533a2b5b27b60cc9024c54688390871bf6;p=users%2Frhaas%2Fpostgres.git 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 --- diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c index 2aed411974..0469726ec0 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);