Thread: pgsql: More fixes for abbreviated keys infrastructure.

pgsql: More fixes for abbreviated keys infrastructure.

From
Robert Haas
Date:
More fixes for abbreviated keys infrastructure.

First, when LC_COLLATE = C, bttext_abbrev_convert should use memcpy()
rather than strxfrm() to construct the abbreviated key, because the
authoritative comparator uses memcpy().  If we do anything else here,
we might get inconsistent answers, and the buildfarm says this risk
is not theoretical.  It should be faster this way, too.

Second, while I'm looking at bttext_abbrev_convert, convert a needless
use of goto into the loop it's trying to implement into an actual
loop.

Both of the above problems date to the original commit of abbreviated
keys, commit 4ea51cdfe85ceef8afabceb03c446574daa0ac23.

Third, fix a bogus assignment to tss->locale before tss is set up.
That's a new goof in commit b529b65d1bf8537ca7fa024760a9782d7c8b66e5.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/b181a91981203f6ec9403115a2917bd3f9473707

Modified Files
--------------
src/backend/utils/adt/varlena.c |   87 +++++++++++++++++++++++----------------
1 file changed, 52 insertions(+), 35 deletions(-)