Skip to content

Commit 0346ab7

Browse files
committed
Lexicographically compare 'char' and 'text'.
1 parent dee872d commit 0346ab7

File tree

2 files changed

+12
-31
lines changed

2 files changed

+12
-31
lines changed

src/backend/utils/adt/char.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
*
1313
*
1414
* IDENTIFICATION
15-
* $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.4 1997/05/17 06:20:34 thomas Exp $
15+
* $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.5 1997/06/11 05:17:58 vadim Exp $
1616
*
1717
*-------------------------------------------------------------------------
1818
*/
@@ -129,17 +129,10 @@ char *char16out(char *s)
129129

130130
bool chareq(int8 arg1, int8 arg2) { return(arg1 == arg2); }
131131
bool charne(int8 arg1, int8 arg2) { return(arg1 != arg2); }
132-
#ifdef UNSIGNED_CHAR_TEXT
133132
bool charlt(int8 arg1, int8 arg2) { return((uint8)arg1 < (uint8)arg2); }
134133
bool charle(int8 arg1, int8 arg2) { return((uint8)arg1 <= (uint8)arg2); }
135134
bool chargt(int8 arg1, int8 arg2) { return((uint8)arg1 > (uint8)arg2); }
136135
bool charge(int8 arg1, int8 arg2) { return((uint8)arg1 >= (uint8)arg2); }
137-
#else
138-
bool charlt(int8 arg1, int8 arg2) { return(arg1 < arg2); }
139-
bool charle(int8 arg1, int8 arg2) { return(arg1 <= arg2); }
140-
bool chargt(int8 arg1, int8 arg2) { return(arg1 > arg2); }
141-
bool charge(int8 arg1, int8 arg2) { return(arg1 >= arg2); }
142-
#endif
143136
int8 charpl(int8 arg1, int8 arg2) { return(arg1 + arg2); }
144137
int8 charmi(int8 arg1, int8 arg2) { return(arg1 - arg2); }
145138
int8 charmul(int8 arg1, int8 arg2) { return(arg1 * arg2); }

src/backend/utils/adt/varlena.c

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.15 1997/04/25 18:40:39 scrappy Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.16 1997/06/11 05:18:02 vadim Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -301,22 +301,16 @@ text_lt(struct varlena *arg1, struct varlena *arg2)
301301
int cval;
302302
#endif
303303
int len;
304-
#ifdef UNSIGNED_CHAR_TEXT
305-
unsigned
306-
#endif
307-
char *a1p, *a2p;
304+
unsigned char *a1p, *a2p;
308305

309306
if (arg1 == NULL || arg2 == NULL)
310307
return((bool) FALSE);
311308

312309
len = (((VARSIZE(arg1) <= VARSIZE(arg2))? VARSIZE(arg1): VARSIZE(arg2))-VARHDRSZ);
313310

314311
#ifdef USE_LOCALE
315-
if (!PointerIsValid(a1p = PALLOC(len+1))
316-
|| !PointerIsValid(a2p = PALLOC(len+1))) {
317-
elog(WARN,"Unable to allocate memory for text comparison",NULL);
318-
return(FALSE);
319-
};
312+
a1p = (unsigned char *) palloc (len+1);
313+
a2p = (unsigned char *) palloc (len+1);
320314

321315
memcpy(a1p, VARDATA(arg1), len);
322316
*(a1p+len) = '\0';
@@ -326,8 +320,8 @@ text_lt(struct varlena *arg1, struct varlena *arg2)
326320
cval = strcoll(a1p,a2p);
327321
result = ((cval < 0) || ((cval == 0) && (VARSIZE(arg1) < VARSIZE(arg2))));
328322

329-
PFREE(a1p);
330-
PFREE(a2p);
323+
pfree (a1p);
324+
pfree (a2p);
331325
#else
332326
a1p = (unsigned char *)VARDATA(arg1);
333327
a2p = (unsigned char *)VARDATA(arg2);
@@ -360,22 +354,16 @@ text_le(struct varlena *arg1, struct varlena *arg2)
360354
int cval;
361355
#endif
362356
int len;
363-
#ifdef UNSIGNED_CHAR_TEXT
364-
unsigned
365-
#endif
366-
char *a1p, *a2p;
357+
unsigned char *a1p, *a2p;
367358

368359
if (arg1 == NULL || arg2 == NULL)
369360
return((bool) 0);
370361

371362
len = (((VARSIZE(arg1) <= VARSIZE(arg2))? VARSIZE(arg1): VARSIZE(arg2))-VARHDRSZ);
372363

373364
#ifdef USE_LOCALE
374-
if (!PointerIsValid(a1p = PALLOC(len+1))
375-
|| !PointerIsValid(a2p = PALLOC(len+1))) {
376-
elog(WARN,"Unable to allocate memory for text comparison",NULL);
377-
return(FALSE);
378-
};
365+
a1p = (unsigned char *) palloc (len+1);
366+
a2p = (unsigned char *) palloc (len+1);
379367

380368
memcpy(a1p, VARDATA(arg1), len);
381369
*(a1p+len) = '\0';
@@ -385,8 +373,8 @@ text_le(struct varlena *arg1, struct varlena *arg2)
385373
cval = strcoll(a1p,a2p);
386374
result = ((cval < 0) || ((cval == 0) && (VARSIZE(arg1) <= VARSIZE(arg2))));
387375

388-
PFREE(a1p);
389-
PFREE(a2p);
376+
pfree (a1p);
377+
pfree (a2p);
390378
#else
391379
a1p = (unsigned char *)VARDATA(arg1);
392380
a2p = (unsigned char *)VARDATA(arg2);

0 commit comments

Comments
 (0)