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
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 |