summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Wieck <JanWieck@Yahoo.com>2003-10-31 14:27:57 +0000
committerJan Wieck <JanWieck@Yahoo.com>2003-10-31 14:27:57 +0000
commit774f57038abb19dee70a895bbcd0bc3c3f667211 (patch)
treeb1c704ad960acdbbac0b9e7288b31326cedc5607
parente6152300f1c4f7e261ea034c52d0a2ddfba58aa0 (diff)
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
-rw-r--r--src/test/regress/expected/foreign_key.out59
-rw-r--r--src/test/regress/expected/rules.out59
-rw-r--r--src/test/regress/sql/foreign_key.sql59
-rw-r--r--src/test/regress/sql/rules.sql59
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');