diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2003-10-02 06:32:46 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2003-10-02 06:32:46 +0000 |
commit | 5b806ecf555b2921a966444f7d328e07852a6f37 (patch) | |
tree | 7d17e6b532d6a53a4bd468c363f79b0aef34e2f0 /src | |
parent | 08c33c426bfebb32359a432f1c002e0a8e701eaf (diff) | |
download | postgresql-5b806ecf555b2921a966444f7d328e07852a6f37.tar.gz postgresql-5b806ecf555b2921a966444f7d328e07852a6f37.zip |
Remove NOTICE about foreign key creating implicit triggers, because it no
longer conveys useful information.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/parser/analyze.c | 6 | ||||
-rw-r--r-- | src/test/regress/expected/alter_table.out | 17 | ||||
-rw-r--r-- | src/test/regress/expected/cluster.out | 1 | ||||
-rw-r--r-- | src/test/regress/expected/foreign_key.out | 43 | ||||
-rw-r--r-- | src/test/regress/expected/truncate.out | 1 |
5 files changed, 1 insertions, 67 deletions
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 4d1cd28f123..d6fbc6b3d76 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.289 2003/09/26 15:27:32 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.290 2003/10/02 06:32:45 petere Exp $ * *------------------------------------------------------------------------- */ @@ -1565,10 +1565,6 @@ transformFKConstraints(ParseState *pstate, CreateStmtContext *cxt, if (cxt->fkconstraints == NIL) return; - ereport(NOTICE, - (errmsg("%s will create implicit triggers for foreign-key checks", - cxt->stmtType))); - /* * For ALTER TABLE ADD CONSTRAINT, nothing to do. For CREATE TABLE or * ALTER TABLE ADD COLUMN, gin up an ALTER TABLE ADD CONSTRAINT diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out index 0fb90a5e475..61a3965fe59 100644 --- a/src/test/regress/expected/alter_table.out +++ b/src/test/regress/expected/alter_table.out @@ -307,26 +307,21 @@ INSERT INTO tmp3 values (1,20); INSERT INTO tmp3 values (5,50); -- Try (and fail) to add constraint due to invalid source columns ALTER TABLE tmp3 add constraint tmpconstr foreign key(c) references tmp2 match full; -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: column "c" referenced in foreign key constraint does not exist -- Try (and fail) to add constraint due to invalide destination columns explicitly given ALTER TABLE tmp3 add constraint tmpconstr foreign key(a) references tmp2(b) match full; -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: column "b" referenced in foreign key constraint does not exist -- Try (and fail) to add constraint due to invalid data ALTER TABLE tmp3 add constraint tmpconstr foreign key (a) references tmp2 match full; -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: insert or update on table "tmp3" violates foreign key constraint "tmpconstr" DETAIL: Key (a)=(5) is not present in table "tmp2". -- Delete failing row DELETE FROM tmp3 where a=5; -- Try (and succeed) ALTER TABLE tmp3 add constraint tmpconstr foreign key (a) references tmp2 match full; -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks -- Try (and fail) to create constraint from tmp5(a) to tmp4(a) - unique constraint on -- tmp4 is a,b ALTER TABLE tmp5 add constraint tmpconstr foreign key(a) references tmp4(a) match full; -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: there is no unique constraint matching given keys for referenced table "tmp4" DROP TABLE tmp5; DROP TABLE tmp4; @@ -340,13 +335,11 @@ NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" fo CREATE TEMP TABLE FKTABLE (ftest1 inet); -- This next should fail, because inet=int does not exist ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable; -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- This should also fail for the same reason, but here we -- give the column name ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable(ptest1); -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- This should succeed, even though they are different types @@ -354,10 +347,8 @@ HINT: No operator matches the given name and argument type(s). You may need to DROP TABLE FKTABLE; CREATE TEMP TABLE FKTABLE (ftest1 varchar); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable; -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks -- As should this ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable(ptest1); -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks DROP TABLE pktable cascade; NOTICE: drop cascades to constraint $2 on table fktable NOTICE: drop cascades to constraint $1 on table fktable @@ -368,7 +359,6 @@ NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" fo -- This should fail, because we just chose really odd types CREATE TEMP TABLE FKTABLE (ftest1 cidr, ftest2 timestamp); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable; -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: cidr = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. DROP TABLE FKTABLE; @@ -376,7 +366,6 @@ DROP TABLE FKTABLE; CREATE TEMP TABLE FKTABLE (ftest1 cidr, ftest2 timestamp); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable(ptest1, ptest2); -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: cidr = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. DROP TABLE FKTABLE; @@ -384,13 +373,11 @@ DROP TABLE FKTABLE; CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 inet); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable(ptest2, ptest1); -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: integer = inet HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- As does this... ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest2, ftest1) references pktable(ptest1, ptest2); -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- temp tables should go away by themselves, need not drop them. @@ -907,16 +894,12 @@ ERROR: column "........pg.dropped.1........" does not exist create table atacc2 (id int4 unique); NOTICE: CREATE TABLE / UNIQUE will create implicit index "atacc2_id_key" for table "atacc2" alter table atacc1 add foreign key (a) references atacc2(id); -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: column "a" referenced in foreign key constraint does not exist alter table atacc1 add foreign key ("........pg.dropped.1........") references atacc2(id); -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: column "........pg.dropped.1........" referenced in foreign key constraint does not exist alter table atacc2 add foreign key (id) references atacc1(a); -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: column "a" referenced in foreign key constraint does not exist alter table atacc2 add foreign key (id) references atacc1("........pg.dropped.1........"); -NOTICE: ALTER TABLE will create implicit triggers for foreign-key checks ERROR: column "........pg.dropped.1........" referenced in foreign key constraint does not exist drop table atacc2; create index "testing_idx" on atacc1(a); diff --git a/src/test/regress/expected/cluster.out b/src/test/regress/expected/cluster.out index 1c44fa59c21..b221c6d043b 100644 --- a/src/test/regress/expected/cluster.out +++ b/src/test/regress/expected/cluster.out @@ -12,7 +12,6 @@ CREATE TABLE clstr_tst (a SERIAL PRIMARY KEY, CONSTRAINT clstr_tst_con FOREIGN KEY (b) REFERENCES clstr_tst_s); NOTICE: CREATE TABLE will create implicit sequence "clstr_tst_a_seq" for "serial" column "clstr_tst.a" NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "clstr_tst_pkey" for table "clstr_tst" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks CREATE INDEX clstr_tst_b ON clstr_tst (b); CREATE INDEX clstr_tst_c ON clstr_tst (c); CREATE INDEX clstr_tst_c_b ON clstr_tst (c,b); diff --git a/src/test/regress/expected/foreign_key.out b/src/test/regress/expected/foreign_key.out index bac69c90f82..bfb90979f68 100644 --- a/src/test/regress/expected/foreign_key.out +++ b/src/test/regress/expected/foreign_key.out @@ -8,7 +8,6 @@ CREATE TABLE PKTABLE ( ptest1 int PRIMARY KEY, ptest2 text ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" CREATE TABLE FKTABLE ( ftest1 int REFERENCES PKTABLE MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE, ftest2 int ); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- Insert test data into PKTABLE INSERT INTO PKTABLE VALUES (1, 'Test1'); INSERT INTO PKTABLE VALUES (2, 'Test2'); @@ -65,7 +64,6 @@ CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 text, PRIMARY KEY(ptest1, NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" CREATE TABLE FKTABLE ( ftest1 int, ftest2 int, ftest3 int, CONSTRAINT constrname FOREIGN KEY(ftest1, ftest2) REFERENCES PKTABLE MATCH FULL ON DELETE SET NULL ON UPDATE SET NULL); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- Insert test data into PKTABLE INSERT INTO PKTABLE VALUES (1, 2, 'Test1'); INSERT INTO PKTABLE VALUES (1, 3, 'Test1-2'); @@ -152,7 +150,6 @@ CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 text, PRIMARY KEY(ptest1, NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" CREATE TABLE FKTABLE ( ftest1 int DEFAULT -1, ftest2 int DEFAULT -2, ftest3 int, CONSTRAINT constrname2 FOREIGN KEY(ftest1, ftest2) REFERENCES PKTABLE MATCH FULL ON DELETE SET DEFAULT ON UPDATE SET DEFAULT); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- Insert a value in PKTABLE for default INSERT INTO PKTABLE VALUES (-1, -2, 'The Default!'); -- Insert test data into PKTABLE @@ -245,7 +242,6 @@ DROP TABLE FKTABLE; CREATE TABLE PKTABLE ( ptest1 int PRIMARY KEY, ptest2 text ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" CREATE TABLE FKTABLE ( ftest1 int REFERENCES PKTABLE MATCH FULL, ftest2 int ); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- Insert test data into PKTABLE INSERT INTO PKTABLE VALUES (1, 'Test1'); INSERT INTO PKTABLE VALUES (2, 'Test2'); @@ -322,7 +318,6 @@ CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 int, ptest4 text, PRIMARY NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" CREATE TABLE FKTABLE ( ftest1 int, ftest2 int, ftest3 int, ftest4 int, CONSTRAINT constrname3 FOREIGN KEY(ftest1, ftest2, ftest3) REFERENCES PKTABLE); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- Insert Primary Key values INSERT INTO PKTABLE VALUES (1, 2, 3, 'test1'); INSERT INTO PKTABLE VALUES (1, 3, 3, 'test2'); @@ -388,7 +383,6 @@ NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" fo CREATE TABLE FKTABLE ( ftest1 int, ftest2 int, ftest3 int, ftest4 int, CONSTRAINT constrname3 FOREIGN KEY(ftest1, ftest2, ftest3) REFERENCES PKTABLE ON DELETE CASCADE ON UPDATE CASCADE); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- Insert Primary Key values INSERT INTO PKTABLE VALUES (1, 2, 3, 'test1'); INSERT INTO PKTABLE VALUES (1, 3, 3, 'test2'); @@ -486,7 +480,6 @@ NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" fo CREATE TABLE FKTABLE ( ftest1 int DEFAULT 0, ftest2 int, ftest3 int, ftest4 int, CONSTRAINT constrname3 FOREIGN KEY(ftest1, ftest2, ftest3) REFERENCES PKTABLE ON DELETE SET DEFAULT ON UPDATE SET NULL); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- Insert Primary Key values INSERT INTO PKTABLE VALUES (1, 2, 3, 'test1'); INSERT INTO PKTABLE VALUES (1, 3, 3, 'test2'); @@ -591,7 +584,6 @@ NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" fo CREATE TABLE FKTABLE ( ftest1 int DEFAULT 0, ftest2 int DEFAULT -1, ftest3 int, ftest4 int, CONSTRAINT constrname3 FOREIGN KEY(ftest1, ftest2, ftest3) REFERENCES PKTABLE ON DELETE SET NULL ON UPDATE SET DEFAULT); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- Insert Primary Key values INSERT INTO PKTABLE VALUES (1, 2, 3, 'test1'); INSERT INTO PKTABLE VALUES (1, 3, 3, 'test2'); @@ -707,10 +699,8 @@ DROP TABLE PKTABLE; CREATE TABLE PKTABLE (ptest1 int PRIMARY KEY); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" CREATE TABLE FKTABLE_FAIL1 ( ftest1 int, CONSTRAINT fkfail1 FOREIGN KEY (ftest2) REFERENCES PKTABLE); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: column "ftest2" referenced in foreign key constraint does not exist CREATE TABLE FKTABLE_FAIL2 ( ftest1 int, CONSTRAINT fkfail1 FOREIGN KEY (ftest1) REFERENCES PKTABLE(ptest2)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: column "ptest2" referenced in foreign key constraint does not exist DROP TABLE FKTABLE_FAIL1; ERROR: table "fktable_fail1" does not exist @@ -721,7 +711,6 @@ DROP TABLE PKTABLE; CREATE TABLE PKTABLE (ptest1 int, ptest2 int, UNIQUE(ptest1, ptest2)); NOTICE: CREATE TABLE / UNIQUE will create implicit index "pktable_ptest1_key" for table "pktable" CREATE TABLE FKTABLE_FAIL1 (ftest1 int REFERENCES pktable(ptest1)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: there is no unique constraint matching given keys for referenced table "pktable" DROP TABLE FKTABLE_FAIL1; ERROR: table "fktable_fail1" does not exist @@ -734,23 +723,19 @@ CREATE TABLE PKTABLE (ptest1 int PRIMARY KEY); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -- This next should fail, because inet=int does not exist CREATE TABLE FKTABLE (ftest1 inet REFERENCES pktable); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- This should also fail for the same reason, but here we -- give the column name CREATE TABLE FKTABLE (ftest1 inet REFERENCES pktable(ptest1)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- This should succeed, even though they are different types -- because varchar=int does exist CREATE TABLE FKTABLE (ftest1 varchar REFERENCES pktable); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks DROP TABLE FKTABLE; -- As should this CREATE TABLE FKTABLE (ftest1 varchar REFERENCES pktable(ptest1)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks DROP TABLE FKTABLE; DROP TABLE PKTABLE; -- Two columns, two tables @@ -758,36 +743,29 @@ CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, PRIMARY KEY(ptest1, ptest2)); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -- This should fail, because we just chose really odd types CREATE TABLE FKTABLE (ftest1 cidr, ftest2 timestamp, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: cidr = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- Again, so should this... CREATE TABLE FKTABLE (ftest1 cidr, ftest2 timestamp, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: cidr = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- This fails because we mixed up the column ordering CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- As does this... CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest1, ptest2)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- And again.. CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest2, ptest1)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: integer = inet HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- This works... CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest2, ptest1)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks DROP TABLE FKTABLE; -- As does this CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks DROP TABLE FKTABLE; DROP TABLE PKTABLE; -- Two columns, same table @@ -795,33 +773,28 @@ DROP TABLE PKTABLE; CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3, ptest4) REFERENCES pktable(ptest1, ptest2)); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks DROP TABLE PKTABLE; -- And this, CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3, ptest4) REFERENCES pktable); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks DROP TABLE PKTABLE; -- This shouldn't (mixed up columns) CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3, ptest4) REFERENCES pktable(ptest2, ptest1)); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: integer = inet HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- Nor should this... (same reason, we have 4,3 referencing 1,2 which mismatches types CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4, ptest3) REFERENCES pktable(ptest1, ptest2)); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- Not this one either... Same as the last one except we didn't defined the columns being referenced. CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4, ptest3) REFERENCES pktable); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- @@ -832,7 +805,6 @@ create table pktable (ptest1 int, primary key(base1), unique(base1, ptest1)) inh NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" NOTICE: CREATE TABLE / UNIQUE will create implicit index "pktable_base1_key" for table "pktable" create table fktable (ftest1 int references pktable(base1)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- now some ins, upd, del insert into pktable(base1) values (1); insert into pktable(base1) values (2); @@ -861,7 +833,6 @@ drop table fktable; delete from pktable; -- Now 2 columns 2 tables, matching types create table fktable (ftest1 int, ftest2 int, foreign key(ftest1, ftest2) references pktable(base1, ptest1)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- now some ins, upd, del insert into pktable(base1, ptest1) values (1, 1); insert into pktable(base1, ptest1) values (2, 2); @@ -894,7 +865,6 @@ create table pktable_base(base1 int not null, base2 int); create table pktable(ptest1 int, ptest2 int, primary key(base1, ptest1), foreign key(base2, ptest2) references pktable(base1, ptest1)) inherits (pktable_base); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks insert into pktable (base1, ptest1, base2, ptest2) values (1, 1, 1, 1); insert into pktable (base1, ptest1, base2, ptest2) values (2, 1, 1, 1); insert into pktable (base1, ptest1, base2, ptest2) values (2, 2, 2, 1); @@ -922,24 +892,19 @@ create table pktable(ptest1 inet, primary key(base1, ptest1)) inherits (pktable_ NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -- just generally bad types (with and without column references on the referenced table) create table fktable(ftest1 cidr, ftest2 int[], foreign key (ftest1, ftest2) references pktable); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: cidr = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. create table fktable(ftest1 cidr, ftest2 int[], foreign key (ftest1, ftest2) references pktable(base1, ptest1)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: cidr = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. -- let's mix up which columns reference which create table fktable(ftest1 int, ftest2 inet, foreign key(ftest2, ftest1) references pktable); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. create table fktable(ftest1 int, ftest2 inet, foreign key(ftest2, ftest1) references pktable(base1, ptest1)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. create table fktable(ftest1 int, ftest2 inet, foreign key(ftest1, ftest2) references pktable(ptest1, base1)); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: integer = inet HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. drop table pktable; @@ -949,25 +914,21 @@ create table pktable_base(base1 int not null, base2 int); create table pktable(ptest1 inet, ptest2 inet[], primary key(base1, ptest1), foreign key(base2, ptest2) references pktable(base1, ptest1)) inherits (pktable_base); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet[] = inet HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(base2, ptest2) references pktable(ptest1, base1)) inherits (pktable_base); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: integer = inet HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(ptest2, base2) references pktable(base1, ptest1)) inherits (pktable_base); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(ptest2, base2) references pktable(base1, ptest1)) inherits (pktable_base); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks ERROR: operator does not exist: inet = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. drop table pktable; @@ -988,7 +949,6 @@ CREATE TABLE fktable ( fk INT4 REFERENCES pktable DEFERRABLE ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "fktable_pkey" for table "fktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- default to immediate: should fail INSERT INTO fktable VALUES (5, 10); ERROR: insert or update on table "fktable" violates foreign key constraint "$1" @@ -1011,7 +971,6 @@ CREATE TABLE fktable ( fk INT4 REFERENCES pktable DEFERRABLE INITIALLY DEFERRED ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "fktable_pkey" for table "fktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks -- default to deferred, should succeed BEGIN; INSERT INTO fktable VALUES (100, 200); @@ -1040,7 +999,6 @@ CREATE TABLE fktable ( fk INT4 REFERENCES pktable DEFERRABLE ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "fktable_pkey" for table "fktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks BEGIN; SET CONSTRAINTS ALL DEFERRED; -- should succeed, for now @@ -1064,7 +1022,6 @@ CREATE TABLE fktable ( fk INT4 REFERENCES pktable DEFERRABLE INITIALLY DEFERRED ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "fktable_pkey" for table "fktable" -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks BEGIN; -- no error here INSERT INTO fktable VALUES (100, 200); diff --git a/src/test/regress/expected/truncate.out b/src/test/regress/expected/truncate.out index c71c20f3e94..5e7d81d7732 100644 --- a/src/test/regress/expected/truncate.out +++ b/src/test/regress/expected/truncate.out @@ -32,7 +32,6 @@ SELECT * FROM truncate_a; -- Test foreign constraint check CREATE TABLE truncate_b(col1 integer references truncate_a); -NOTICE: CREATE TABLE will create implicit triggers for foreign-key checks INSERT INTO truncate_a VALUES (1); SELECT * FROM truncate_a; col1 |