Rename bytea functions to not have upper-case letters in their names.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 24 Mar 2000 02:41:46 +0000 (02:41 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 24 Mar 2000 02:41:46 +0000 (02:41 +0000)
Clean up grotty coding in them, too.  AFAICS from the CVS logs, these
have been broken since Postgres95, so I'm not going to insist on an
initdb to fix them now...

src/backend/utils/adt/varlena.c
src/include/catalog/pg_proc.h
src/include/utils/builtins.h

index bdd486825d0c3aacf53765b83be574461ac22838..b333a0ed4e36fc2ca49619b5315cc772b00a2026 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.56 2000/01/26 05:57:15 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.57 2000/03/24 02:41:46 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -41,13 +41,13 @@ static int  text_cmp(text *arg1, text *arg2);
  *                             The input is scaned twice.
  *                             The error checking of input is minimal.
  */
-text *
+bytea *
 byteain(char *inputText)
 {
        char       *tp;
        char       *rp;
        int                     byte;
-       text       *result;
+       bytea      *result;
 
        if (inputText == NULL)
                elog(ERROR, "Bad input string for type bytea");
@@ -64,7 +64,7 @@ byteain(char *inputText)
                }
        tp = inputText;
        byte += VARHDRSZ;
-       result = (text *) palloc(byte);
+       result = (bytea *) palloc(byte);
        result->vl_len = byte;          /* varlena? */
        rp = result->vl_dat;
        while (*tp != '\0')
@@ -90,10 +90,9 @@ byteain(char *inputText)
  *             NULL vlena should be an error--returning string with NULL for now.
  */
 char *
-byteaout(text *vlena)
+byteaout(bytea *vlena)
 {
        char       *result;
-
        char       *vp;
        char       *rp;
        int                     val;                    /* holds unprintable chars */
@@ -173,7 +172,6 @@ textin(char *inputText)
  *             textout                 - converts internal representation to "..."
  */
 char *
-
 textout(text *vlena)
 {
        int                     len;
@@ -218,7 +216,7 @@ textlen(text *t)
 #endif
 
        if (!PointerIsValid(t))
-               elog(ERROR, "Null input to textlen");
+               return 0;
 
 #ifdef MULTIBYTE
        len = 0;
@@ -247,10 +245,9 @@ int32
 textoctetlen(text *t)
 {
        if (!PointerIsValid(t))
-               elog(ERROR, "Null input to textoctetlen");
+               return 0;
 
        return VARSIZE(t) - VARHDRSZ;
-
 }      /* textoctetlen() */
 
 /*
@@ -621,19 +618,18 @@ text_smaller(text *arg1, text *arg2)
 }
 
 /*-------------------------------------------------------------
- * byteaGetSize
+ * byteaoctetlen
  *
  * get the number of bytes contained in an instance of type 'bytea'
  *-------------------------------------------------------------
  */
 int32
-byteaGetSize(text *v)
+byteaoctetlen(bytea *v)
 {
-       int                     len;
-
-       len = v->vl_len - sizeof(v->vl_len);
+       if (!PointerIsValid(v))
+               return 0;
 
-       return len;
+       return VARSIZE(v) - VARHDRSZ;
 }
 
 /*-------------------------------------------------------------
@@ -645,23 +641,22 @@ byteaGetSize(text *v)
  *-------------------------------------------------------------
  */
 int32
-byteaGetByte(text *v, int32 n)
+byteaGetByte(bytea *v, int32 n)
 {
        int                     len;
        int                     byte;
 
-       len = byteaGetSize(v);
+       if (!PointerIsValid(v))
+               return 0;
 
-       if (n >= len)
-       {
-               elog(ERROR, "byteaGetByte: index (=%d) out of range [0..%d]",
+       len = VARSIZE(v) - VARHDRSZ;
+
+       if (n < 0 || n >= len)
+               elog(ERROR, "byteaGetByte: index %d out of range [0..%d]",
                         n, len - 1);
-       }
-#ifdef USE_LOCALE
-       byte = (unsigned char) (v->vl_dat[n]);
-#else
-       byte = v->vl_dat[n];
-#endif
+
+       byte = ((unsigned char *) VARDATA(v))[n];
+
        return (int32) byte;
 }
 
@@ -675,16 +670,26 @@ byteaGetByte(text *v, int32 n)
  *-------------------------------------------------------------
  */
 int32
-byteaGetBit(text *v, int32 n)
+byteaGetBit(bytea *v, int32 n)
 {
        int                     byteNo,
                                bitNo;
+       int                     len;
        int                     byte;
 
+       if (!PointerIsValid(v))
+               return 0;
+
+       len = VARSIZE(v) - VARHDRSZ;
+
+       if (n < 0 || n >= len*8)
+               elog(ERROR, "byteaGetBit: index %d out of range [0..%d]",
+                        n, len*8 - 1);
+
        byteNo = n / 8;
        bitNo = n % 8;
 
-       byte = byteaGetByte(v, byteNo);
+       byte = ((unsigned char *) VARDATA(v))[byteNo];
 
        if (byte & (1 << bitNo))
                return (int32) 1;
@@ -700,36 +705,31 @@ byteaGetBit(text *v, int32 n)
  *
  *-------------------------------------------------------------
  */
-text *
-byteaSetByte(text *v, int32 n, int32 newByte)
+bytea *
+byteaSetByte(bytea *v, int32 n, int32 newByte)
 {
        int                     len;
-       text       *res;
+       bytea      *res;
 
-       len = byteaGetSize(v);
+       if (!PointerIsValid(v))
+               return 0;
 
-       if (n >= len)
-       {
-               elog(ERROR,
-                        "byteaSetByte: index (=%d) out of range [0..%d]",
+       len = VARSIZE(v) - VARHDRSZ;
+
+       if (n < 0 || n >= len)
+               elog(ERROR, "byteaSetByte: index %d out of range [0..%d]",
                         n, len - 1);
-       }
 
        /*
         * Make a copy of the original varlena.
         */
-       res = (text *) palloc(VARSIZE(v));
-       if (res == NULL)
-       {
-               elog(ERROR, "byteaSetByte: Out of memory (%d bytes requested)",
-                        VARSIZE(v));
-       }
-       memmove((char *) res, (char *) v, VARSIZE(v));
+       res = (bytea *) palloc(VARSIZE(v));
+       memcpy((char *) res, (char *) v, VARSIZE(v));
 
        /*
         * Now set the byte.
         */
-       res->vl_dat[n] = newByte;
+       ((unsigned char *) VARDATA(res))[n] = newByte;
 
        return res;
 }
@@ -742,26 +742,37 @@ byteaSetByte(text *v, int32 n, int32 newByte)
  *
  *-------------------------------------------------------------
  */
-text *
-byteaSetBit(text *v, int32 n, int32 newBit)
+bytea *
+byteaSetBit(bytea *v, int32 n, int32 newBit)
 {
-       text       *res;
+       bytea      *res;
+       int                     len;
        int                     oldByte,
                                newByte;
        int                     byteNo,
                                bitNo;
 
+       if (!PointerIsValid(v))
+               return NULL;
+
+       len = VARSIZE(v) - VARHDRSZ;
+
+       if (n < 0 || n >= len*8)
+               elog(ERROR, "byteaSetBit: index %d out of range [0..%d]",
+                        n, len*8 - 1);
+
+       byteNo = n / 8;
+       bitNo = n % 8;
+
        /*
         * sanity check!
         */
        if (newBit != 0 && newBit != 1)
-               elog(ERROR, "byteaSetByte: new bit must be 0 or 1");
+               elog(ERROR, "byteaSetBit: new bit must be 0 or 1");
 
        /*
         * get the byte where the bit we want is stored.
         */
-       byteNo = n / 8;
-       bitNo = n % 8;
        oldByte = byteaGetByte(v, byteNo);
 
        /*
index b8befe6882840b079eb56b8da76373ff4cdd80e7..be1e38f5949ab69e47000c928ad4969f8e6c9f37 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_proc.h,v 1.128 2000/03/19 01:12:18 tgl Exp $
+ * $Id: pg_proc.h,v 1.129 2000/03/24 02:41:44 tgl Exp $
  *
  * NOTES
  *       The script catalog/genbki.sh reads this file and generates .bki
@@ -948,15 +948,15 @@ DESCR("equal");
 DATA(insert OID = 717 (  int4eqoid                PGUID 11 f t t 2 f 16 "23 26" 100 0 0 100  int4eqoid - ));
 DESCR("equal");
 
-DATA(insert OID = 720 (  byteaGetSize     PGUID 11 f t t 1 f 23 "17" 100 0 0 100  byteaGetSize - ));
+DATA(insert OID = 720 (  octet_length     PGUID 11 f t t 1 f 23 "17" 100 0 0 100  byteaoctetlen - ));
 DESCR("");
-DATA(insert OID = 721 (  byteaGetByte     PGUID 11 f t t 2 f 23 "17 23" 100 0 0 100  byteaGetByte - ));
+DATA(insert OID = 721 (  get_byte                 PGUID 11 f t t 2 f 23 "17 23" 100 0 0 100  byteaGetByte - ));
 DESCR("");
-DATA(insert OID = 722 (  byteaSetByte     PGUID 11 f t t 3 f 17 "17 23 23" 100 0 0 100  byteaSetByte - ));
+DATA(insert OID = 722 (  set_byte                 PGUID 11 f t t 3 f 17 "17 23 23" 100 0 0 100  byteaSetByte - ));
 DESCR("");
-DATA(insert OID = 723 (  byteaGetBit      PGUID 11 f t t 2 f 23 "17 23" 100 0 0 100  byteaGetBit - ));
+DATA(insert OID = 723 (  get_bit                  PGUID 11 f t t 2 f 23 "17 23" 100 0 0 100  byteaGetBit - ));
 DESCR("");
-DATA(insert OID = 724 (  byteaSetBit      PGUID 11 f t t 3 f 17 "17 23 23" 100 0 0 100  byteaSetBit - ));
+DATA(insert OID = 724 (  set_bit                  PGUID 11 f t t 3 f 17 "17 23 23" 100 0 0 100  byteaSetBit - ));
 DESCR("");
 
 DATA(insert OID = 725 (  dist_pl                  PGUID 11 f t t 2 f 701 "600 628" 100 0 0 100  dist_pl - ));
index 7e4ee5a560d2e80c9db65e551f4370f9647f94c3..008d3a7f20fe6768c7eb64b1bda2b8575a2c1505 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: builtins.h,v 1.106 2000/03/14 23:06:50 thomas Exp $
+ * $Id: builtins.h,v 1.107 2000/03/24 02:41:45 tgl Exp $
  *
  * NOTES
  *       This should normally only be included by fmgr.h.
@@ -450,13 +450,13 @@ extern text *text_substr(text *string, int32 m, int32 n);
 extern text *name_text(NameData *s);
 extern NameData *text_name(text *s);
 
-extern struct varlena *byteain(char *inputText);
-extern char *byteaout(struct varlena * vlena);
-extern int32 byteaGetSize(struct varlena * v);
-extern int32 byteaGetByte(struct varlena * v, int32 n);
-extern int32 byteaGetBit(struct varlena * v, int32 n);
-extern struct varlena *byteaSetByte(struct varlena * v, int32 n, int32 newByte);
-extern struct varlena *byteaSetBit(struct varlena * v, int32 n, int32 newBit);
+extern bytea *byteain(char *inputText);
+extern char *byteaout(bytea *vlena);
+extern int32 byteaoctetlen(bytea *v);
+extern int32 byteaGetByte(bytea *v, int32 n);
+extern int32 byteaGetBit(bytea *v, int32 n);
+extern bytea *byteaSetByte(bytea *v, int32 n, int32 newByte);
+extern bytea *byteaSetBit(bytea *v, int32 n, int32 newBit);
 
 /* like.c */
 extern bool namelike(NameData *n, struct varlena * p);