Re: Determining table change in an event trigger

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Jonathan Rogers <jrogers(at)emphasys-software(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Determining table change in an event trigger
Date: 2016-08-24 04:58:43
Message-ID: 20160824045843.GA191805@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Jonathan Rogers wrote:
> 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?

Yeah, that type can only be processed by C functions. You'd need to
write a C function to examine the structure and see whether it matches
what you need.

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Thomas Güttler 2016-08-24 08:41:54 ElasticSearch Beats
Previous Message Craig James 2016-08-24 02:43:24 Re: Foreign key against a partitioned table