Re: Determining table change in an event trigger - Mailing list pgsql-general

From Alvaro Herrera
Subject Re: Determining table change in an event trigger
Date
Msg-id 20160824045843.GA191805@alvherre.pgsql
Whole thread Raw
In response to Determining table change in an event trigger  (Jonathan Rogers <jrogers@emphasys-software.com>)
Responses Re: Determining table change in an event trigger  (Jonathan Rogers <jrogers@emphasys-software.com>)
List 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


pgsql-general by date:

Previous
From: Craig James
Date:
Subject: Re: Foreign key against a partitioned table
Next
From: Thomas Güttler
Date:
Subject: ElasticSearch Beats