Fix multibyte issue in ltree_strncasecmp(). Previously, the API for ltree_strncasecmp() took two inputs but only one length (that of the smaller input). It truncated the larger input to that length, but that could break a multibyte sequence.
Change the API to be a check for prefix equality (possibly case-insensitive) instead, which is all that's needed by the callers. Also, provide the lengths of both inputs. Reviewed-by: Chao Li <[email protected]> Reviewed-by: Peter Eisentraut <[email protected]> Discussion: https://postgr.es/m/5f65b85740197ba6249ea507cddf609f84a6188b.camel%40j-davis.com Backpatch-through: 14 Branch ------ REL_18_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/f79e239e0bc6e4d5fe91e1a0e573ecf0715d6c8c Modified Files -------------- contrib/ltree/lquery_op.c | 40 ++++++++++++++++++++++++++++------------ contrib/ltree/ltree.h | 7 +++++-- contrib/ltree/ltxtquery_op.c | 8 ++++---- 3 files changed, 37 insertions(+), 18 deletions(-)
