mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
More cleanup of CREATE FUNCTION examples.
This commit is contained in:
parent
8dcf998dd1
commit
8394e4723a
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.27 2001/10/02 21:39:35 tgl Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.28 2001/10/26 21:17:03 tgl Exp $
|
||||
-->
|
||||
|
||||
<refentry id="SQL-CREATEFUNCTION">
|
||||
@ -295,14 +295,16 @@ SELECT one() AS answer;
|
||||
|
||||
<para>
|
||||
The next example creates a C function by calling a routine from a
|
||||
user-created shared library. This particular routine calculates a
|
||||
check digit and returns TRUE if the check digit in the function
|
||||
user-created shared library named <filename>funcs.so</> (the extension
|
||||
may vary across platforms). The shared library file is sought in the
|
||||
server's dynamic library search path. This particular routine calculates
|
||||
a check digit and returns TRUE if the check digit in the function
|
||||
parameters is correct. It is intended for use in a CHECK
|
||||
constraint.
|
||||
|
||||
<programlisting>
|
||||
CREATE FUNCTION ean_checkdigit(char, char) RETURNS boolean
|
||||
AS '/usr1/proj/bray/sql/funcs.so' LANGUAGE C;
|
||||
AS 'funcs' LANGUAGE C;
|
||||
|
||||
CREATE TABLE product (
|
||||
id char(8) PRIMARY KEY,
|
||||
@ -318,7 +320,9 @@ CREATE TABLE product (
|
||||
This example creates a function that does type conversion between the
|
||||
user-defined type complex, and the internal type point. The
|
||||
function is implemented by a dynamically loaded object that was
|
||||
compiled from C source. For <productname>PostgreSQL</productname> to
|
||||
compiled from C source (we illustrate the now-deprecated alternative
|
||||
of specifying the exact pathname to the shared object file).
|
||||
For <productname>PostgreSQL</productname> to
|
||||
find a type conversion function automatically, the SQL function has
|
||||
to have the same name as the return type, and so overloading is
|
||||
unavoidable. The function name is overloaded by using the second
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_language.sgml,v 1.17 2001/09/06 10:28:39 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_language.sgml,v 1.18 2001/10/26 21:17:03 tgl Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -171,7 +171,7 @@ ERROR: PL handler function <replaceable class="parameter">funcname</replaceable
|
||||
This command normally should not be executed directly by users.
|
||||
For the procedural languages supplied in the
|
||||
<productname>PostgreSQL</productname> distribution, the <xref
|
||||
linkend="app-createlang"> program should be used, which will also
|
||||
linkend="app-createlang"> script should be used, which will also
|
||||
install the correct call handler. (<command>createlang</command>
|
||||
will call <command>CREATE LANGUAGE</command> internally.)
|
||||
</para>
|
||||
@ -183,7 +183,7 @@ ERROR: PL handler function <replaceable class="parameter">funcname</replaceable
|
||||
|
||||
<para>
|
||||
Use <xref linkend="sql-droplanguage">, or better yet the <xref
|
||||
linkend="app-droplang"> program, to drop procedural languages.
|
||||
linkend="app-droplang"> script, to drop procedural languages.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -210,7 +210,7 @@ ERROR: PL handler function <replaceable class="parameter">funcname</replaceable
|
||||
|
||||
<para>
|
||||
At present, the definition of a procedural language cannot be
|
||||
changed once is has been created.
|
||||
changed once it has been created.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
@ -222,7 +222,7 @@ ERROR: PL handler function <replaceable class="parameter">funcname</replaceable
|
||||
procedural language and the associated call handler.
|
||||
<programlisting>
|
||||
CREATE FUNCTION plsample_call_handler () RETURNS opaque
|
||||
AS '/usr/local/pgsql/lib/plsample.so'
|
||||
AS '$libdir/plsample'
|
||||
LANGUAGE C;
|
||||
CREATE LANGUAGE plsample
|
||||
HANDLER plsample_call_handler;
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.18 2001/10/22 23:48:11 tgl Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.19 2001/10/26 21:17:03 tgl Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -44,7 +44,8 @@ Postgres documentation
|
||||
<term><replaceable class="parameter">langname</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the name of the backend programming language to be defined.
|
||||
Specifies the name of the procedural programming language to be
|
||||
defined.
|
||||
<application>createlang</application> will prompt for
|
||||
<replaceable class="parameter">langname</replaceable>
|
||||
if it is not specified on the command line.
|
||||
@ -56,7 +57,7 @@ Postgres documentation
|
||||
<term>-d, --dbname <replaceable class="parameter">dbname</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies which database the language should be added.
|
||||
Specifies to which database the language should be added.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -85,7 +86,8 @@ Postgres documentation
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the directory in which the language interpreter is
|
||||
to be found. This is normally found automatically.
|
||||
to be found. Use of this option is deprecated; the directory
|
||||
is normally found automatically.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -1,13 +1,11 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_language.sgml,v 1.11 2001/09/03 12:57:49 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_language.sgml,v 1.12 2001/10/26 21:17:03 tgl Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
<refentry id="SQL-DROPLANGUAGE">
|
||||
<refmeta>
|
||||
<refentrytitle id="SQL-DROPLANGUAGE-TITLE">
|
||||
DROP LANGUAGE
|
||||
</refentrytitle>
|
||||
<refentrytitle id="SQL-DROPLANGUAGE-TITLE">DROP LANGUAGE</refentrytitle>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.39 2001/10/26 19:58:12 tgl Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.40 2001/10/26 21:17:03 tgl Exp $
|
||||
-->
|
||||
|
||||
<chapter id="xfunc">
|
||||
@ -1054,25 +1054,25 @@ concat_text(text *arg1, text *arg2)
|
||||
|
||||
<programlisting>
|
||||
CREATE FUNCTION add_one(int4) RETURNS int4
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/funcs' LANGUAGE 'c'
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/funcs' LANGUAGE C
|
||||
WITH (isStrict);
|
||||
|
||||
-- note overloading of SQL function name add_one()
|
||||
CREATE FUNCTION add_one(float8) RETURNS float8
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/funcs',
|
||||
'add_one_float8'
|
||||
LANGUAGE 'c' WITH (isStrict);
|
||||
LANGUAGE C WITH (isStrict);
|
||||
|
||||
CREATE FUNCTION makepoint(point, point) RETURNS point
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/funcs' LANGUAGE 'c'
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/funcs' LANGUAGE C
|
||||
WITH (isStrict);
|
||||
|
||||
CREATE FUNCTION copytext(text) RETURNS text
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/funcs' LANGUAGE 'c'
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/funcs' LANGUAGE C
|
||||
WITH (isStrict);
|
||||
|
||||
CREATE FUNCTION concat_text(text, text) RETURNS text
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/funcs' LANGUAGE 'c'
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/funcs' LANGUAGE C
|
||||
WITH (isStrict);
|
||||
</programlisting>
|
||||
</para>
|
||||
@ -1358,8 +1358,8 @@ c_overpaid(PG_FUNCTION_ARGS)
|
||||
<programlisting>
|
||||
CREATE FUNCTION c_overpaid(emp, int4)
|
||||
RETURNS bool
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/obj/funcs'
|
||||
LANGUAGE 'c';
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/funcs'
|
||||
LANGUAGE C;
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/xindex.sgml,v 1.19 2001/09/13 15:55:23 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/xindex.sgml,v 1.20 2001/10/26 21:17:03 tgl Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -313,7 +313,9 @@ SELECT oid, *
|
||||
<para>
|
||||
Suppose the code that implements these functions
|
||||
is stored in the file
|
||||
<filename>PGROOT/src/tutorial/complex.c</filename>.
|
||||
<replaceable>PGROOT</replaceable><filename>/tutorial/complex.c</filename>,
|
||||
which we have compiled into
|
||||
<replaceable>PGROOT</replaceable><filename>/tutorial/complex.so</filename>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -339,8 +341,8 @@ SELECT oid, *
|
||||
<programlisting>
|
||||
CREATE FUNCTION complex_abs_eq(complex, complex)
|
||||
RETURNS bool
|
||||
AS 'PGROOT/tutorial/obj/complex.so'
|
||||
LANGUAGE 'c';
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/complex'
|
||||
LANGUAGE C;
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
@ -489,8 +491,8 @@ CREATE OPERATOR = (
|
||||
<programlisting>
|
||||
CREATE FUNCTION complex_abs_cmp(complex, complex)
|
||||
RETURNS int4
|
||||
AS 'PGROOT/tutorial/obj/complex.so'
|
||||
LANGUAGE 'c';
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/complex'
|
||||
LANGUAGE C;
|
||||
|
||||
SELECT oid, proname FROM pg_proc
|
||||
WHERE proname = 'complex_abs_cmp';
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/xoper.sgml,v 1.14 2001/09/13 15:55:23 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/xoper.sgml,v 1.15 2001/10/26 21:17:03 tgl Exp $
|
||||
-->
|
||||
|
||||
<Chapter Id="xoper">
|
||||
@ -38,8 +38,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/xoper.sgml,v 1.14 2001/09/13 15:55:23 peter
|
||||
<ProgramListing>
|
||||
CREATE FUNCTION complex_add(complex, complex)
|
||||
RETURNS complex
|
||||
AS '$PWD/obj/complex.so'
|
||||
LANGUAGE 'c';
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/complex'
|
||||
LANGUAGE C;
|
||||
|
||||
CREATE OPERATOR + (
|
||||
leftarg = complex,
|
||||
|
@ -110,13 +110,13 @@ complex_out(Complex *complex)
|
||||
<programlisting>
|
||||
CREATE FUNCTION complex_in(opaque)
|
||||
RETURNS complex
|
||||
AS 'PGROOT/tutorial/obj/complex.so'
|
||||
LANGUAGE 'c';
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/complex'
|
||||
LANGUAGE C;
|
||||
|
||||
CREATE FUNCTION complex_out(opaque)
|
||||
RETURNS opaque
|
||||
AS 'PGROOT/tutorial/obj/complex.so'
|
||||
LANGUAGE 'c';
|
||||
AS '<replaceable>PGROOT</replaceable>/tutorial/complex'
|
||||
LANGUAGE C;
|
||||
|
||||
CREATE TYPE complex (
|
||||
internallength = 16,
|
||||
|
Loading…
Reference in New Issue
Block a user