diff options
Diffstat (limited to 'src/backend/utils')
-rw-r--r-- | src/backend/utils/adt/char.c | 322 | ||||
-rw-r--r-- | src/backend/utils/adt/like.c | 54 | ||||
-rw-r--r-- | src/backend/utils/adt/regexp.c | 107 | ||||
-rw-r--r-- | src/backend/utils/adt/regproc.c | 4 | ||||
-rw-r--r-- | src/backend/utils/cache/catcache.c | 4 |
5 files changed, 7 insertions, 484 deletions
diff --git a/src/backend/utils/adt/char.c b/src/backend/utils/adt/char.c index 23bfd4c20b0..5a32bceeb66 100644 --- a/src/backend/utils/adt/char.c +++ b/src/backend/utils/adt/char.c @@ -3,16 +3,12 @@ * char.c-- * Functions for the built-in type "char". * Functions for the built-in type "cid". - * Functions for the built-in type "char2". - * Functions for the built-in type "char4". - * Functions for the built-in type "char8". - * Functions for the built-in type "char16". * * Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.15 1998/02/26 04:36:54 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.16 1998/03/30 17:24:00 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -87,42 +83,6 @@ cidout(int32 c) return (result); } -/* - * char16in - converts "..." to internal reprsentation - * - * Note: - * Currently if strlen(s) < 14, the extra chars are nulls - */ -char * -char16in(char *s) -{ - char *result; - - if (s == NULL) - return (NULL); - result = (char *) palloc(16); - strncpy(result, s, 16); - return (result); -} - -/* - * char16out - converts internal reprsentation to "..." - */ -char * -char16out(char *s) -{ - char *result = (char *) palloc(17); - - if (s == NULL) - { - result[0] = '-'; - result[1] = '\0'; - } - else - StrNCpy(result, s, 17); - return (result); -} - /***************************************************************************** * PUBLIC ROUTINES * @@ -193,283 +153,3 @@ cideq(int8 arg1, int8 arg2) { return (arg1 == arg2); } - -/* - * char16eq - returns 1 iff arguments are equal - * char16ne - returns 1 iff arguments are not equal - * - * BUGS: - * Assumes that "xy\0\0a" should be equal to "xy\0b". - * If not, can do the comparison backwards for efficiency. - * - * char16lt - returns 1 iff a < b - * char16le - returns 1 iff a <= b - * char16gt - returns 1 iff a < b - * char16ge - returns 1 iff a <= b - * - */ -bool -char16eq(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - return (strncmp(arg1, arg2, 16) == 0); -} - -bool -char16ne(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - return (strncmp(arg1, arg2, 16) != 0); -} - -bool -char16lt(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - return (strncmp(arg1, arg2, 16) < 0); -} - -bool -char16le(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - return (strncmp(arg1, arg2, 16) <= 0); -} - -bool -char16gt(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - - return (strncmp(arg1, arg2, 16) > 0); -} - -bool -char16ge(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - - return (strncmp(arg1, arg2, 16) >= 0); -} - - -/* ============================== char2 ============================== */ -uint16 -char2in(char *s) -{ - uint16 res; - - if (s == NULL) - return (0); - - strncpy((char *) &res, s, 2); - return (res); -} - -char * -char2out(uint16 s) -{ - char *result = (char *) palloc(3); - - StrNCpy(result, (char *) &s, 3); - - return (result); -} - -bool -char2eq(uint16 a, uint16 b) -{ - return (strncmp((char *) &a, (char *) &b, 2) == 0); -} - -bool -char2ne(uint16 a, uint16 b) -{ - return (strncmp((char *) &a, (char *) &b, 2) != 0); -} - -bool -char2lt(uint16 a, uint16 b) -{ - return (strncmp((char *) &a, (char *) &b, 2) < 0); -} - -bool -char2le(uint16 a, uint16 b) -{ - return (strncmp((char *) &a, (char *) &b, 2) <= 0); -} - -bool -char2gt(uint16 a, uint16 b) -{ - return (strncmp((char *) &a, (char *) &b, 2) > 0); -} - -bool -char2ge(uint16 a, uint16 b) -{ - return (strncmp((char *) &a, (char *) &b, 2) >= 0); -} - -int32 -char2cmp(uint16 a, uint16 b) -{ - return (strncmp((char *) &a, (char *) &b, 2)); -} - -/* ============================== char4 ============================== */ -uint32 -char4in(char *s) -{ - uint32 res; - - if (s == NULL) - return (0); - - strncpy((char *) &res, s, 4); - - return (res); -} - -char * -char4out(s) -uint32 s; -{ - char *result = (char *) palloc(5); - - StrNCpy(result, (char *) &s, 5); - - return (result); -} - -bool -char4eq(uint32 a, uint32 b) -{ - return (strncmp((char *) &a, (char *) &b, 4) == 0); -} - -bool -char4ne(uint32 a, uint32 b) -{ - return (strncmp((char *) &a, (char *) &b, 4) != 0); -} - -bool -char4lt(uint32 a, uint32 b) -{ - return (strncmp((char *) &a, (char *) &b, 4) < 0); -} - -bool -char4le(uint32 a, uint32 b) -{ - return (strncmp((char *) &a, (char *) &b, 4) <= 0); -} - -bool -char4gt(uint32 a, uint32 b) -{ - return (strncmp((char *) &a, (char *) &b, 4) > 0); -} - -bool -char4ge(uint32 a, uint32 b) -{ - return (strncmp((char *) &a, (char *) &b, 4) >= 0); -} - -int32 -char4cmp(uint32 a, uint32 b) -{ - return (strncmp((char *) &a, (char *) &b, 4)); -} - -/* ============================== char8 ============================== */ -char * -char8in(char *s) -{ - char *result; - - if (s == NULL) - return ((char *) NULL); - - result = (char *) palloc(8); - strncpy(result, s, 8); - return (result); -} - -char * -char8out(char *s) -{ - char *result = (char *) palloc(9); - - if (s == NULL) - { - result[0] = '-'; - result[1] = '\0'; - } - else - StrNCpy(result, s, 9); - return (result); -} - -bool -char8eq(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - return (strncmp(arg1, arg2, 8) == 0); -} - -bool -char8ne(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - return (strncmp(arg1, arg2, 8) != 0); -} - -bool -char8lt(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - return (strncmp(arg1, arg2, 8) < 0); -} - -bool -char8le(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - return (strncmp(arg1, arg2, 8) <= 0); -} - -bool -char8gt(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - return (strncmp(arg1, arg2, 8) > 0); -} - -bool -char8ge(char *arg1, char *arg2) -{ - if (arg1 == NULL || arg2 == NULL) - return ((bool) 0); - return (strncmp(arg1, arg2, 8) >= 0); -} - -int32 -char8cmp(char *arg1, char *arg2) -{ - return (strncmp(arg1, arg2, 8)); -} diff --git a/src/backend/utils/adt/like.c b/src/backend/utils/adt/like.c index 27d6ffc0140..032f28b13ac 100644 --- a/src/backend/utils/adt/like.c +++ b/src/backend/utils/adt/like.c @@ -83,58 +83,6 @@ fixedlen_like(char *s, struct varlena * p, int charlen) } bool -char2like(uint16 arg1, struct varlena * p) -{ - char *s = (char *) &arg1; - - return (fixedlen_like(s, p, 2)); -} - -bool -char2nlike(uint16 arg1, struct varlena * p) -{ - return (!char2like(arg1, p)); -} - -bool -char4like(uint32 arg1, struct varlena * p) -{ - char *s = (char *) &arg1; - - return (fixedlen_like(s, p, 4)); -} - -bool -char4nlike(uint32 arg1, struct varlena * p) -{ - return (!char4like(arg1, p)); -} - -bool -char8like(char *s, struct varlena * p) -{ - return (fixedlen_like(s, p, 8)); -} - -bool -char8nlike(char *s, struct varlena * p) -{ - return (!char8like(s, p)); -} - -bool -char16like(char *s, struct varlena * p) -{ - return (fixedlen_like(s, p, 16)); -} - -bool -char16nlike(char *s, struct varlena * p) -{ - return (!char16like(s, p)); -} - -bool namelike(NameData *n, struct varlena * p) { if (!n) @@ -163,7 +111,7 @@ textnlike(struct varlena * s, struct varlena * p) } -/* $Revision: 1.13 $ +/* $Revision: 1.14 $ ** "like.c" A first attempt at a LIKE operator for Postgres95. ** ** Originally written by Rich $alz, mirror!rs, Wed Nov 26 19:03:17 EST 1986. diff --git a/src/backend/utils/adt/regexp.c b/src/backend/utils/adt/regexp.c index 7efc0e47e6b..b16e1e11b6e 100644 --- a/src/backend/utils/adt/regexp.c +++ b/src/backend/utils/adt/regexp.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.14 1998/02/26 04:37:20 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.15 1998/03/30 17:24:12 momjian Exp $ * * Alistair Crooks added the code for the regex caching * agc - cached the regular expressions used - there's a good chance @@ -204,58 +204,6 @@ fixedlen_regexeq(char *s, struct varlena * p, int charlen, int cflags) * routines that use the regexp stuff */ bool -char2regexeq(uint16 arg1, struct varlena * p) -{ - char *s = (char *) &arg1; - - return (fixedlen_regexeq(s, p, 2, REG_EXTENDED)); -} - -bool -char2regexne(uint16 arg1, struct varlena * p) -{ - return (!char2regexeq(arg1, p)); -} - -bool -char4regexeq(uint32 arg1, struct varlena * p) -{ - char *s = (char *) &arg1; - - return (fixedlen_regexeq(s, p, 4, REG_EXTENDED)); -} - -bool -char4regexne(uint32 arg1, struct varlena * p) -{ - return (!char4regexeq(arg1, p)); -} - -bool -char8regexeq(char *s, struct varlena * p) -{ - return (fixedlen_regexeq(s, p, 8, REG_EXTENDED)); -} - -bool -char8regexne(char *s, struct varlena * p) -{ - return (!char8regexeq(s, p)); -} - -bool -char16regexeq(char *s, struct varlena * p) -{ - return (fixedlen_regexeq(s, p, 16, REG_EXTENDED)); -} - -bool -char16regexne(char *s, struct varlena * p) -{ - return (!char16regexeq(s, p)); -} - -bool nameregexeq(NameData *n, struct varlena * p) { if (!n) @@ -289,59 +237,6 @@ textregexne(struct varlena * s, struct varlena * p) * for this, we use the REG_ICASE flag to pg95_regcomp */ bool -char2icregexeq(uint16 arg1, struct varlena * p) -{ - char *s = (char *) &arg1; - - return (fixedlen_regexeq(s, p, 2, REG_ICASE | REG_EXTENDED)); -} - - -bool -char2icregexne(uint16 arg1, struct varlena * p) -{ - return (!char2icregexeq(arg1, p)); -} - -bool -char4icregexeq(uint32 arg1, struct varlena * p) -{ - char *s = (char *) &arg1; - - return (fixedlen_regexeq(s, p, 4, REG_ICASE | REG_EXTENDED)); -} - -bool -char4icregexne(uint32 arg1, struct varlena * p) -{ - return (!char4icregexeq(arg1, p)); -} - -bool -char8icregexeq(char *s, struct varlena * p) -{ - return (fixedlen_regexeq(s, p, 8, REG_ICASE | REG_EXTENDED)); -} - -bool -char8icregexne(char *s, struct varlena * p) -{ - return (!char8icregexeq(s, p)); -} - -bool -char16icregexeq(char *s, struct varlena * p) -{ - return (fixedlen_regexeq(s, p, 16, REG_ICASE | REG_EXTENDED)); -} - -bool -char16icregexne(char *s, struct varlena * p) -{ - return (!char16icregexeq(s, p)); -} - -bool texticregexeq(struct varlena * s, struct varlena * p) { if (!s) diff --git a/src/backend/utils/adt/regproc.c b/src/backend/utils/adt/regproc.c index 30c9b682602..34a3b268c27 100644 --- a/src/backend/utils/adt/regproc.c +++ b/src/backend/utils/adt/regproc.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.15 1998/02/26 04:37:20 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.16 1998/03/30 17:24:17 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -52,7 +52,7 @@ regprocin(char *proname) ScanKeyEntryInitialize(&key, (bits16) 0, (AttrNumber) 1, - (RegProcedure) F_CHAR16EQ, + (RegProcedure) F_NAMEEQ, (Datum) proname); procscan = heap_beginscan(proc, 0, false, 1, &key); diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index ef9593b2b13..59bdce3f6e6 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.24 1998/02/26 04:37:27 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.25 1998/03/30 17:24:21 momjian Exp $ * * Notes: * XXX This needs to use exception.h to handle recovery when @@ -79,7 +79,7 @@ static int DisableCache; * ---------------- */ static long eqproc[] = { - F_BOOLEQ, 0l, F_CHAREQ, F_CHAR16EQ, 0l, + F_BOOLEQ, 0l, F_CHAREQ, F_NAMEEQ, 0l, F_INT2EQ, F_KEYFIRSTEQ, F_INT4EQ, 0l, F_TEXTEQ, F_OIDEQ, 0l, 0l, 0l, F_OID8EQ }; |