| 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: | Whole Thread | Raw Message | 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 |