From 774f57038abb19dee70a895bbcd0bc3c3f667211 Mon Sep 17 00:00:00 2001
From: Jan Wieck <JanWieck@Yahoo.com>
Date: Fri, 31 Oct 2003 14:27:57 +0000
Subject: [PATCH] Moved the recently added test for foreign key disabled by
 rewrite rule into the rule.sql since it affects the latter if run in
 paralell.

Jan
---
 src/test/regress/expected/foreign_key.out | 59 -----------------------
 src/test/regress/expected/rules.out       | 59 +++++++++++++++++++++++
 src/test/regress/sql/foreign_key.sql      | 59 -----------------------
 src/test/regress/sql/rules.sql            | 59 +++++++++++++++++++++++
 4 files changed, 118 insertions(+), 118 deletions(-)

diff --git a/src/test/regress/expected/foreign_key.out b/src/test/regress/expected/foreign_key.out
index 89dbfcb22a8..bfb90979f68 100644
--- a/src/test/regress/expected/foreign_key.out
+++ b/src/test/regress/expected/foreign_key.out
@@ -1029,62 +1029,3 @@ INSERT INTO fktable VALUES (100, 200);
 COMMIT;
 ERROR:  insert or update on table "fktable" violates foreign key constraint "$1"
 DETAIL:  Key (fk)=(200) is not present in table "pktable".
--- Check that rewrite rules splitting one INSERT into multiple
--- conditional statements does not disable FK checking.
-create table rule_and_refint_t1 (
-	id1a integer,
-	id1b integer,
-	
-	primary key (id1a, id1b)
-);
-NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "rule_and_refint_t1_pkey" for table "rule_and_refint_t1"
-create table rule_and_refint_t2 (
-	id2a integer,
-	id2c integer,
-	
-	primary key (id2a, id2c)
-);
-NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "rule_and_refint_t2_pkey" for table "rule_and_refint_t2"
-create table rule_and_refint_t3 (
-	id3a integer,
-	id3b integer,
-	id3c integer,
-	data text,
-	primary key (id3a, id3b, id3c),
-	foreign key (id3a, id3b) references rule_and_refint_t1 (id1a, id1b),
-	foreign key (id3a, id3c) references rule_and_refint_t2 (id2a, id2c)
-);
-NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "rule_and_refint_t3_pkey" for table "rule_and_refint_t3"
-insert into rule_and_refint_t1 values (1, 11);
-insert into rule_and_refint_t1 values (1, 12);
-insert into rule_and_refint_t1 values (2, 21);
-insert into rule_and_refint_t1 values (2, 22);
-insert into rule_and_refint_t2 values (1, 11);
-insert into rule_and_refint_t2 values (1, 12);
-insert into rule_and_refint_t2 values (2, 21);
-insert into rule_and_refint_t2 values (2, 22);
-insert into rule_and_refint_t3 values (1, 11, 11, 'row1');
-insert into rule_and_refint_t3 values (1, 11, 12, 'row2');
-insert into rule_and_refint_t3 values (1, 12, 11, 'row3');
-insert into rule_and_refint_t3 values (1, 12, 12, 'row4');
-insert into rule_and_refint_t3 values (1, 11, 13, 'row5');
-ERROR:  insert or update on table "rule_and_refint_t3" violates foreign key constraint "$2"
-DETAIL:  Key (id3a,id3c)=(1,13) is not present in table "rule_and_refint_t2".
-insert into rule_and_refint_t3 values (1, 13, 11, 'row6');
-ERROR:  insert or update on table "rule_and_refint_t3" violates foreign key constraint "$1"
-DETAIL:  Key (id3a,id3b)=(1,13) is not present in table "rule_and_refint_t1".
-create rule rule_and_refint_t3_ins as on insert to rule_and_refint_t3
-	where (exists (select 1 from rule_and_refint_t3
-			where (((rule_and_refint_t3.id3a = new.id3a)
-			and (rule_and_refint_t3.id3b = new.id3b))
-			and (rule_and_refint_t3.id3c = new.id3c))))
-	do instead update rule_and_refint_t3 set data = new.data
-	where (((rule_and_refint_t3.id3a = new.id3a)
-	and (rule_and_refint_t3.id3b = new.id3b))
-	and (rule_and_refint_t3.id3c = new.id3c));
-insert into rule_and_refint_t3 values (1, 11, 13, 'row7');
-ERROR:  insert or update on table "rule_and_refint_t3" violates foreign key constraint "$2"
-DETAIL:  Key (id3a,id3c)=(1,13) is not present in table "rule_and_refint_t2".
-insert into rule_and_refint_t3 values (1, 13, 11, 'row8');
-ERROR:  insert or update on table "rule_and_refint_t3" violates foreign key constraint "$1"
-DETAIL:  Key (id3a,id3b)=(1,13) is not present in table "rule_and_refint_t1".
diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out
index fcd7b470e8d..7ae49e8b442 100644
--- a/src/test/regress/expected/rules.out
+++ b/src/test/regress/expected/rules.out
@@ -1364,3 +1364,62 @@ SELECT * FROM ruletest_tbl2;
  1000 | 1000
 (2 rows)
 
+-- Check that rewrite rules splitting one INSERT into multiple
+-- conditional statements does not disable FK checking.
+create table rule_and_refint_t1 (
+	id1a integer,
+	id1b integer,
+	
+	primary key (id1a, id1b)
+);
+NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "rule_and_refint_t1_pkey" for table "rule_and_refint_t1"
+create table rule_and_refint_t2 (
+	id2a integer,
+	id2c integer,
+	
+	primary key (id2a, id2c)
+);
+NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "rule_and_refint_t2_pkey" for table "rule_and_refint_t2"
+create table rule_and_refint_t3 (
+	id3a integer,
+	id3b integer,
+	id3c integer,
+	data text,
+	primary key (id3a, id3b, id3c),
+	foreign key (id3a, id3b) references rule_and_refint_t1 (id1a, id1b),
+	foreign key (id3a, id3c) references rule_and_refint_t2 (id2a, id2c)
+);
+NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "rule_and_refint_t3_pkey" for table "rule_and_refint_t3"
+insert into rule_and_refint_t1 values (1, 11);
+insert into rule_and_refint_t1 values (1, 12);
+insert into rule_and_refint_t1 values (2, 21);
+insert into rule_and_refint_t1 values (2, 22);
+insert into rule_and_refint_t2 values (1, 11);
+insert into rule_and_refint_t2 values (1, 12);
+insert into rule_and_refint_t2 values (2, 21);
+insert into rule_and_refint_t2 values (2, 22);
+insert into rule_and_refint_t3 values (1, 11, 11, 'row1');
+insert into rule_and_refint_t3 values (1, 11, 12, 'row2');
+insert into rule_and_refint_t3 values (1, 12, 11, 'row3');
+insert into rule_and_refint_t3 values (1, 12, 12, 'row4');
+insert into rule_and_refint_t3 values (1, 11, 13, 'row5');
+ERROR:  insert or update on table "rule_and_refint_t3" violates foreign key constraint "$2"
+DETAIL:  Key (id3a,id3c)=(1,13) is not present in table "rule_and_refint_t2".
+insert into rule_and_refint_t3 values (1, 13, 11, 'row6');
+ERROR:  insert or update on table "rule_and_refint_t3" violates foreign key constraint "$1"
+DETAIL:  Key (id3a,id3b)=(1,13) is not present in table "rule_and_refint_t1".
+create rule rule_and_refint_t3_ins as on insert to rule_and_refint_t3
+	where (exists (select 1 from rule_and_refint_t3
+			where (((rule_and_refint_t3.id3a = new.id3a)
+			and (rule_and_refint_t3.id3b = new.id3b))
+			and (rule_and_refint_t3.id3c = new.id3c))))
+	do instead update rule_and_refint_t3 set data = new.data
+	where (((rule_and_refint_t3.id3a = new.id3a)
+	and (rule_and_refint_t3.id3b = new.id3b))
+	and (rule_and_refint_t3.id3c = new.id3c));
+insert into rule_and_refint_t3 values (1, 11, 13, 'row7');
+ERROR:  insert or update on table "rule_and_refint_t3" violates foreign key constraint "$2"
+DETAIL:  Key (id3a,id3c)=(1,13) is not present in table "rule_and_refint_t2".
+insert into rule_and_refint_t3 values (1, 13, 11, 'row8');
+ERROR:  insert or update on table "rule_and_refint_t3" violates foreign key constraint "$1"
+DETAIL:  Key (id3a,id3b)=(1,13) is not present in table "rule_and_refint_t1".
diff --git a/src/test/regress/sql/foreign_key.sql b/src/test/regress/sql/foreign_key.sql
index 0d54b77f303..009588db065 100644
--- a/src/test/regress/sql/foreign_key.sql
+++ b/src/test/regress/sql/foreign_key.sql
@@ -693,62 +693,3 @@ INSERT INTO fktable VALUES (100, 200);
 
 -- error here on commit
 COMMIT;
-
--- Check that rewrite rules splitting one INSERT into multiple
--- conditional statements does not disable FK checking.
-create table rule_and_refint_t1 (
-	id1a integer,
-	id1b integer,
-	
-	primary key (id1a, id1b)
-);
-
-create table rule_and_refint_t2 (
-	id2a integer,
-	id2c integer,
-	
-	primary key (id2a, id2c)
-);
-
-create table rule_and_refint_t3 (
-	id3a integer,
-	id3b integer,
-	id3c integer,
-	data text,
-
-	primary key (id3a, id3b, id3c),
-
-	foreign key (id3a, id3b) references rule_and_refint_t1 (id1a, id1b),
-	foreign key (id3a, id3c) references rule_and_refint_t2 (id2a, id2c)
-);
-
-
-insert into rule_and_refint_t1 values (1, 11);
-insert into rule_and_refint_t1 values (1, 12);
-insert into rule_and_refint_t1 values (2, 21);
-insert into rule_and_refint_t1 values (2, 22);
-
-insert into rule_and_refint_t2 values (1, 11);
-insert into rule_and_refint_t2 values (1, 12);
-insert into rule_and_refint_t2 values (2, 21);
-insert into rule_and_refint_t2 values (2, 22);
-
-insert into rule_and_refint_t3 values (1, 11, 11, 'row1');
-insert into rule_and_refint_t3 values (1, 11, 12, 'row2');
-insert into rule_and_refint_t3 values (1, 12, 11, 'row3');
-insert into rule_and_refint_t3 values (1, 12, 12, 'row4');
-insert into rule_and_refint_t3 values (1, 11, 13, 'row5');
-insert into rule_and_refint_t3 values (1, 13, 11, 'row6');
-
-create rule rule_and_refint_t3_ins as on insert to rule_and_refint_t3
-	where (exists (select 1 from rule_and_refint_t3
-			where (((rule_and_refint_t3.id3a = new.id3a)
-			and (rule_and_refint_t3.id3b = new.id3b))
-			and (rule_and_refint_t3.id3c = new.id3c))))
-	do instead update rule_and_refint_t3 set data = new.data
-	where (((rule_and_refint_t3.id3a = new.id3a)
-	and (rule_and_refint_t3.id3b = new.id3b))
-	and (rule_and_refint_t3.id3c = new.id3c));
-
-insert into rule_and_refint_t3 values (1, 11, 13, 'row7');
-insert into rule_and_refint_t3 values (1, 13, 11, 'row8');
diff --git a/src/test/regress/sql/rules.sql b/src/test/regress/sql/rules.sql
index a2c01c6e931..d797144d9d1 100644
--- a/src/test/regress/sql/rules.sql
+++ b/src/test/regress/sql/rules.sql
@@ -786,3 +786,62 @@ CREATE OR REPLACE RULE myrule AS ON INSERT TO ruletest_tbl
 INSERT INTO ruletest_tbl VALUES (99, 99);
 
 SELECT * FROM ruletest_tbl2;
+
+-- Check that rewrite rules splitting one INSERT into multiple
+-- conditional statements does not disable FK checking.
+create table rule_and_refint_t1 (
+	id1a integer,
+	id1b integer,
+	
+	primary key (id1a, id1b)
+);
+
+create table rule_and_refint_t2 (
+	id2a integer,
+	id2c integer,
+	
+	primary key (id2a, id2c)
+);
+
+create table rule_and_refint_t3 (
+	id3a integer,
+	id3b integer,
+	id3c integer,
+	data text,
+
+	primary key (id3a, id3b, id3c),
+
+	foreign key (id3a, id3b) references rule_and_refint_t1 (id1a, id1b),
+	foreign key (id3a, id3c) references rule_and_refint_t2 (id2a, id2c)
+);
+
+
+insert into rule_and_refint_t1 values (1, 11);
+insert into rule_and_refint_t1 values (1, 12);
+insert into rule_and_refint_t1 values (2, 21);
+insert into rule_and_refint_t1 values (2, 22);
+
+insert into rule_and_refint_t2 values (1, 11);
+insert into rule_and_refint_t2 values (1, 12);
+insert into rule_and_refint_t2 values (2, 21);
+insert into rule_and_refint_t2 values (2, 22);
+
+insert into rule_and_refint_t3 values (1, 11, 11, 'row1');
+insert into rule_and_refint_t3 values (1, 11, 12, 'row2');
+insert into rule_and_refint_t3 values (1, 12, 11, 'row3');
+insert into rule_and_refint_t3 values (1, 12, 12, 'row4');
+insert into rule_and_refint_t3 values (1, 11, 13, 'row5');
+insert into rule_and_refint_t3 values (1, 13, 11, 'row6');
+
+create rule rule_and_refint_t3_ins as on insert to rule_and_refint_t3
+	where (exists (select 1 from rule_and_refint_t3
+			where (((rule_and_refint_t3.id3a = new.id3a)
+			and (rule_and_refint_t3.id3b = new.id3b))
+			and (rule_and_refint_t3.id3c = new.id3c))))
+	do instead update rule_and_refint_t3 set data = new.data
+	where (((rule_and_refint_t3.id3a = new.id3a)
+	and (rule_and_refint_t3.id3b = new.id3b))
+	and (rule_and_refint_t3.id3c = new.id3c));
+
+insert into rule_and_refint_t3 values (1, 11, 13, 'row7');
+insert into rule_and_refint_t3 values (1, 13, 11, 'row8');
-- 
GitLab