From c0087c9faff1f006640ebfac816129438280575b Mon Sep 17 00:00:00 2001
From: "Thomas G. Lockhart" <lockhart@fourpalms.org>
Date: Sat, 25 Oct 1997 05:21:54 +0000
Subject: [PATCH] Add conversion routines for oid to and from text.

---
 src/backend/utils/adt/oid.c | 48 +++++++++++++++++++++++++++++++++----
 1 file 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() */
-- 
GitLab