PostgreSQL 7.3.4 Documentation
Prev |  | Next

# CREATE CONVERSION

## Name

CREATE CONVERSION -- define a user-defined 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.

## See Also

CREATE FUNCTION, DROP CONVERSION, PostgreSQL Programmer's Guide

Prev | Home | Next
CREATE CONSTRAINT TRIGGER | Up | CREATE DATABASE