Determining table change in an event trigger

From: Jonathan Rogers <jrogers(at)emphasys-software(dot)com>
To: <pgsql-general(at)postgresql(dot)org>
Subject: Determining table change in an event trigger
Date: 2016-08-24 01:38:16
Message-ID: 4fca5ed9-c196-699f-153e-8966b8b22f32@emphasys-software.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I am trying to use an event trigger to do something when a column
changes. I can declare an event trigger "ON sql_drop WHEN TAG IN ('ALTER
TABLE')" to get dropped columns. However, I can't figure out any good
way to determine when a column has been added or altered.

I can declare an event trigger "ON ddl_command_end WHEN TAG IN ('ALTER
TABLE')" but that gets unwanted events such as disabling triggers on a
table. Function pg_event_trigger_ddl_commands() returns rows with column
"command" of type "pg_ddl_command" which contains "a complete
representation of the command, in internal format." According to the
docs, this cannot be output directly, but it can be passed to other
functions to obtain different pieces of information about the command.
However, I cannot find any other functions which operate on the type
pg_ddl_command. Am I missing something? Is the documentation lacking?

--
Jonathan Rogers
Socialserve.com by Emphasys Software
jrogers(at)emphasys-software(dot)com

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Craig James 2016-08-24 02:43:24 Re: Foreign key against a partitioned table
Previous Message Adrian Klaver 2016-08-23 22:29:38 Re: Foreign key against a partitioned table