From 5605fdd9b2f86d4460127b80f6391ba5976986a9 Mon Sep 17 00:00:00 2001 From: Gonzalo Riestra Date: Wed, 19 Jun 2019 15:27:28 +0200 Subject: [PATCH 1/3] fix event trigger --- scripts-available/CDB_GhostTables.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts-available/CDB_GhostTables.sql b/scripts-available/CDB_GhostTables.sql index ece9d31..58104d9 100644 --- a/scripts-available/CDB_GhostTables.sql +++ b/scripts-available/CDB_GhostTables.sql @@ -83,7 +83,7 @@ CREATE OR REPLACE FUNCTION @extschema@.CDB_SaveDDLTransaction() RETURNS event_trigger AS $$ BEGIN - INSERT INTO @extschema@.cdb_ddl_execution VALUES (txid_current(), tg_tag) ON CONFLICT (txid) DO NOTHING; + INSERT INTO @extschema@.cdb_ddl_execution VALUES (txid_current(), tg_tag) ON CONFLICT ON CONSTRAINT cdb_ddl_execution_pkey DO NOTHING; END; $$ LANGUAGE plpgsql VOLATILE PARALLEL UNSAFE SECURITY DEFINER; From 2d42e6197a739e9a3f406bd14b784b82b3844dc3 Mon Sep 17 00:00:00 2001 From: Gonzalo Riestra Date: Thu, 20 Jun 2019 11:20:03 +0200 Subject: [PATCH 2/3] use bigint to store values from txid_current() --- scripts-available/CDB_GhostTables.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts-available/CDB_GhostTables.sql b/scripts-available/CDB_GhostTables.sql index 58104d9..f65bada 100644 --- a/scripts-available/CDB_GhostTables.sql +++ b/scripts-available/CDB_GhostTables.sql @@ -96,7 +96,7 @@ AS $$ DROP TRIGGER IF EXISTS check_ddl_update ON @extschema@.cdb_ddl_execution; -- Table to store the transaction id from DDL events to avoid multiple executions - CREATE TABLE IF NOT EXISTS @extschema@.cdb_ddl_execution(txid integer PRIMARY KEY, tag text); + CREATE TABLE IF NOT EXISTS @extschema@.cdb_ddl_execution(txid bigint PRIMARY KEY, tag text); CREATE CONSTRAINT TRIGGER check_ddl_update AFTER INSERT ON @extschema@.cdb_ddl_execution From e6ecde4346f4bdf37e03b21cd56409ea2f01dd3e Mon Sep 17 00:00:00 2001 From: Gonzalo Riestra Date: Thu, 20 Jun 2019 11:20:48 +0200 Subject: [PATCH 3/3] add CREATE/ALTER/DROP FOREIGN TABLE to ddl commands --- scripts-available/CDB_GhostTables.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts-available/CDB_GhostTables.sql b/scripts-available/CDB_GhostTables.sql index f65bada..dcbb7f9 100644 --- a/scripts-available/CDB_GhostTables.sql +++ b/scripts-available/CDB_GhostTables.sql @@ -106,7 +106,7 @@ AS $$ CREATE EVENT TRIGGER link_ghost_tables ON ddl_command_end - WHEN TAG IN ('CREATE TABLE', 'SELECT INTO', 'DROP TABLE', 'ALTER TABLE', 'CREATE TRIGGER', 'DROP TRIGGER', 'CREATE VIEW', 'DROP VIEW', 'ALTER VIEW') + WHEN TAG IN ('CREATE TABLE', 'SELECT INTO', 'DROP TABLE', 'ALTER TABLE', 'CREATE TRIGGER', 'DROP TRIGGER', 'CREATE VIEW', 'DROP VIEW', 'ALTER VIEW', 'CREATE FOREIGN TABLE', 'ALTER FOREIGN TABLE', 'DROP FOREIGN TABLE') EXECUTE PROCEDURE @extschema@.CDB_SaveDDLTransaction(); END; $$ LANGUAGE plpgsql VOLATILE PARALLEL UNSAFE;