ALTER EXTENSION extension_name UPDATE [ TO new_version ]
ALTER EXTENSION extension_name SET SCHEMA new_schema
ALTER EXTENSION extension_name ADD member_object
ALTER EXTENSION extension_name DROP member_object
ここでmember_objectは以下の通りです。
AGGREGATE agg_name (agg_type [, ...] ) |
CAST (source_type AS target_type) |
COLLATION object_name |
CONVERSION object_name |
DOMAIN object_name |
FOREIGN DATA WRAPPER object_name |
FOREIGN TABLE object_name |
FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
OPERATOR operator_name (left_type, right_type) |
OPERATOR CLASS object_name USING index_method |
OPERATOR FAMILY object_name USING index_method |
[ PROCEDURAL ] LANGUAGE object_name |
SCHEMA object_name |
SEQUENCE object_name |
SERVER object_name |
TABLE object_name |
TEXT SEARCH CONFIGURATION object_name |
TEXT SEARCH DICTIONARY object_name |
TEXT SEARCH PARSER object_name |
TEXT SEARCH TEMPLATE object_name |
TYPE object_name |
VIEW object_name
ALTER EXTENSIONはインストールされた拡張の定義を変更します。 複数の副構文があります。
この構文は拡張を新しいバージョンに更新します。 拡張は、現在インストールされているバージョンから要求するバージョンに変更することができる、適切な更新スクリプト(またはスクリプト群)を提供しなければなりません。
この構文は拡張のオブジェクトを別のスキーマに移動します。 このコマンドを成功させるためには、拡張は再配置可能でなければなりません。
この構文は既存のオブジェクトを拡張に追加します。 これは主に拡張の更新スクリプトで有用です。 オブジェクトはその後拡張のメンバとして扱われます。 特に、オブジェクトの削除は拡張の削除によってのみ可能です。
この構文は拡張からメンバオブジェクトを削除します。 これは主に拡張の更新スクリプトで有用です。 オブジェクトは削除されません。拡張との関連がなくなるだけです。
これらの操作の詳細については項35.15を参照してください。
ALTER EXTENSIONを使用するためには拡張の所有者でなければなりません。 同様にADD/DROP構文では追加されるオブジェクトまたは削除されるオブジェクトの所有者でなければなりません。
インストールされた拡張の名前です。
更新したい新しい拡張のバージョンです。 これは識別子または文字列リテラルのいずれかで記述することができます。 指定がない場合、ALTER EXTENSION UPDATEは拡張の制御ファイル内でデフォルトバージョンとして示されるものへの更新を試行します。
拡張の新しいスキーマです。
拡張に追加する、または、拡張から削除するオブジェクトの名前です。 テーブル、集約、ドメイン、外部テーブル、関数、演算子、演算子クラス、演算子族、シーケンス、全文検索オブジェクト、型、ビューの名前はスキーマ修飾可能です。
集約関数が操作する入力データ型です。 引数を持たない集約関数を参照するためには、入力データ型のリストの部分で*と記述してください。
キャストの変換元データ型の名前です。
キャストの変換先データ型の名前です。
関数引数のモードでIN、OUT、INOUT、VARIADICのいずれかです。 省略時のデフォルトはINです。 関数を識別するためには入力引数だけが必要ですので、実際のところALTER EXTENSIONはOUT引数を考慮しないことに注意してください。 このためIN、INOUTおよびVARIADIC引数を列挙するだけで十分です。
関数引数の名前です。 関数を識別するためには入力引数だけが必要ですので、実際のところALTER EXTENSIONは引数名を考慮しないことに注意してください。
もしあれば関数引数のデータ型(スキーマ修飾可)です。
演算子の引数のデータ型(スキーマ修飾可)です 前置または後置演算子における存在しない引数にはNONEと記述してください。
これは無意味な単語です。