Обсуждение: Bug with CREATE CONSRAINT TRIGGER and attisdropped
CREATE CONSTRAINT TRIGGER doesn't respect attisdropped. Unfortunately I really don't have the time to submit a patch at the moment - sorry :( ctest=# create table master (x int unique, y int4 unique); NOTICE: CREATE TABLE / UNIQUE will create implicit index 'master_x_key' for table 'master' NOTICE: CREATE TABLE / UNIQUE will create implicit index 'master_y_key' for table 'master' CREATE TABLE test=# create table slave (a int); CREATE TABLE test=# alter table master drop x; ALTER TABLE test=# create constraint trigger "$1" after insert or update on "slave" from master not deferrable initially immediate for each row execute procedure "RI_FKey_check_ins" ('$1', 'slave', 'master', 'UNSPECIFIED', 'a', 'x'); CREATE TRIGGER test=# insert into master values (1); INSERT 16982 1 test=# insert into slave values (2); ERROR: constraint $1: table master does not have an attribute x Chris
"Christopher Kings-Lynne" <chriskl@familyhealth.com.au> writes: > CREATE CONSTRAINT TRIGGER doesn't respect attisdropped. Unfortunately I > really don't have the time to submit a patch at the moment - sorry :( > test=# create constraint trigger "$1" after insert or update on "slave" from > master not deferrable initially immediate for each row execute procedure > "RI_FKey_check_ins" ('$1', 'slave', 'master', 'UNSPECIFIED', 'a', 'x'); I'm not sure this is a bug. For CREATE CONSTRAINT TRIGGER to complain at trigger creation time, you'd have to make it assume that it understood the contents of the parameters passed to the trigger. That seems like a bad idea; I'm willing to settle for run-time detection instead. regards, tom lane