]> granicus.if.org Git - postgresql/commitdiff
Add conversion routines for oid to and from text.
authorThomas G. Lockhart <lockhart@fourpalms.org>
Sat, 25 Oct 1997 05:21:54 +0000 (05:21 +0000)
committerThomas G. Lockhart <lockhart@fourpalms.org>
Sat, 25 Oct 1997 05:21:54 +0000 (05:21 +0000)
src/backend/utils/adt/oid.c

index 77c2e9a112f6b62cd5616885e48da61b6511c4e3..5ab41769b743f1a5e4d36ced25ce32c94dd2fed1 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.11 1997/09/08 21:48:33 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.12 1997/10/25 05:21:54 thomas Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,7 +28,7 @@
  *             Note:
  *                             Fills any nonexistent digits with NULL oids.
  */
-Oid               *
+Oid    *
 oid8in(char *oidString)
 {
        register Oid (*result)[];
@@ -57,7 +57,7 @@ oid8in(char *oidString)
 /*
  *             oid8out - converts internal form to "num num ..."
  */
-char      *
+char *
 oid8out(Oid (*oidArray)[])
 {
        register int num;
@@ -93,7 +93,7 @@ oidin(char *s)
        return (int4in(s));
 }
 
-char      *
+char *
 oidout(Oid o)
 {
        return (int4out(o));
@@ -138,3 +138,43 @@ int4eqoid(int32 arg1, Oid arg2)
 /* oid is unsigned, but int4 is signed */
        return (arg1 >= 0 && arg1 == arg2);
 }
+
+text *
+oid_text(Oid oid)
+{
+       text *result;
+
+       int     len;
+       char *str;
+
+       str = oidout(oid);
+       len = (strlen(str) + VARHDRSZ);
+
+       result = PALLOC(len);
+
+       VARSIZE(result) = len;
+       memmove(VARDATA(result), str, (len-VARHDRSZ));
+       PFREE(str);
+
+       return(result);
+} /* oid_text() */
+
+Oid
+text_oid(text *string)
+{
+       Oid result;
+
+       int     len;
+       char *str;
+
+    len = (VARSIZE(string) - VARHDRSZ);
+
+       str = PALLOC(len+1);
+       memmove(str, VARDATA(string), len);
+       *(str+len) = '\0';
+
+       result = oidin(str);
+       PFREE(str);
+
+       return(result);
+} /* oid_text() */