1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-26 12:21:12 +03:00
The comparison routines for text and char data type give incorrect results
if the input data contains characters greater than 127.  As these routines
perform the comparison using signed char variables all character codes
greater than 127 are interpreted as less than 0.  These codes are used to
encode the iso8859 char sets.
The other text-like data types seem to work as expected as they use unsigned
chars in comparisons.


Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
This commit is contained in:
Marc G. Fournier
1996-09-10 06:41:38 +00:00
parent 1ba34d91fc
commit f2f53aee0f
2 changed files with 15 additions and 2 deletions

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.4 1996/07/22 21:56:04 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.5 1996/09/10 06:41:38 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@ -290,6 +290,9 @@ int32
text_lt(struct varlena *arg1, struct varlena *arg2)
{
int len;
#ifdef UNSIGNED_CHAR_TEXT
unsigned
#endif
char *a1p, *a2p;
if (arg1 == NULL || arg2 == NULL)
@ -318,6 +321,9 @@ int32
text_le(struct varlena *arg1, struct varlena *arg2)
{
int len;
#ifdef UNSIGNED_CHAR_TEXT
unsigned
#endif
char *a1p, *a2p;
if (arg1 == NULL || arg2 == NULL)