Re: Firing an event trigger for ADD COLUMN?

From: Tanveer Munavar <mohamedtanveer007(at)gmail(dot)com>
To: Michel Pelletier <pelletier(dot)michel(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Firing an event trigger for ADD COLUMN?
Date: 2020-05-12 00:07:15
Message-ID: CAE2XJrO+2aUjyeJwswbQPqhGDWdipYpOSn9kMuDnTi=WwM3w8w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

> Is this asymmetry a bug? I realize these event trigger functions are
typically written in C, but I'd like to keep this idea contained to a
plpgsql function and cover as many reversible changes as I can.

This is the expected behavior since pg_event_trigger_ddl_commands function
does not return object_name unlike the pg_event_trigger_dropped_objects.

https://www.postgresql.org/docs/9.6/functions-event-triggers.html

Logging the statement through log_statement=ddl or higher is the only way I
see to capture the details of alter statement.

On Tue, May 12, 2020 at 4:57 AM Michel Pelletier <pelletier(dot)michel(at)gmail(dot)com>
wrote:

> I'm writing a script that "reverses" ddl operations in an "up" script by
> capturing event triggers and generating a "down" script for reverting.
> I've got it working great for tables, indexes, etc, but it seems ADD COLUMN
> doesn't sent an event, here's the code i'm using, pasted straight from the
> documentation:
>
> https://gist.github.com/michelp/c6daa1c123c4743be4f8b08fad5d5396
>
> And here's the results I get, I get an event for dropping a column, but
> not adding one:
>
> postgres=# create table foo (bar int);
> NOTICE: CREATE TABLE created object: table public public.foo
> CREATE TABLE
> postgres=# alter table foo add column baz int;
> NOTICE: ALTER TABLE created object: table public public.foo
> ALTER TABLE
> postgres=# alter table foo drop column bar;
> NOTICE: ALTER TABLE dropped object: table column public.<NULL>
> public.foo.bar
> NOTICE: ALTER TABLE created object: table public public.foo
> ALTER TABLE
> postgres=#
>
> Is this asymmetry a bug? I realize these event trigger functions are
> typically written in C, but I'd like to keep this idea contained to a
> plpgsql function and cover as many reversible changes as I can.
>
> Thank you,
>
> -Michel
>

--
Thanks,
Mohamed Tanveer
988-061-3565
www.linkedin.com/in/tanveermunavar

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Alvaro Herrera 2020-05-12 00:23:05 Re: Firing an event trigger for ADD COLUMN?
Previous Message Michel Pelletier 2020-05-11 23:26:53 Firing an event trigger for ADD COLUMN?