<productname>PostgreSQL</productname> provides these helper functions to retrieve information from event triggers. PostgreSQLはイベントトリガについての情報を取得するために以下のヘルパ関数を提供しています。
For more information about event triggers, see <xref linkend="event-triggers"/>. イベントトリガについての詳細は第38章を参照して下さい。
pg_event_trigger_ddl_commands
() →setof record
<function>pg_event_trigger_ddl_commands</function> returns a list of
<acronym>DDL</acronym> commands executed by each user action,
when invoked in a function attached to a
<literal>ddl_command_end</literal> event trigger. If called in any other
context, an error is raised.
<function>pg_event_trigger_ddl_commands</function> returns one row for each
base command executed; some commands that are a single SQL sentence
may return more than one row. This function returns the following
columns:
pg_event_trigger_ddl_commands
がddl_command_end
イベントトリガに付与された関数から起動されると、各ユーザの操作によって実行されたDDLコマンドの一覧を返します。
それ以外の環境から呼び出された場合はエラーが発生します。
pg_event_trigger_ddl_commands
は、実行された基となるコマンドのそれぞれについて1行を返します。
1つのSQL文として実行されるいくつかのコマンドに対して、複数の行が返されることもあります。
この関数は以下の列を返します。
名前 | 型 | 説明 |
---|---|---|
classid | oid | オブジェクトが属するカタログのOID |
objid | oid | カタログ内のオブジェクトのOID |
objsubid | integer | オブジェクトのサブID(例えば、列の列番号) |
command_tag | text | コマンドのタグ |
object_type | text | オブジェクトの型 |
schema_name | text |
Name of the schema the object belongs in, if any; otherwise <literal>NULL</literal>.
No quoting is applied.
オブジェクトが属するスキーマの名前(あれば)。
なければNULL 。
引用符づけされない。
|
object_identity | text | Text rendering of the object identity, schema-qualified. Each identifier included in the identity is quoted if necessary. オブジェクトの識別をテキスト表現したもので、スキーマ修飾される。 識別内に存在する各識別子は、必要なら引用符で括られる。 |
in_extension | boolean | コマンドが拡張のスクリプトの一部なら真 |
command | pg_ddl_command | A complete representation of the command, in internal format. This cannot be output directly, but it can be passed to other functions to obtain different pieces of information about the command. コマンドを内部形式で完全に表現したもの。 これを直接出力することはできないが、コマンドについて他の情報を得るために、他の関数に渡すことができる。 |
pg_event_trigger_dropped_objects
() →setof record
<function>pg_event_trigger_dropped_objects</function> returns a list of all objects
dropped by the command in whose <literal>sql_drop</literal> event it is called.
If called in any other context, an error is raised.
This function returns the following columns:
関数pg_event_trigger_dropped_objects
は、それが呼ばれたsql_drop
イベントのコマンドにより削除された全てのオブジェクトのリストを返します。
それ以外の状況で呼ばれた場合、エラーが生じます。
この関数は以下の列を返します。
名前 | 型 | 説明 |
---|---|---|
classid | oid | オブジェクトが所属するカタログのOID |
objid | oid | カタログ内に所有するオブジェクトのOID |
objsubid | integer | オブジェクトのサブID(例えば、列の列番号) |
original | boolean | これが削除のルートオブジェクトの一つなら真 |
normal | boolean | True if there was a normal dependency relationship in the dependency graph leading to this object このオブジェクトへと至る依存関係グラフで、通常の依存があるなら真 |
is_temporary | boolean | True if this was a temporary object オブジェクトが一時オブジェクトであったなら真 |
object_type | text | オブジェクトの型 |
schema_name | text |
Name of the schema the object belonged in, if any; otherwise <literal>NULL</literal>.
No quoting is applied.
オブジェクトが所属しているスキーマの名前(あれば)。
なければNULL 。
引用符づけされない。
|
object_name | text |
Name of the object, if the combination of schema and name can be
used as a unique identifier for the object; otherwise <literal>NULL</literal>.
No quoting is applied, and name is never schema-qualified.
スキーマと名前の組み合わせがオブジェクトに対する一意の識別子として使用可能な場合はオブジェクトの名前。そうでないときはNULL 。
引用符は適用されず、名前は決してスキーマで修飾されない。
|
object_identity | text | Text rendering of the object identity, schema-qualified. Each identifier included in the identity is quoted if necessary. オブジェクト識別のテキスト表現で、スキーマ修飾される。 識別内に存在する各識別子は必要であれば引用符で括られる。 |
address_names | text[] |
An array that, together with <literal>object_type</literal> and
<literal>address_args</literal>, can be used by
the <function>pg_get_object_address</function> function to
recreate the object address in a remote server containing an
identically named object of the same kind.
object_type およびaddress_args と一緒にpg_get_object_address() で使うことで、同じ種類で全く同じ名前のオブジェクトを含むリモートサーバ内のオブジェクトアドレスを再作成できる配列。
|
address_args | text[] |
Complement for <literal>address_names</literal>
address_names の補足。
|
The <function>pg_event_trigger_dropped_objects</function> function can be used
in an event trigger like this:
関数pg_event_trigger_dropped_objects
は以下のようにイベントトリガとして使用可能です。
CREATE FUNCTION test_event_trigger_for_drops() RETURNS event_trigger LANGUAGE plpgsql AS $$ DECLARE obj record; BEGIN FOR obj IN SELECT * FROM pg_event_trigger_dropped_objects() LOOP RAISE NOTICE '% dropped object: % %.% %', tg_tag, obj.object_type, obj.schema_name, obj.object_name, obj.object_identity; END LOOP; END; $$; CREATE EVENT TRIGGER test_event_trigger_for_drops ON sql_drop EXECUTE FUNCTION test_event_trigger_for_drops();
The functions shown in
<xref linkend="functions-event-trigger-table-rewrite"/>
provide information about a table for which a
<literal>table_rewrite</literal> event has just been called.
If called in any other context, an error is raised.
表 9.108に示す関数は、table_rewrite
イベントが呼び出されたばかりのテーブルについての情報を提供します。
それ以外の状況で呼び出された場合はエラーが発生します。
表9.108 テーブル書き換え情報関数
These functions can be used in an event trigger like this: これらの関数はイベントトリガ中で次のように使用できます。
CREATE FUNCTION test_event_trigger_table_rewrite_oid() RETURNS event_trigger LANGUAGE plpgsql AS $$ BEGIN RAISE NOTICE 'rewriting table % for reason %', pg_event_trigger_table_rewrite_oid()::regclass, pg_event_trigger_table_rewrite_reason(); END; $$; CREATE EVENT TRIGGER test_table_rewrite_oid ON table_rewrite EXECUTE FUNCTION test_event_trigger_table_rewrite_oid();