From: Heikki Linnakangas Date: Thu, 23 Apr 2009 07:19:09 +0000 (+0000) Subject: varstr_cmp and any comparison function that piggybacks on it can return X-Git-Tag: REL8_4_BETA2~84 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=283939a321bc492045d00c80146d52672cfc5378;p=postgresql varstr_cmp and any comparison function that piggybacks on it can return any negative or positive number, not just -1 or 1. Fix comment on varstr_cmp and citext test case accordingly. As pointed out by Zdenek Kotala, and buildfarm member gothic moth. --- diff --git a/contrib/citext/expected/citext.out b/contrib/citext/expected/citext.out index 4d8f1ac066..c3dfc95803 100644 --- a/contrib/citext/expected/citext.out +++ b/contrib/citext/expected/citext.out @@ -213,10 +213,10 @@ SELECT citext_cmp('AARDVARK'::citext, 'AARDVARK'::citext) AS zero; 0 (1 row) -SELECT citext_cmp('B'::citext, 'a'::citext) AS one; - one ------ - 1 +SELECT citext_cmp('B'::citext, 'a'::citext) > 0 AS true; + true +------ + t (1 row) -- Do some tests using a table and index. diff --git a/contrib/citext/expected/citext_1.out b/contrib/citext/expected/citext_1.out index e9bb6124c8..49a6817aef 100644 --- a/contrib/citext/expected/citext_1.out +++ b/contrib/citext/expected/citext_1.out @@ -213,10 +213,10 @@ SELECT citext_cmp('AARDVARK'::citext, 'AARDVARK'::citext) AS zero; 0 (1 row) -SELECT citext_cmp('B'::citext, 'a'::citext) AS one; - one ------ - 1 +SELECT citext_cmp('B'::citext, 'a'::citext) > 0 AS true; + true +------ + t (1 row) -- Do some tests using a table and index. diff --git a/contrib/citext/sql/citext.sql b/contrib/citext/sql/citext.sql index 379c0786f1..52999c2e63 100644 --- a/contrib/citext/sql/citext.sql +++ b/contrib/citext/sql/citext.sql @@ -90,7 +90,7 @@ SELECT 'aardvark'::citext = 'aardVark'::citext AS t; SELECT citext_cmp('aardvark'::citext, 'aardvark'::citext) AS zero; SELECT citext_cmp('aardvark'::citext, 'aardVark'::citext) AS zero; SELECT citext_cmp('AARDVARK'::citext, 'AARDVARK'::citext) AS zero; -SELECT citext_cmp('B'::citext, 'a'::citext) AS one; +SELECT citext_cmp('B'::citext, 'a'::citext) > 0 AS true; -- Do some tests using a table and index. diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c index 5df6f05c33..052d0578ac 100644 --- a/src/backend/utils/adt/varlena.c +++ b/src/backend/utils/adt/varlena.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/varlena.c,v 1.169 2009/01/01 17:23:50 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/varlena.c,v 1.170 2009/04/23 07:19:09 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -1138,7 +1138,8 @@ text_position_cleanup(TextPositionState *state) * Comparison function for text strings with given lengths. * Includes locale support, but must copy strings to temporary memory * to allow null-termination for inputs to strcoll(). - * Returns -1, 0 or 1 + * Returns an integer less than, equal to, or greater than zero, indicating + * whether arg1 is less than, equal to, or greater than arg2. */ int varstr_cmp(char *arg1, int len1, char *arg2, int len2)