Обсуждение: refinit, check_foreign_key() not working?
Hi, I seem to be getting a failure in the "triggers" regression tests in the latest CVS source. I can't be 100% sure that this test worked before but now I'm seeing errors that would indicate check_foreign_key() is not working. Anyone else seeing this? Keith. --- expected/triggers.out Tue Jan 6 20:59:58 1998 +++ results/triggers.out Thu Jan 8 18:08:12 1998 @@ -40,27 +40,25 @@ QUERY: insert into fkeys2 values (40, '4', 5); QUERY: insert into fkeys2 values (50, '5', 3); QUERY: insert into fkeys2 values (70, '5', 3); -ERROR: check_fkeys2_pkey_exist: tuple references non-existing key in pkeys QUERY: insert into fkeys values (10, '1', 2); QUERY: insert into fkeys values (30, '3', 3); QUERY: insert into fkeys values (40, '4', 2); QUERY: insert into fkeys values (50, '5', 2); QUERY: insert into fkeys values (70, '5', 1); -ERROR: check_fkeys_pkey_exist: tuple references non-existing key in pkeys QUERY: insert into fkeys values (60, '6', 4); -ERROR: check_fkeys_pkey2_exist: tuple references non-existing key in fkeys2 QUERY: delete from pkeys where pkey1 = 30 and pkey2 = '3'; NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted -ERROR: check_fkeys2_fkey_restrict: tuple referenced in fkeys +NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted QUERY: delete from pkeys where pkey1 = 40 and pkey2 = '4'; NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted QUERY: update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 50 and pkey2 = '5'; NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted -ERROR: check_fkeys2_fkey_restrict: tuple referenced in fkeys +NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted QUERY: update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 10 and pkey2 = '1'; NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted +ERROR: Cannot insert a duplicate key into a unique index QUERY: DROP TABLE pkeys; QUERY: DROP TABLE fkeys; QUERY: DROP TABLE fkeys2;
> I seem to be getting a failure in the "triggers" regression tests in the > latest CVS source. I saw things like this yesterday (and they are in expected/triggers.out) but today they seem to have gone away (the orig file in my diff below is from today's distribution and the second file is today's result). The only "ERROR" messages remaining are two reasonable ones. I'll update the source tree for regression output soon (hopefully tonight). I am seeing small differences in select_views.out, but afaict these are due to changes in the backend but are still producing a valid result. One thing which is confusing is that the "<" operator for paths is currently just counting nodes on the path. Funny enough there is an old comment from the original implementors saying that it is a kludge and they will change it. I'm planning on changing this to compare the lengths of the paths instead (a bit more intuitive I think). - Tom golem$ diff triggers.out.orig triggers.out 43d42 < ERROR: check_fkeys2_pkey_exist: tuple references non-existing key in pkeys 49d47 < ERROR: check_fkeys_pkey_exist: tuple references non-existing key in pkeys 51d48 < ERROR: check_fkeys_pkey2_exist: tuple references non-existing key in fkeys2 54c51 < ERROR: check_fkeys2_fkey_restrict: tuple referenced in fkeys --- > NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted 60c57 < ERROR: check_fkeys2_fkey_restrict: tuple referenced in fkeys --- > NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted 63a61 > ERROR: Cannot insert a duplicate key into a unique index golem$ > > > I can't be 100% sure that this test worked before but now I'm seeing errors > that would indicate check_foreign_key() is not working. > > Anyone else seeing this? > > Keith. > > --- expected/triggers.out Tue Jan 6 20:59:58 1998 > +++ results/triggers.out Thu Jan 8 18:08:12 1998 > @@ -40,27 +40,25 @@ > QUERY: insert into fkeys2 values (40, '4', 5); > QUERY: insert into fkeys2 values (50, '5', 3); > QUERY: insert into fkeys2 values (70, '5', 3); > -ERROR: check_fkeys2_pkey_exist: tuple references non-existing key in pkeys > QUERY: insert into fkeys values (10, '1', 2); > QUERY: insert into fkeys values (30, '3', 3); > QUERY: insert into fkeys values (40, '4', 2); > QUERY: insert into fkeys values (50, '5', 2); > QUERY: insert into fkeys values (70, '5', 1); > -ERROR: check_fkeys_pkey_exist: tuple references non-existing key in pkeys > QUERY: insert into fkeys values (60, '6', 4); > -ERROR: check_fkeys_pkey2_exist: tuple references non-existing key in fkeys2 > QUERY: delete from pkeys where pkey1 = 30 and pkey2 = '3'; > NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted > -ERROR: check_fkeys2_fkey_restrict: tuple referenced in fkeys > +NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted > QUERY: delete from pkeys where pkey1 = 40 and pkey2 = '4'; > NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted > NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted > QUERY: update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 50 and pkey2 = > '5'; > NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted > -ERROR: check_fkeys2_fkey_restrict: tuple referenced in fkeys > +NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted > QUERY: update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 10 and pkey2 = > '1'; > NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted > NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted > +ERROR: Cannot insert a duplicate key into a unique index > QUERY: DROP TABLE pkeys; > QUERY: DROP TABLE fkeys; > QUERY: DROP TABLE fkeys2;