diff options
Diffstat (limited to 'doc/src/sgml/ref/create_function.sgml')
-rw-r--r-- | doc/src/sgml/ref/create_function.sgml | 132 |
1 files changed, 68 insertions, 64 deletions
diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml index 62fe39652f4..96cce89bd9a 100644 --- a/doc/src/sgml/ref/create_function.sgml +++ b/doc/src/sgml/ref/create_function.sgml @@ -15,30 +15,23 @@ <REFSYNOPSISDIV> <REFSYNOPSISDIVINFO> - <DATE>1998-04-15</DATE> + <DATE>1998-09-09</DATE> </REFSYNOPSISDIVINFO> <SYNOPSIS> - CREATE FUNCTION <replaceable class="parameter">name</replaceable> ([<replaceable class="parameter">ftype</replaceable> [, ...]]) - RETURNS <replaceable class="parameter">rtype</replaceable> - AS <replaceable class="parameter">path</replaceable> - LANGUAGE '<replaceable class="parameter">langname</replaceable>' +CREATE FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceable class="parameter">ftype</replaceable> [, ...] ] ) + RETURNS <replaceable class="parameter">rtype</replaceable> + AS <replaceable class="parameter">path</replaceable> + LANGUAGE '<replaceable class="parameter">langname</replaceable>' </SYNOPSIS> <REFSECT2 ID="R2-SQL-CREATEFUNCTION-1"> <REFSECT2INFO> - <DATE>1998-04-15</DATE> + <DATE>1998-09-09</DATE> </REFSECT2INFO> <TITLE> Inputs </TITLE> <PARA> - </PARA> - <VARIABLELIST> - <VARLISTENTRY> - <TERM> - </TERM> - <LISTITEM> - <PARA> <VARIABLELIST> <VARLISTENTRY> <TERM> @@ -87,21 +80,21 @@ </TERM> <LISTITEM> <PARA> - may be '<literal>c</literal>', '<literal>sql</literal>', '<literal>internal</literal>' or '<replaceable class="parameter">plname</replaceable>'. - (where '<replaceable class="parameter">plname</replaceable>' is the language name of a created procedural - language. See <command>CREATE LANGUAGE</command> for details). + may be '<literal>C</literal>', '<literal>sql</literal>', + '<literal>internal</literal>' + or '<replaceable class="parameter">plname</replaceable>', + where '<replaceable class="parameter">plname</replaceable>' + is the name of a created procedural + language. See <command>CREATE LANGUAGE</command> for details. </PARA> </LISTITEM> </VARLISTENTRY> </variablelist> - </LISTITEM> - </VARLISTENTRY> - </VARIABLELIST> </REFSECT2> <REFSECT2 ID="R2-SQL-CREATEFUNCTION-2"> <REFSECT2INFO> - <DATE>1998-04-15</DATE> + <DATE>1998-09-09</DATE> </REFSECT2INFO> <TITLE> Outputs @@ -111,6 +104,7 @@ <VARIABLELIST> <VARLISTENTRY> <TERM> +<replaceable>status</replaceable> </TERM> <LISTITEM> <PARA> @@ -134,32 +128,34 @@ <REFSECT1 ID="R1-SQL-CREATEFUNCTION-1"> <REFSECT1INFO> - <DATE>1998-04-15</DATE> + <DATE>1998-09-09</DATE> </REFSECT1INFO> <TITLE> Description </TITLE> <PARA> - With this command, a PostgreSQL user can register a function - with PostgreSQL. Subsequently, this user is treated as the + <command>CREATE FUNCTION</command> allows a +<productname>Postgres</productname> user +to register a function + with a database. Subsequently, this user is treated as the owner of the function. </PARA> <REFSECT2 ID="R2-SQL-CREATEFUNCTION-3"> <REFSECT2INFO> - <DATE>1998-04-15</DATE> + <DATE>1998-09-09</DATE> </REFSECT2INFO> <TITLE> Notes </TITLE> <PARA> - Refer to <citetitle>PostgreSQL User's Guide</citetitle> chapter 6 for further information. - <comment>This reference needs to be corrected.</comment> + Refer to the chapter on functions +in the <citetitle>PostgreSQL Programmer's Guide</citetitle> + for further information. </PARA> <PARA> - Refer to the <citerefentry> - <refentrytitle>DROP FUNCTION</refentrytitle> - </citerefentry> statement to drop functions. + Use <command>DROP FUNCTION</command> + to drop user-defined functions. </PARA> </REFSECT2> @@ -171,15 +167,17 @@ To create a simple SQL function: </PARA> <ProgramListing> - CREATE FUNCTION one() RETURNS int4 - AS 'SELECT 1 AS RESULT' - LANGUAGE 'sql'; +CREATE FUNCTION one() RETURNS int4 + AS 'SELECT 1 AS RESULT' + LANGUAGE 'sql'; - SELECT one() AS answer; +SELECT one() AS answer; - <computeroutput>answer - ------ - 1 </computeroutput> +<computeroutput> +answer +------ +1 +</computeroutput> </ProgramListing> <para> To create a C function, calling a routine from a user-created @@ -188,17 +186,18 @@ is correct. It is intended for use in a CHECK contraint. </para> <programlisting> - <userinput>CREATE FUNCTION ean_checkdigit(bpchar, bpchar) RETURNS bool - AS '/usr1/proj/bray/sql/funcs.so' LANGUAGE 'c'; +<userinput> +CREATE FUNCTION ean_checkdigit(bpchar, bpchar) RETURNS bool + AS '/usr1/proj/bray/sql/funcs.so' LANGUAGE 'c'; - 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> +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> @@ -216,39 +215,44 @@ Compatibility </TITLE> <PARA> - The CREATE FUNCTION statement is a PostgreSQL language extension. + <command>CREATE FUNCTION</command> is + a <productname>Postgres</productname> language extension. </PARA> <REFSECT2 ID="R2-SQL-CREATEFUNCTION-4"> <REFSECT2INFO> - <DATE>1998-04-15</DATE> + <DATE>1998-09-09</DATE> </REFSECT2INFO> <TITLE> - SQL/PSM<footnote> + SQL/PSM + </TITLE> + <para> + +<note> <para> - PSM stands for Persistent Stored Modules, it is a procedural + 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. However PSM will + as an official standard by late 1996. As of mid-1998, this +has not yet happened, but it is hoped that PSM will eventually become a standard. </para> - </footnote> - </TITLE> - <para> - The SQL/PSM CREATE FUNCTION statement has the following syntax: - <programlisting> - CREATE FUNCTION <replaceable class="parameter">name</replaceable> - ( [ [IN|OUT|INOUT] <replaceable class="parameter">parm</replaceable> <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> - </programlisting> +</note> + +SQL/PSM <command>CREATE FUNCTION</command> has the following syntax: +<synopsis> +CREATE FUNCTION <replaceable class="parameter">name</replaceable> + ( [ [ IN | OUT | INOUT ] <replaceable class="parameter">parm</replaceable> <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> + </para> </refsect2> </refsect1> </REFENTRY> - <!-- Keep this comment at the end of the file Local variables: mode: sgml |