Re: Determining table change in an event trigger

From: Jonathan Rogers <jrogers(at)emphasys-software(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: <pgsql-general(at)postgresql(dot)org>
Subject: Re: Determining table change in an event trigger
Date: 2016-08-25 00:27:46
Message-ID: cea4afba-a28e-ee4f-9001-3828935ac6f8@emphasys-software.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 08/24/2016 12:58 AM, Alvaro Herrera wrote:
> 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.
>

OK, thanks for the explanation. It seems like the docs should make it
clear that the "other functions" are not included.

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

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Alexander Farber 2016-08-25 06:38:44 Re: Forward declaration of table
Previous Message Adrian Klaver 2016-08-24 23:31:20 Re: Forward declaration of table