pgsql: Adjust string comparison so that only bitwise-equal strings are

Started by Tom Laneover 20 years ago1 messagescomitters
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

Log Message:
-----------
Adjust string comparison so that only bitwise-equal strings are considered
equal: if strcoll claims two strings are equal, check it with strcmp, and
sort according to strcmp if not identical. This fixes inconsistent
behavior under glibc's hu_HU locale, and probably under some other locales
as well. Also, take advantage of the now-well-defined behavior to speed up
texteq, textne, bpchareq, bpcharne: they may as well just do a bitwise
comparison and not bother with strcoll at all.

NOTE: affected databases may need to REINDEX indexes on text columns to be
sure they are self-consistent.

Tags:
----
REL7_4_STABLE

Modified Files:
--------------
pgsql/src/backend/utils/adt:
varchar.c (r1.102 -> r1.102.4.1)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/varchar.c.diff?r1=1.102&r2=1.102.4.1)
varlena.c (r1.106.2.4 -> r1.106.2.5)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/varlena.c.diff?r1=1.106.2.4&r2=1.106.2.5)