TRANSFORMは新しい変換を定義します。TRANSFORMは新しい変換を作成するか、あるいは既存の変換を置換します。変換はデータ型を手続き言語にどのように適合させるかを定義します。hstore型を使ってPL/Pythonの関数を書くとき、PL/Pythonはhstoreの値をPythonの環境でどのように表現するか、事前の知識がありません。言語の実装は通常、デフォルトでテキスト表現を使いますが、これは例えば連想配列やリストの方がより適切な場合には不便です。変換では次の2つの関数を指定します。SQL」関数では、型をSQL環境から言語へと変換します。この関数は、その言語で記述された関数の引数で呼び出されます。SQL」関数では、型を言語からSQL環境へと変換します。この関数は、その言語で記述された関数の戻り値で呼び出されます。これらの関数を両方とも提供する必要はありません。一方が指定されなければ、必要な時はその言語独自のデフォルトの動作が使われます。(ある方向への変換がまったく起きないようにするためには、必ずエラーを発生させる変換関数を作成することもできます。)変換を作成するには、その型を所有し、そのUSAGE権限があること、言語のUSAGE権限があること、from-SQL関数あるいはto-SQL関数を指定する場合は、それらを所有し、そのEXECUTE権限があることが必要です。パラメータtype_name変換の対象となるデータ型の名前です。lang_name変換の対象となる言語の名前です。...])]型をSQL環境から言語に変換する関数の名前です。internal型の引数を1つとり、internal型の値を戻します。実引数は変換される型になり、関数はそうであるとしてコーディングされます。(しかし、少なくとも1つのinternal型の引数がなければ、internalを戻すSQLレベルの関数を宣言することができません。実際の戻り値は、言語の実装に依存したものになります。引数リストが指定されない場合、関数名はスキーマ内で一意でなければなりません。...])]型を言語からSQL環境に変換する関数の名前です。internal型の引数を1つとり、変換の型であるデータ型を戻します。実引数の値は言語の実装に依存したものになります。引数リストが指定されない場合、関数名はスキーマ内で一意でなければなりません。TRANSFORMを使います。例hstore型で言語plpythonuの変換を作成するため、まず以下のように型と言語を設定します。...;そして最後に、それらを互いに接続する変換を以下のように作成します。plpython_to_hstore(internal));現実には、これらのコマンドは拡張の中にまとめられているでしょう。contribの下には変換を提供するいくつかの拡張が含まれており、それらは現実世界での例となります。TRANSFORMはPostgreSQLの拡張です。TRANSFORMコマンドがありますが、それはデータ型をクライアントの言語に適合させるためのものです。その使用法はPostgreSQLではサポートされていません。