diff --git a/README.md b/README.md index 71777f6..c65e1b9 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ cartodb-postgresql PostgreSQL extension for CartoDB +See https://github.com/CartoDB/cartodb/wiki/CartoDB-PostgreSQL-extension + Depdenencies ------------ diff --git a/cartodb_hooks.sql b/cartodb_hooks.sql index 5b46cc7..4915bb6 100644 --- a/cartodb_hooks.sql +++ b/cartodb_hooks.sql @@ -17,11 +17,10 @@ BEGIN -- We're only interested in real relations IF (event_info.new).relkind != 'r' THEN RETURN; END IF; - RAISE NOTICE 'Relation % of kind % created in namespace oid %', + RAISE DEBUG 'Relation % of kind % created in namespace oid %', event_info.relation, (event_info.new).relkind, (event_info.new).relnamespace; -- We don't want to react to alters triggered by superuser, - -- or we'd enter an infinite loop here IF current_setting('is_superuser') = 'on' THEN RAISE DEBUG 'no ddl trigger for superuser'; RETURN; @@ -45,14 +44,13 @@ BEGIN SELECT oid,* FROM pg_class WHERE oid = event_info.relation INTO rel; - RAISE NOTICE 'Column % altered by % (superuser? %) in relation % of kind %', + RAISE DEBUG 'Column % altered by % (superuser? %) in relation % of kind %', (event_info.old).attname, current_user, current_setting('is_superuser'), event_info.relation::regclass, rel.relkind; -- We're only interested in real relations IF rel.relkind != 'r' THEN RETURN; END IF; -- We don't want to react to alters triggered by superuser, - -- or we'd enter an infinite loop here IF current_setting('is_superuser') = 'on' THEN RAISE DEBUG 'no ddl trigger for superuser'; RETURN; @@ -64,7 +62,7 @@ BEGIN PERFORM cdb_enable_ddl_hooks(); - -- TODO: invalidate varnish ? + -- TODO: invalidate varnish END; $$; -- } @@ -81,14 +79,13 @@ BEGIN SELECT oid,* FROM pg_class WHERE oid = event_info.relation INTO rel; - RAISE NOTICE 'Column % drop by % (superuser? %) in relation % of kind %', + RAISE DEBUG 'Column % drop by % (superuser? %) in relation % of kind %', (event_info.old).attname, current_user, current_setting('is_superuser'), event_info.relation::regclass, rel.relkind; -- We're only interested in real relations IF rel.relkind != 'r' THEN RETURN; END IF; -- We don't want to react to drops triggered by superuser, - -- or we'd enter an infinite loop here IF current_setting('is_superuser') = 'on' THEN RAISE DEBUG 'no ddl trigger for superuser'; RETURN; @@ -100,7 +97,7 @@ BEGIN PERFORM cdb_enable_ddl_hooks(); - -- TODO: invalidate varnish ? + -- TODO: invalidate varnish END; $$; -- } @@ -117,24 +114,19 @@ BEGIN SELECT oid,* FROM pg_class WHERE oid = event_info.relation INTO rel; - RAISE NOTICE 'Column % add by % (superuser? %) in relation % of kind %', - (event_info.old).attname, current_user, current_setting('is_superuser'), event_info.relation::regclass, rel.relkind; + RAISE DEBUG 'Column % added by % (superuser? %) in relation % of kind %', + (event_info.new).attname, current_user, current_setting('is_superuser'), event_info.relation::regclass, rel.relkind; -- We're only interested in real relations IF rel.relkind != 'r' THEN RETURN; END IF; -- We don't want to react to drops triggered by superuser, - -- or we'd enter an infinite loop here IF current_setting('is_superuser') = 'on' THEN RAISE DEBUG 'no ddl trigger for superuser'; RETURN; END IF; - --PERFORM cdb_disable_ddl_hooks(); - --PERFORM public.CDB_CartodbfyTable(event_info.relation); - --PERFORM cdb_enable_ddl_hooks(); - - -- TODO: invalidate varnish ? + -- TODO: invalidate varnish END; $$; -- } @@ -151,7 +143,7 @@ CREATE OR REPLACE FUNCTION cdb_enable_ddl_hooks() returns void AS $$ CREATE EVENT TRIGGER cdb_on_relation_create ON "relation_create" EXECUTE PROCEDURE cdb_handle_create_table(); CREATE EVENT TRIGGER cdb_on_alter_column ON "column_alter" EXECUTE PROCEDURE cdb_handle_alter_column(); CREATE EVENT TRIGGER cdb_on_drop_column ON "column_drop" EXECUTE PROCEDURE cdb_handle_drop_column(); - CREATE EVENT TRIGGER cdb_on_add_column ON "column_drop" EXECUTE PROCEDURE cdb_handle_add_column(); + CREATE EVENT TRIGGER cdb_on_add_column ON "column_add" EXECUTE PROCEDURE cdb_handle_add_column(); $$ LANGUAGE sql; SELECT cdb_enable_ddl_hooks(); diff --git a/hook_on_table_create.sql b/hook_on_table_create.sql index 9f87452..e9b9a3a 100644 --- a/hook_on_table_create.sql +++ b/hook_on_table_create.sql @@ -16,4 +16,6 @@ alter table c.t3 rename column the_geom_webmercator to webmerc2; select * from c.t3; alter table c.t3 drop column the_geom_webmercator; select * from c.t3; +alter table c.t3 add column id2 int; +select * from c.t3; drop schema c cascade;