diff --git a/doc/src/sgml/ref/allfiles.sgml b/doc/src/sgml/ref/allfiles.sgml
index 55b4fc5c9f..a37d58ab7d 100644
--- a/doc/src/sgml/ref/allfiles.sgml
+++ b/doc/src/sgml/ref/allfiles.sgml
@@ -1,5 +1,5 @@
@@ -53,6 +53,7 @@ Complete list of usable sgml source files in this directory.
+
@@ -73,6 +74,7 @@ Complete list of usable sgml source files in this directory.
+
diff --git a/doc/src/sgml/ref/create_conversion.sgml b/doc/src/sgml/ref/create_conversion.sgml
new file mode 100644
index 0000000000..1edc5d2f93
--- /dev/null
+++ b/doc/src/sgml/ref/create_conversion.sgml
@@ -0,0 +1,189 @@
+
+
+
+
+ CREATE CONVERSION
+ SQL - Language Statements
+
+
+
+ CREATE CONVERSION
+ define a user-defined conversion
+
+
+
+
+CREATE [DEFAULT] CONVERSION conversion_name
+ FOR source_encoding
+ TO dest_encoding FROM funcname
+
+
+
+
+ Description
+
+
+ CREATE CONVERSION defines a new encoding
+ conversion. There are two kinds of conversions. A default
+ conversion is used for an automatic encoding conversion between
+ frontend and backend. There should be only one default conversion
+ for source/destination encodings pair in a schema. None default
+ conversion never be used for the automatic conversion. Instead it
+ can be used for CONVERT() function.
+
+
+
+ To be able to create a conversion, you must have the execute right
+ on the function and the usage right on the schema the function
+ belongs to.
+
+
+
+ Parameters
+
+
+ DEFAULT
+
+
+
+ The DEFAULT> clause indicates that this conversion
+ is the default for this particular source to destination
+ encoding. There should be only one default encoding in a schema
+ for the encoding pair. A default encoding can be used for not
+ only CONVERT() function, but also for the automatic encoding
+ conversion between frontend and backend. For this purpose, two
+ conversions, from encoding A to B AND encoding B to A, must be
+ defined.
+
+
+
+
+
+ conversion_name
+
+
+
+ The name of the conversion. The conversion name may be
+ schema-qualified. If it is not, a conversion is defined in the
+ current schema. The conversion name must be unique with in a
+ schema.
+
+
+
+
+
+ source_encoding
+
+
+
+ The source encoding name.
+
+
+
+
+
+ source_encoding
+
+
+
+ The destination encoding name.
+
+
+
+
+
+ funcname
+
+
+
+ The function used to perform the conversion. The function name may
+ be schema-qualified. If it is not, the function will be looked
+ up in the path.
+
+
+
+ The function must have following signature:
+
+
+ conv_proc(
+ INTEGER, -- source encoding id
+ INTEGER, -- destination encoding id
+ OPAQUE, -- source string (null terminated C string)
+ OPAQUE, -- destination string (null terminated C string)
+ INTEGER -- source string length
+ ) returns INTEGER; -- dummy. returns nothing, actually.
+
+
+
+
+
+
+
+
+
+ Notes
+
+
+ Use DROP CONVERSION to remove user-defined conversions.
+
+
+
+ The privileges required to create a conversion may be changed in a future
+ release.
+
+
+
+
+
+
+ Examples
+
+
+ To create a conversion from encoding UNICODE to LATIN1 using myfunc:
+
+CREATE CONVERSION myconv FOR 'UNICODE' TO 'LATIN1' FROM myfunc;
+
+
+
+
+
+
+ Compatibility
+
+
+ CREATE CONVERSION
+ is a PostgreSQL extension.
+ There is no CREATE OPERATOR
+ statement in SQL99.
+
+
+
+
+
+ See Also
+
+
+ ,
+ ,
+ PostgreSQL Programmer's Guide
+
+
+
+
+
+
diff --git a/doc/src/sgml/ref/drop_conversion.sgml b/doc/src/sgml/ref/drop_conversion.sgml
new file mode 100644
index 0000000000..00d2804b51
--- /dev/null
+++ b/doc/src/sgml/ref/drop_conversion.sgml
@@ -0,0 +1,124 @@
+
+
+
+
+ DROP CONVERSION
+ SQL - Language Statements
+
+
+
+ DROP CONVERSION
+ remove a user-defined conversion
+
+
+
+
+DROP CONVERSION conversion_name
+ [ CASCADE | RESTRICT ]
+
+
+
+
+ Description
+
+
+ DROP CONVERSION removes a previously defined conversion.
+
+
+
+ To be able to drop a conversion, you must own the conversion.
+
+
+
+ Parameters
+
+
+ conversion_name
+
+
+
+ The name of the conversion. The conversion name may be
+ schema-qualified.
+
+
+
+
+
+ CASCADE
+ RESTRICT
+
+
+
+ These key words do not have any effect, since there are no
+ dependencies on conversions.
+
+
+
+
+
+
+
+
+ Notes
+
+
+ Use CREATE CONVERSION to create user-defined conversions.
+
+
+
+ The privileges required to drop a conversion may be changed in a future
+ release.
+
+
+
+
+
+ Examples
+
+
+ To drop the conversion named myname:
+
+DROP CONVERSION myname;
+
+
+
+
+
+
+ Compatibility
+
+
+ DROP CONVERSION
+ is a PostgreSQL extension.
+ There is no DROP OPERATOR
+ statement in SQL99.
+
+
+
+
+
+ See Also
+
+
+
+
+
+
+
+
+
diff --git a/doc/src/sgml/reference.sgml b/doc/src/sgml/reference.sgml
index 39fec262dd..e2491f5408 100644
--- a/doc/src/sgml/reference.sgml
+++ b/doc/src/sgml/reference.sgml
@@ -1,5 +1,5 @@
@@ -62,6 +62,7 @@ PostgreSQL Reference Manual
&createAggregate;
&createCast;
&createConstraint;
+ &createConversion;
&createDatabase;
&createDomain;
&createFunction;
@@ -82,6 +83,7 @@ PostgreSQL Reference Manual
&delete;
&dropAggregate;
&dropCast;
+ &dropConversion;
&dropDatabase;
&dropDomain;
&dropFunction;