From 9f42a56a02be764ceeb865f53c875b61c20d23eb Mon Sep 17 00:00:00 2001 From: "Vadim B. Mikheev" Date: Mon, 21 Apr 1997 04:31:53 +0000 Subject: [PATCH] Fix for text_lt/text_le to avoid warnings if not def USE_LOCALE. --- src/backend/utils/adt/varlena.c | 62 ++++++++++++++++----------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c index 9c80ef69e6..e5749cce0d 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 -- GitLab