CREATE CONVERSION
CREATE CONVERSION
Synopsis
CREATE [DEFAULT] CONVERSION conversion_name FOR source_encoding TO dest_encoding FROM funcname
Description
CREATE CONVERSION defines a new encoding conversion. Conversion names may be used in the CONVERT() function to specify a particular encoding conversion. Also, conversions that are marked DEFAULT can be used for automatic encoding conversion between frontend and backend. For this purpose, two conversions, from encoding A to B AND from encoding B to A, must be defined.
To be able to create a conversion, you must have the execute right on the function and the create right on the destination schema.
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.
- conversion_name
The name of the conversion. The conversion name may be schema-qualified. If it is not, the conversion is defined in the current schema. The conversion name must be unique within 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 the following signature:
conv_proc( INTEGER, -- source encoding id INTEGER, -- destination encoding id CSTRING, -- source string (null terminated C string) CSTRING, -- destination string (null terminated C string) INTEGER -- source string length ) returns VOID;
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 CONVERSION statement in SQL99.