From 4f6f5db47484c6550cfe792e80fc2c824154995e Mon Sep 17 00:00:00 2001
From: Neil Conway <neilc@samurai.com>
Date: Tue, 29 Mar 2005 02:53:53 +0000
Subject: [PATCH] Add SPI_getnspname(), including documentation.

---
 doc/src/sgml/spi.sgml      | 56 +++++++++++++++++++++++++++++++++++++-
 src/backend/executor/spi.c |  8 +++++-
 src/include/executor/spi.h |  3 +-
 3 files changed, 64 insertions(+), 3 deletions(-)

diff --git a/doc/src/sgml/spi.sgml b/doc/src/sgml/spi.sgml
index 86949a9a439..52e41e1b890 100644
--- a/doc/src/sgml/spi.sgml
+++ b/doc/src/sgml/spi.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/spi.sgml,v 1.39 2005/01/22 22:56:36 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/spi.sgml,v 1.40 2005/03/29 02:53:53 neilc Exp $
 -->
 
 <chapter id="spi">
@@ -2153,6 +2153,60 @@ char * SPI_getrelname(Relation <parameter>rel</parameter>)
  </refsect1>
 </refentry>
 
+<refentry id="spi-spi-getnspname">
+ <refmeta>
+  <refentrytitle>SPI_getnspname</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+  <refname>SPI_getnspname</refname>
+  <refpurpose>return the namespace of the specified relation</refpurpose>
+ </refnamediv>
+
+ <indexterm><primary>SPI_getnspname</primary></indexterm>
+
+ <refsynopsisdiv>
+<synopsis>
+char * SPI_getnspname(Relation <parameter>rel</parameter>)
+</synopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+  <title>Description</title>
+
+  <para>
+   <function>SPI_getnspname</function> returns a copy of the name of
+   the namespace that the specified <structname>Relation</structname>
+   belongs to. This is equivalent to the relation's schema. You should
+   <function>pfree</function> the return value of this function when
+   you are finished with it.
+  </para>
+ </refsect1>
+
+ <refsect1>
+  <title>Arguments</title>
+
+  <variablelist>
+   <varlistentry>
+    <term><literal>Relation <parameter>rel</parameter></literal></term>
+    <listitem>
+     <para>
+      input relation
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+ </refsect1>
+
+ <refsect1>
+  <title>Return Value</title>
+
+  <para>
+   The name of the specified relation's namespace.
+  </para>
+ </refsect1>
+</refentry>
+
  </sect1>
 
  <sect1 id="spi-memory">
diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c
index de119ec7762..c72201c6e6a 100644
--- a/src/backend/executor/spi.c
+++ b/src/backend/executor/spi.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.136 2005/03/25 21:57:58 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.137 2005/03/29 02:53:53 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -760,6 +760,12 @@ SPI_getrelname(Relation rel)
 	return pstrdup(RelationGetRelationName(rel));
 }
 
+char *
+SPI_getnspname(Relation rel)
+{
+    return get_namespace_name(RelationGetNamespace(rel));
+}
+
 void *
 SPI_palloc(Size size)
 {
diff --git a/src/include/executor/spi.h b/src/include/executor/spi.h
index d5ba89fa3ea..10e4747dd9f 100644
--- a/src/include/executor/spi.h
+++ b/src/include/executor/spi.h
@@ -2,7 +2,7 @@
  *
  * spi.h
  *
- * $PostgreSQL: pgsql/src/include/executor/spi.h,v 1.50 2004/11/16 18:10:13 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/executor/spi.h,v 1.51 2005/03/29 02:53:53 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -113,6 +113,7 @@ extern Datum SPI_getbinval(HeapTuple tuple, TupleDesc tupdesc, int fnumber, bool
 extern char *SPI_gettype(TupleDesc tupdesc, int fnumber);
 extern Oid	SPI_gettypeid(TupleDesc tupdesc, int fnumber);
 extern char *SPI_getrelname(Relation rel);
+extern char *SPI_getnspname(Relation rel);
 extern void *SPI_palloc(Size size);
 extern void *SPI_repalloc(void *pointer, Size size);
 extern void SPI_pfree(void *pointer);
-- 
GitLab