aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas G. Lockhart <lockhart@fourpalms.org>1997-10-25 05:21:54 +0000
committerThomas G. Lockhart <lockhart@fourpalms.org>1997-10-25 05:21:54 +0000
commitc0087c9faff1f006640ebfac816129438280575b (patch)
tree949e58c9cd940467e68c6450cb376b889d2bf13e
parent08b1a09ee0cb39c93e3f88f4328d23705411775c (diff)
downloadpostgresql-c0087c9faff1f006640ebfac816129438280575b.tar.gz
postgresql-c0087c9faff1f006640ebfac816129438280575b.zip
Add conversion routines for oid to and from text.
-rw-r--r--src/backend/utils/adt/oid.c48
1 files changed, 44 insertions, 4 deletions
diff --git a/src/backend/utils/adt/oid.c b/src/backend/utils/adt/oid.c
index 77c2e9a112f..5ab41769b74 100644
--- a/src/backend/utils/adt/oid.c
+++ b/src/backend/utils/adt/oid.c
@@ -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() */