aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/create_function.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/ref/create_function.sgml')
-rw-r--r--doc/src/sgml/ref/create_function.sgml127
1 files changed, 59 insertions, 68 deletions
diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml
index 3dc37e3380d..7ba3391a669 100644
--- a/doc/src/sgml/ref/create_function.sgml
+++ b/doc/src/sgml/ref/create_function.sgml
@@ -32,41 +32,34 @@ CREATE FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceab
Inputs
</title>
<para>
- <variablelist>
- <varlistentry>
- <term>
- <replaceable class="parameter">name</replaceable>
- </term>
- <listitem>
- <para>
- The name of a function to create.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <replaceable class="parameter">ftype</replaceable>
- </term>
- <listitem>
- <para>
- The data type of function arguments.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <replaceable class="parameter">rtype</replaceable>
- </term>
- <listitem>
- <para>
- The return data type.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <replaceable class="parameter">definition</replaceable>
- </term>
+
+ <variablelist>
+ <varlistentry>
+ <term><replaceable class="parameter">name</replaceable></term>
+ <listitem>
+ <para>
+ The name of a function to create.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable class="parameter">ftype</replaceable></term>
+ <listitem>
+ <para>
+ The data type of function arguments.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable class="parameter">rtype</replaceable></term>
+ <listitem>
+ <para>
+ The return data type.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable class="parameter">definition</replaceable></term>
<listitem>
<para>
A string defining the function; the meaning depends on the language.
@@ -76,9 +69,7 @@ CREATE FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceab
</listitem>
</varlistentry>
<varlistentry>
- <term>
- <replaceable class="parameter">langname</replaceable>
- </term>
+ <term><replaceable class="parameter">langname</replaceable></term>
<listitem>
<para>
may be '<literal>C</literal>', '<literal>sql</literal>',
@@ -93,7 +84,7 @@ CREATE FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceab
</variablelist>
</para>
</refsect2>
-
+
<refsect2 id="R2-SQL-CREATEFUNCTION-2">
<refsect2info>
<date>1998-09-09</date>
@@ -102,12 +93,12 @@ CREATE FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceab
Outputs
</title>
<para>
-
+
<variablelist>
<varlistentry>
- <term>
- <returnvalue>CREATE</returnvalue>
- </term>
+ <term><computeroutput>
+CREATE
+ </computeroutput></term>
<listitem>
<para>
This is returned if the command completes successfully.
@@ -118,7 +109,7 @@ CREATE FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceab
</para>
</refsect2>
</refsynopsisdiv>
-
+
<refsect1 id="R1-SQL-CREATEFUNCTION-1">
<refsect1info>
<date>1998-09-09</date>
@@ -188,20 +179,21 @@ in the <citetitle>PostgreSQL Programmer's Guide</citetitle>
</title>
<para>
To create a simple SQL function:
- </para>
+
<programlisting>
- CREATE FUNCTION one() RETURNS int4
- AS 'SELECT 1 AS RESULT'
- LANGUAGE 'sql';
-
- SELECT one() AS answer;
-
+CREATE FUNCTION one() RETURNS int4
+ AS 'SELECT 1 AS RESULT'
+ LANGUAGE 'sql';
+SELECT one() AS answer;
+
<computeroutput>
answer
------
1
</computeroutput>
</programlisting>
+ </para>
+
<para>
To create a C function, calling a routine from a user-created
shared library. This particular routine calculates a check
@@ -210,16 +202,16 @@ in the <citetitle>PostgreSQL Programmer's Guide</citetitle>
</para>
<programlisting>
<userinput>
- CREATE FUNCTION ean_checkdigit(bpchar, bpchar) RETURNS bool
- AS '/usr1/proj/bray/sql/funcs.so' LANGUAGE 'c';
+CREATE FUNCTION ean_checkdigit(bpchar, bpchar) RETURNS bool
+ AS '/usr1/proj/bray/sql/funcs.so' LANGUAGE 'c';
- CREATE TABLE product (
+CREATE TABLE product (
id char(8) PRIMARY KEY,
eanprefix char(8) CHECK (eanprefix ~ '[0-9]{2}-[0-9]{5}')
REFERENCES brandname(ean_prefix),
eancode char(6) CHECK (eancode ~ '[0-9]{6}'),
CONSTRAINT ean CHECK (ean_checkdigit(eanprefix, eancode))
- );
+);
</userinput>
</programlisting>
</refsect1>
@@ -232,16 +224,16 @@ in the <citetitle>PostgreSQL Programmer's Guide</citetitle>
A C function cannot return a set of values.
</para>
</refsect1>
-
+
<refsect1 id="R1-SQL-CREATEFUNCTION-4">
<title>
Compatibility
</title>
- <para>
- <command>CREATE FUNCTION</command> is
- a <productname>Postgres</productname> language extension.
+ <para>
+ <command>CREATE FUNCTION</command> is
+ a <productname>Postgres</productname> language extension.
</para>
-
+
<refsect2 id="R2-SQL-CREATEFUNCTION-4">
<refsect2info>
<date>1998-09-09</date>
@@ -251,27 +243,26 @@ in the <citetitle>PostgreSQL Programmer's Guide</citetitle>
</title>
<para>
-<note>
+ <note>
<para>
PSM stands for Persistent Stored Modules. It is a procedural
language and it was originally hoped that PSM would be ratified
as an official standard by late 1996. As of mid-1998, this
-has not yet happened, but it is hoped that PSM will
+ has not yet happened, but it is hoped that PSM will
eventually become a standard.
</para>
-</note>
+ </note>
-SQL/PSM <command>CREATE FUNCTION</command> has the following syntax:
-<synopsis>
+ SQL/PSM <command>CREATE FUNCTION</command> has the following syntax:
+ <synopsis>
CREATE FUNCTION <replaceable class="parameter">name</replaceable>
- ( [ [ IN | OUT | INOUT ] <replaceable class="parameter">eter</replaceable>eable> <replaceable
+ ( [ [ IN | OUT | INOUT ] <replaceable class="parameter">eter</replaceable>eable>eable> <replaceable
class="parameter">type</replaceable> [, ...] ] )
RETURNS <replaceable class="parameter">rtype</replaceable>
LANGUAGE '<replaceable class="parameter">langname</replaceable>'
ESPECIFIC <replaceable class="parameter">routine</replaceable>
<replaceable class="parameter">SQL-statement</replaceable>
-</synopsis>
-
+ </synopsis>
</para>
</refsect2>
</refsect1>