]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Define text, varchar, and bpchar string length functions.
authorThomas G. Lockhart <lockhart@fourpalms.org>
Tue, 16 Dec 1997 15:59:11 +0000 (15:59 +0000)
committerThomas G. Lockhart <lockhart@fourpalms.org>
Tue, 16 Dec 1997 15:59:11 +0000 (15:59 +0000)
src/backend/utils/adt/varchar.c
src/backend/utils/adt/varlena.c

index 1661f08cd8a419fe276e49ac69bdb85eb04deb31..325d5f6f415001f1d414a4588075c1b17d9d9d2e 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.12 1997/12/06 22:57:14 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.13 1997/12/16 15:59:09 thomas Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -121,7 +121,7 @@ bpcharout(char *s)
  *       len is the length specified in () plus VARHDRSZ bytes. (XXX dummy is here
  *       because we pass typelem as the second argument for array_in.)
  */
-char      *
+char *
 varcharin(char *s, int dummy, int typlen)
 {
        char       *result;
@@ -191,6 +191,15 @@ bcTruelen(char *arg)
        return (i + 1);
 }
 
+int32
+bpcharlen(char *arg)
+{
+       if (!PointerIsValid(arg))
+               elog(WARN, "Bad (null) char() external representation", NULL);
+
+       return(bcTruelen(arg));
+} /* bpcharlen() */
+
 bool
 bpchareq(char *arg1, char *arg2)
 {
@@ -338,6 +347,15 @@ vcTruelen(char *arg)
        return i;
 }
 
+int32
+varcharlen(char *arg)
+{
+       if (!PointerIsValid(arg))
+               elog(WARN, "Bad (null) varchar() external representation", NULL);
+
+       return(vcTruelen(arg));
+} /* vclen() */
+
 bool
 varchareq(char *arg1, char *arg2)
 {
index 580ef561f5ba7fd28c87abaf5c960457078edc5d..57cc01295e290e3f285dd75fd60046dec97ce9c1 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.24 1997/12/08 04:42:48 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.25 1997/12/16 15:59:11 thomas Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -210,20 +210,14 @@ textout(struct varlena * vlena)
  *       returns the actual length of a text* (which may be less than
  *       the VARSIZE of the text*)
  */
-#ifdef NOT_USED
 int
 textlen(text *t)
 {
-       int                     i = 0;
-       int                     max = VARSIZE(t) - VARHDRSZ;
-       char       *ptr = VARDATA(t);
-
-       while (i < max && *ptr++)
-               i++;
-       return i;
-}
+       if (!PointerIsValid(t))
+               elog(WARN,"Null input to textlen");
 
-#endif
+       return (VARSIZE(t) - VARHDRSZ);
+} /* textlen() */
 
 /*
  * textcat -