pgsql 8.3 : force FK (and consequently ON DELETE CASCADE) to be rununder session_replication_role TO 'replica'

Поиск
Список
Период
Сортировка
От Achilleas Mantzios
Тема pgsql 8.3 : force FK (and consequently ON DELETE CASCADE) to be rununder session_replication_role TO 'replica'
Дата
Msg-id a0d82106-4ee8-f165-275d-53b3135a2fae@matrix.gatewaynet.com
обсуждение исходный текст
Ответы Re: pgsql 8.3 : force FK (and consequently ON DELETE CASCADE) to berun under session_replication_role TO 'replica'
Список pgsql-admin
Hello,
first off, don't be put off by the version (8.3), please!
we run some replication statements code under with session_replication_role TO 'replica' ,
however this disables FK constraints and consequently some important ON DELETE CASCADE that must be run.

I tested this and this works :
psql -qt -c 'SELECT '\''ALTER TABLE mariner ENABLE ALWAYS TRIGGER "'\''|| tgname||'\''";'\'' from pg_trigger where
tgconstrname='\''personal_email_sender_marinerid_fkey'\''and tgisconstraint and 
 
tgrelid='\''mariner'\''::regclass' | psql -f -

and then test with:
BEGIN ;
set session_replication_role TO 'replica';
DELETE FROM mariner where id = 23700;
SELECT * from personal_email_sender where marinerid = 23700;
  email | marinerid
-------+-----------
(0 rows)

^^^ and verify that the ON DELETE CASCADE is run.

So, besides the obvious comment, that one should not mess with system triggers, do you see any potential gotcha with
thisparticular one?
 

-- 
Achilleas Mantzios
IT DEV Lead
IT DEPT
Dynacom Tankers Mgmt




В списке pgsql-admin по дате отправления:

Предыдущее
От: "William Sescu (Suva)"
Дата:
Сообщение: AW: REINDEX VERBOSE DATABASE not working
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: pgsql 8.3 : force FK (and consequently ON DELETE CASCADE) to berun under session_replication_role TO 'replica'