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