My nightly regression tests for OBSD failed for i386 and sparc.  Attached
is the regression.diff,  I don't know what to make of it..  Looks like
problems w/ foreign keys.

...
parallel group (5 tests):  portals_p2 rules select_views alter_table
foreign_key
     select_views         ... ok
     alter_table          ... FAILED
     portals_p2           ... ok
     rules                ... ok
     foreign_key          ... FAILED
parallel group (3 tests):  limit temp plpgsql
...



b. palmer,  [EMAIL PROTECTED]
pgp:  www.crimelabs.net/bpalmer.pgp5
*** ./expected/alter_table.out  Thu May 10 05:02:48 2001
--- ./results/alter_table.out   Thu May 10 05:09:16 2001
***************
*** 347,372 ****
  CREATE TABLE FKTABLE (ftest1 cidr, ftest2 datetime);
  ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable;
  NOTICE:  ALTER TABLE ... ADD CONSTRAINT will create implicit trigger(s) for FOREIGN 
KEY check(s)
! ERROR:  Unable to identify an operator '=' for types 'cidr' and 'int4'
!       You will have to retype this query using an explicit cast
  -- Again, so should this...
  DROP TABLE FKTABLE;
  CREATE TABLE FKTABLE (ftest1 cidr, ftest2 datetime);
  ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable(ptest1, 
ptest2);
  NOTICE:  ALTER TABLE ... ADD CONSTRAINT will create implicit trigger(s) for FOREIGN 
KEY check(s)
! ERROR:  Unable to identify an operator '=' for types 'cidr' and 'int4'
!       You will have to retype this query using an explicit cast
  -- This fails because we mixed up the column ordering
  DROP TABLE FKTABLE;
  CREATE TABLE FKTABLE (ftest1 int, ftest2 text);
  ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable(ptest2, 
ptest1);
  NOTICE:  ALTER TABLE ... ADD CONSTRAINT will create implicit trigger(s) for FOREIGN 
KEY check(s)
! ERROR:  Unable to identify an operator '=' for types 'int4' and 'text'
!       You will have to retype this query using an explicit cast
  -- As does this...
  ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest2, ftest1) references pktable(ptest1, 
ptest2);
  NOTICE:  ALTER TABLE ... ADD CONSTRAINT will create implicit trigger(s) for FOREIGN 
KEY check(s)
! ERROR:  Unable to identify an operator '=' for types 'text' and 'int4'
!       You will have to retype this query using an explicit cast
  DROP TABLE FKTABLE;
  DROP TABLE PKTABLE;
--- 347,369 ----
  CREATE TABLE FKTABLE (ftest1 cidr, ftest2 datetime);
  ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable;
  NOTICE:  ALTER TABLE ... ADD CONSTRAINT will create implicit trigger(s) for FOREIGN 
KEY check(s)
! ERROR:  RelationClearRelation: relation 144096 deleted while still in use
  -- Again, so should this...
  DROP TABLE FKTABLE;
  CREATE TABLE FKTABLE (ftest1 cidr, ftest2 datetime);
  ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable(ptest1, 
ptest2);
  NOTICE:  ALTER TABLE ... ADD CONSTRAINT will create implicit trigger(s) for FOREIGN 
KEY check(s)
! ERROR:  Relation 'pktable' does not exist
  -- This fails because we mixed up the column ordering
  DROP TABLE FKTABLE;
  CREATE TABLE FKTABLE (ftest1 int, ftest2 text);
  ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable(ptest2, 
ptest1);
  NOTICE:  ALTER TABLE ... ADD CONSTRAINT will create implicit trigger(s) for FOREIGN 
KEY check(s)
! ERROR:  UNIQUE constraint matching given keys for referenced table "pktable" not 
found
  -- As does this...
  ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest2, ftest1) references pktable(ptest1, 
ptest2);
  NOTICE:  ALTER TABLE ... ADD CONSTRAINT will create implicit trigger(s) for FOREIGN 
KEY check(s)
! ERROR:  RelationClearRelation: relation 144277 deleted while still in use
  DROP TABLE FKTABLE;
+ ERROR:  table "fktable" does not exist
  DROP TABLE PKTABLE;

======================================================================

*** ./expected/foreign_key.out  Thu May 10 05:02:48 2001
--- ./results/foreign_key.out   Thu May 10 05:09:18 2001
***************
*** 574,697 ****
  -- set default update / set null delete
  CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 int, ptest4 text, PRIMARY 
KEY(ptest1, ptest2, ptest3) );
  NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'pktable_pkey' for 
table 'pktable'
  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 trigger(s) for FOREIGN KEY check(s)
  -- Insert Primary Key values
  INSERT INTO PKTABLE VALUES (1, 2, 3, 'test1');
  INSERT INTO PKTABLE VALUES (1, 3, 3, 'test2');
  INSERT INTO PKTABLE VALUES (2, 3, 4, 'test3');
  INSERT INTO PKTABLE VALUES (2, 4, 5, 'test4');
  INSERT INTO PKTABLE VALUES (2, -1, 5, 'test5');
  -- Insert Foreign Key values
  INSERT INTO FKTABLE VALUES (1, 2, 3, 1); 
  INSERT INTO FKTABLE VALUES (2, 3, 4, 1); 
  INSERT INTO FKTABLE VALUES (2, 4, 5, 1);
  INSERT INTO FKTABLE VALUES (NULL, 2, 3, 2);
  INSERT INTO FKTABLE VALUES (2, NULL, 3, 3);
  INSERT INTO FKTABLE VALUES (NULL, 2, 7, 4);
  INSERT INTO FKTABLE VALUES (NULL, 3, 4, 5);
  -- Insert a failed values
  INSERT INTO FKTABLE VALUES (1, 2, 7, 6);
! ERROR:  constrname3 referential integrity violation - key referenced from fktable 
not found in pktable
  -- Show FKTABLE
  SELECT * from FKTABLE;
!  ftest1 | ftest2 | ftest3 | ftest4 
! --------+--------+--------+--------
!       1 |      2 |      3 |      1
!       2 |      3 |      4 |      1
!       2 |      4 |      5 |      1
!         |      2 |      3 |      2
!       2 |        |      3 |      3
!         |      2 |      7 |      4
!         |      3 |      4 |      5
! (7 rows)
  
  -- Try to update something that will fail
  UPDATE PKTABLE set ptest2=5 where ptest2=2;
! ERROR:  constrname3 referential integrity violation - key referenced from fktable 
not found in pktable
  -- Try to update something that will set default
  UPDATE PKTABLE set ptest1=0, ptest2=5, ptest3=10 where ptest2=2;
  UPDATE PKTABLE set ptest2=10 where ptest2=4;
  -- Try to update something that should not set default
  UPDATE PKTABLE set ptest2=2 WHERE ptest2=3 and ptest1=1;
  -- Show PKTABLE and FKTABLE
  SELECT * from PKTABLE;
!  ptest1 | ptest2 | ptest3 | ptest4 
! --------+--------+--------+--------
!       2 |      3 |      4 | test3
!       2 |     -1 |      5 | test5
!       0 |      5 |     10 | test1
!       2 |     10 |      5 | test4
!       1 |      2 |      3 | test2
! (5 rows)
! 
  SELECT * from FKTABLE;
!  ftest1 | ftest2 | ftest3 | ftest4 
! --------+--------+--------+--------
!       2 |      3 |      4 |      1
!         |      2 |      3 |      2
!       2 |        |      3 |      3
!         |      2 |      7 |      4
!         |      3 |      4 |      5
!       0 |     -1 |        |      1
!       2 |     -1 |      5 |      1
! (7 rows)
! 
  -- Try to delete something that should set null
  DELETE FROM PKTABLE where ptest1=2 and ptest2=3 and ptest3=4;
  -- Show PKTABLE and FKTABLE
  SELECT * from PKTABLE;
!  ptest1 | ptest2 | ptest3 | ptest4 
! --------+--------+--------+--------
!       2 |     -1 |      5 | test5
!       0 |      5 |     10 | test1
!       2 |     10 |      5 | test4
!       1 |      2 |      3 | test2
! (4 rows)
! 
  SELECT * from FKTABLE;
!  ftest1 | ftest2 | ftest3 | ftest4 
! --------+--------+--------+--------
!         |      2 |      3 |      2
!       2 |        |      3 |      3
!         |      2 |      7 |      4
!         |      3 |      4 |      5
!       0 |     -1 |        |      1
!       2 |     -1 |      5 |      1
!         |        |        |      1
! (7 rows)
! 
  -- Try to delete something that should not set null
  DELETE FROM PKTABLE where ptest2=5;
  -- Show PKTABLE and FKTABLE
  SELECT * from PKTABLE;
!  ptest1 | ptest2 | ptest3 | ptest4 
! --------+--------+--------+--------
!       2 |     -1 |      5 | test5
!       2 |     10 |      5 | test4
!       1 |      2 |      3 | test2
! (3 rows)
! 
  SELECT * from FKTABLE;
!  ftest1 | ftest2 | ftest3 | ftest4 
! --------+--------+--------+--------
!         |      2 |      3 |      2
!       2 |        |      3 |      3
!         |      2 |      7 |      4
!         |      3 |      4 |      5
!       0 |     -1 |        |      1
!       2 |     -1 |      5 |      1
!         |        |        |      1
! (7 rows)
! 
  DROP TABLE FKTABLE;
! NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table 
"pktable"
! NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table 
"pktable"
  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 trigger(s) for FOREIGN KEY check(s)
  ERROR:  columns referenced in foreign key constraint not found.
--- 574,660 ----
  -- set default update / set null delete
  CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 int, ptest4 text, PRIMARY 
KEY(ptest1, ptest2, ptest3) );
  NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'pktable_pkey' for 
table 'pktable'
+ ERROR:  Cannot insert a duplicate key into unique index pg_class_relname_index
  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 trigger(s) for FOREIGN KEY check(s)
+ NOTICE:  Illegal FOREIGN KEY definition REFERENCES "pktable"
+ ERROR:  number of key attributes in referenced table must be equal to foreign key
  -- Insert Primary Key values
  INSERT INTO PKTABLE VALUES (1, 2, 3, 'test1');
+ ERROR:  INSERT has more expressions than target columns
  INSERT INTO PKTABLE VALUES (1, 3, 3, 'test2');
+ ERROR:  INSERT has more expressions than target columns
  INSERT INTO PKTABLE VALUES (2, 3, 4, 'test3');
+ ERROR:  INSERT has more expressions than target columns
  INSERT INTO PKTABLE VALUES (2, 4, 5, 'test4');
+ ERROR:  INSERT has more expressions than target columns
  INSERT INTO PKTABLE VALUES (2, -1, 5, 'test5');
+ ERROR:  INSERT has more expressions than target columns
  -- Insert Foreign Key values
  INSERT INTO FKTABLE VALUES (1, 2, 3, 1); 
+ ERROR:  Relation 'fktable' does not exist
  INSERT INTO FKTABLE VALUES (2, 3, 4, 1); 
+ ERROR:  Relation 'fktable' does not exist
  INSERT INTO FKTABLE VALUES (2, 4, 5, 1);
+ ERROR:  Relation 'fktable' does not exist
  INSERT INTO FKTABLE VALUES (NULL, 2, 3, 2);
+ ERROR:  Relation 'fktable' does not exist
  INSERT INTO FKTABLE VALUES (2, NULL, 3, 3);
+ ERROR:  INSERT has more expressions than target columns
  INSERT INTO FKTABLE VALUES (NULL, 2, 7, 4);
+ ERROR:  INSERT has more expressions than target columns
  INSERT INTO FKTABLE VALUES (NULL, 3, 4, 5);
+ ERROR:  INSERT has more expressions than target columns
  -- Insert a failed values
  INSERT INTO FKTABLE VALUES (1, 2, 7, 6);
! ERROR:  INSERT has more expressions than target columns
  -- Show FKTABLE
  SELECT * from FKTABLE;
!  ftest1 
! --------
! (0 rows)
  
  -- Try to update something that will fail
  UPDATE PKTABLE set ptest2=5 where ptest2=2;
! ERROR:  RelationClearRelation: relation 143823 deleted while still in use
  -- Try to update something that will set default
  UPDATE PKTABLE set ptest1=0, ptest2=5, ptest3=10 where ptest2=2;
+ ERROR:  Relation 'pktable' does not exist
  UPDATE PKTABLE set ptest2=10 where ptest2=4;
+ ERROR:  Relation 'pktable' does not exist
  -- Try to update something that should not set default
  UPDATE PKTABLE set ptest2=2 WHERE ptest2=3 and ptest1=1;
+ ERROR:  Relation 'pktable' does not exist
  -- Show PKTABLE and FKTABLE
  SELECT * from PKTABLE;
! ERROR:  Relation 'pktable' does not exist
  SELECT * from FKTABLE;
! ERROR:  RelationClearRelation: relation 144013 deleted while still in use
  -- Try to delete something that should set null
  DELETE FROM PKTABLE where ptest1=2 and ptest2=3 and ptest3=4;
+ ERROR:  Relation 'pktable' does not exist
  -- Show PKTABLE and FKTABLE
  SELECT * from PKTABLE;
! ERROR:  Relation 'pktable' does not exist
  SELECT * from FKTABLE;
! ERROR:  Relation 'fktable' does not exist
  -- Try to delete something that should not set null
  DELETE FROM PKTABLE where ptest2=5;
+ ERROR:  Relation 'pktable' does not exist
  -- Show PKTABLE and FKTABLE
  SELECT * from PKTABLE;
! ERROR:  Relation 'pktable' does not exist
  SELECT * from FKTABLE;
! ERROR:  Relation 'fktable' does not exist
  DROP TABLE FKTABLE;
! ERROR:  table "fktable" does not exist
  DROP TABLE PKTABLE;
+ ERROR:  table "pktable" does not exist
  CREATE TABLE PKTABLE (ptest1 int PRIMARY KEY);
  NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'pktable_pkey' for 
table 'pktable'
+ ERROR:  Cannot insert a duplicate key into unique index pg_class_relname_index
  CREATE TABLE FKTABLE_FAIL1 ( ftest1 int, CONSTRAINT fkfail1 FOREIGN KEY (ftest2) 
REFERENCES PKTABLE);
  NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
  ERROR:  columns referenced in foreign key constraint not found.
***************
*** 733,748 ****
  -- because varchar=int does exist
  CREATE TABLE FKTABLE (ftest1 varchar REFERENCES pktable);
  NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
  DROP TABLE FKTABLE;
- NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table 
"pktable"
- NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table 
"pktable"
  -- As should this
  CREATE TABLE FKTABLE (ftest1 varchar REFERENCES pktable(ptest1));
  NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
  DROP TABLE FKTABLE;
! NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table 
"pktable"
! NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table 
"pktable"
  DROP TABLE PKTABLE;
  -- Two columns, two tables
  CREATE TABLE PKTABLE (ptest1 int, ptest2 text, PRIMARY KEY(ptest1, ptest2));
  NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'pktable_pkey' for 
table 'pktable'
--- 696,711 ----
  -- because varchar=int does exist
  CREATE TABLE FKTABLE (ftest1 varchar REFERENCES pktable);
  NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
+ ERROR:  Relation 'fktable' already exists
  DROP TABLE FKTABLE;
  -- As should this
  CREATE TABLE FKTABLE (ftest1 varchar REFERENCES pktable(ptest1));
  NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
+ ERROR:  RelationClearRelation: relation 144234 deleted while still in use
  DROP TABLE FKTABLE;
! ERROR:  table "fktable" does not exist
  DROP TABLE PKTABLE;
+ ERROR:  table "pktable" does not exist
  -- Two columns, two tables
  CREATE TABLE PKTABLE (ptest1 int, ptest2 text, PRIMARY KEY(ptest1, ptest2));
  NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'pktable_pkey' for 
table 'pktable'

======================================================================


---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to