diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-04-21 04:31:53 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-04-21 04:31:53 +0000 |
commit | 9f42a56a02be764ceeb865f53c875b61c20d23eb (patch) | |
tree | 5807d8a9da12e45a6d385ee988e4dc9b3c314034 /src | |
parent | 42e72503a111c1f600d99eebf9c70e68393c49c8 (diff) | |
download | postgresql-9f42a56a02be764ceeb865f53c875b61c20d23eb.tar.gz postgresql-9f42a56a02be764ceeb865f53c875b61c20d23eb.zip |
Fix for text_lt/text_le to avoid warnings if not def USE_LOCALE.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/adt/varlena.c | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c index 9c80ef69e6b..e5749cce0d0 100644 --- a/src/backend/utils/adt/varlena.c +++ b/src/backend/utils/adt/varlena.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.13 1997/04/09 08:29:35 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.14 1997/04/21 04:31:53 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -288,21 +288,19 @@ textne(struct varlena *arg1, struct varlena *arg2) /* text_lt() * Comparison function for text strings. * Includes locale support, but must copy strings to temporary memory - * to allow null-termination for inputs to strcoll(). - * XXX HACK code for textlen() indicates that there can be embedded nulls - * but it appears that most routines (incl. this one) assume not! - tgl 97/04/07 + * to allow null-termination for inputs to strcoll(). */ bool text_lt(struct varlena *arg1, struct varlena *arg2) { - bool result; - - int cval; int len; #ifdef UNSIGNED_CHAR_TEXT unsigned #endif char *a1p, *a2p; +#ifdef USE_LOCALE + int cval; +#endif if (arg1 == NULL || arg2 == NULL) return((bool) FALSE); @@ -310,11 +308,9 @@ text_lt(struct varlena *arg1, struct varlena *arg2) len = (((VARSIZE(arg1) <= VARSIZE(arg2))? VARSIZE(arg1): VARSIZE(arg2))-VARHDRSZ); #ifdef USE_LOCALE - if (!PointerIsValid(a1p = PALLOC(len+1)) - || !PointerIsValid(a2p = PALLOC(len+1))) { - elog(WARN,"Unable to allocate memory for text comparison",NULL); - return(FALSE); - }; + + a1p = palloc (len+1); + a2p = palloc (len+1); memcpy(a1p, VARDATA(arg1), len); *(a1p+len) = '\0'; @@ -322,13 +318,15 @@ text_lt(struct varlena *arg1, struct varlena *arg2) *(a2p+len) = '\0'; cval = strcoll(a1p,a2p); - result = ((cval < 0) || ((cval == 0) && (VARSIZE(arg1) < VARSIZE(arg2)))); + + pfree (a1p); + pfree (a2p); - PFREE(a1p); - PFREE(a2p); + return((bool) ( (cval < 0) || + ( (cval == 0) && (VARSIZE(arg1) < VARSIZE(arg2)) ) ) ); - return(result); #else + a1p = (unsigned char *)VARDATA(arg1); a2p = (unsigned char *)VARDATA(arg2); @@ -338,27 +336,27 @@ text_lt(struct varlena *arg1, struct varlena *arg2) len--; }; return((bool) (len? (*a1p < *a2p): (VARSIZE(arg1) < VARSIZE(arg2)))); + #endif + } /* text_lt() */ /* text_le() * Comparison function for text strings. * Includes locale support, but must copy strings to temporary memory - * to allow null-termination for inputs to strcoll(). - * XXX HACK code for textlen() indicates that there can be embedded nulls - * but it appears that most routines (incl. this one) assume not! - tgl 97/04/07 + * to allow null-termination for inputs to strcoll(). */ bool text_le(struct varlena *arg1, struct varlena *arg2) { - bool result; - - int cval; int len; #ifdef UNSIGNED_CHAR_TEXT unsigned #endif char *a1p, *a2p; +#ifdef USE_LOCALE + int cval; +#endif if (arg1 == NULL || arg2 == NULL) return((bool) 0); @@ -366,11 +364,9 @@ text_le(struct varlena *arg1, struct varlena *arg2) len = (((VARSIZE(arg1) <= VARSIZE(arg2))? VARSIZE(arg1): VARSIZE(arg2))-VARHDRSZ); #ifdef USE_LOCALE - if (!PointerIsValid(a1p = PALLOC(len+1)) - || !PointerIsValid(a2p = PALLOC(len+1))) { - elog(WARN,"Unable to allocate memory for text comparison",NULL); - return(FALSE); - }; + + a1p = palloc (len+1); + a2p = palloc (len+1); memcpy(a1p, VARDATA(arg1), len); *(a1p+len) = '\0'; @@ -378,13 +374,15 @@ text_le(struct varlena *arg1, struct varlena *arg2) *(a2p+len) = '\0'; cval = strcoll(a1p,a2p); - result = ((cval < 0) || ((cval == 0) && (VARSIZE(arg1) <= VARSIZE(arg2)))); + + pfree (a1p); + pfree (a2p); - PFREE(a1p); - PFREE(a2p); + return ((bool) ( (cval < 0) || + ( (cval == 0) && (VARSIZE(arg1) <= VARSIZE(arg2)) ) ) ); - return(result); #else + a1p = (unsigned char *)VARDATA(arg1); a2p = (unsigned char *)VARDATA(arg2); @@ -395,7 +393,9 @@ text_le(struct varlena *arg1, struct varlena *arg2) }; return((bool) (len? (*a1p <= *a2p): (VARSIZE(arg1) <= VARSIZE(arg2)))); + #endif + } /* text_le() */ bool |