? GNUmakefile ? config.log ? config.status ? patch.txt ? contrib/spi/.deps ? src/Makefile.global ? src/backend/postgres ? src/backend/access/common/.deps ? src/backend/access/gist/.deps ? src/backend/access/hash/.deps ? src/backend/access/heap/.deps ? src/backend/access/index/.deps ? src/backend/access/nbtree/.deps ? src/backend/access/rtree/.deps ? src/backend/access/transam/.deps ? src/backend/bootstrap/.deps ? src/backend/catalog/.deps ? src/backend/catalog/postgres.bki ? src/backend/catalog/postgres.description ? src/backend/commands/.deps ? src/backend/executor/.deps ? src/backend/lib/.deps ? src/backend/libpq/.deps ? src/backend/main/.deps ? src/backend/nodes/.deps ? src/backend/optimizer/geqo/.deps ? src/backend/optimizer/path/.deps ? src/backend/optimizer/plan/.deps ? src/backend/optimizer/prep/.deps ? src/backend/optimizer/util/.deps ? src/backend/parser/.deps ? src/backend/port/.deps ? src/backend/postmaster/.deps ? src/backend/regex/.deps ? src/backend/rewrite/.deps ? src/backend/storage/buffer/.deps ? src/backend/storage/file/.deps ? src/backend/storage/freespace/.deps ? src/backend/storage/ipc/.deps ? src/backend/storage/large_object/.deps ? src/backend/storage/lmgr/.deps ? src/backend/storage/page/.deps ? src/backend/storage/smgr/.deps ? src/backend/tcop/.deps ? src/backend/utils/.deps ? src/backend/utils/adt/.deps ? src/backend/utils/cache/.deps ? src/backend/utils/error/.deps ? src/backend/utils/fmgr/.deps ? src/backend/utils/hash/.deps ? src/backend/utils/init/.deps ? src/backend/utils/mb/.deps ? src/backend/utils/mb/conversion_procs/conversion_create.sql ? src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/.deps ? src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/libeuc_jp_and_sjis.so.0 ? src/backend/utils/mb/conversion_procs/euc_tw_and_big5/.deps ? src/backend/utils/mb/conversion_procs/euc_tw_and_big5/libeuc_tw_and_big5.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_ascii/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_ascii/libutf8_and_ascii.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_big5/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_big5/libutf8_and_big5.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/libutf8_and_euc_cn.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/libutf8_and_euc_jp.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/libutf8_and_euc_kr.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/libutf8_and_euc_tw.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_gb18030/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_gb18030/libutf8_and_gb18030.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_gbk/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_gbk/libutf8_and_gbk.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859/libutf8_and_iso8859.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/libutf8_and_iso8859_1.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_johab/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_johab/libutf8_and_johab.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_sjis/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_sjis/libutf8_and_sjis.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_tcvn/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_tcvn/libutf8_and_tcvn.so.0 ? src/backend/utils/mb/conversion_procs/utf8_and_uhc/.deps ? src/backend/utils/mb/conversion_procs/utf8_and_uhc/libutf8_and_uhc.so.0 ? src/backend/utils/misc/.deps ? src/backend/utils/mmgr/.deps ? src/backend/utils/sort/.deps ? src/backend/utils/time/.deps ? src/bin/initdb/initdb ? src/bin/initlocation/initlocation ? src/bin/ipcclean/ipcclean ? src/bin/pg_config/pg_config ? src/bin/pg_ctl/pg_ctl ? src/bin/pg_dump/.deps ? src/bin/pg_dump/pg_dump ? src/bin/pg_dump/pg_dumpall ? src/bin/pg_dump/pg_restore ? src/bin/pg_encoding/.deps ? src/bin/pg_encoding/pg_encoding ? src/bin/pg_id/.deps ? src/bin/pg_id/pg_id ? src/bin/psql/.deps ? src/bin/psql/psql ? src/bin/scripts/createlang ? src/include/pg_config.h ? src/include/stamp-h ? src/interfaces/ecpg/lib/.deps ? src/interfaces/ecpg/lib/libecpg.so.3 ? src/interfaces/ecpg/preproc/.deps ? src/interfaces/ecpg/preproc/ecpg ? src/interfaces/libpgeasy/.deps ? src/interfaces/libpgeasy/libpgeasy.so.2 ? src/interfaces/libpq/.deps ? src/interfaces/libpq/libpq.so.2 ? src/pl/plpgsql/src/.deps ? src/pl/plpgsql/src/libplpgsql.so.1 ? src/test/regress/.deps ? src/test/regress/log ? src/test/regress/pg_regress ? src/test/regress/regression.diffs ? src/test/regress/regression.out ? src/test/regress/results ? src/test/regress/tmp_check ? src/test/regress/expected/constraints.out ? src/test/regress/expected/copy.out ? src/test/regress/expected/create_function_1.out ? src/test/regress/expected/create_function_2.out ? src/test/regress/expected/misc.out ? src/test/regress/sql/constraints.sql ? src/test/regress/sql/copy.sql ? src/test/regress/sql/create_function_1.sql ? src/test/regress/sql/create_function_2.sql ? src/test/regress/sql/misc.sql Index: src/backend/executor/execMain.c =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/backend/executor/execMain.c,v retrieving revision 1.171 diff -c -r1.171 execMain.c *** src/backend/executor/execMain.c 2002/07/20 05:16:57 1.171 --- src/backend/executor/execMain.c 2002/08/03 15:04:43 *************** *** 1582,1589 **** char *failed; if ((failed = ExecRelCheck(resultRelInfo, slot, estate)) != NULL) ! elog(ERROR, "%s: rejected due to CHECK constraint %s", ! caller, failed); } } --- 1582,1589 ---- char *failed; if ((failed = ExecRelCheck(resultRelInfo, slot, estate)) != NULL) ! elog(ERROR, "%s: rejected due to CHECK constraint \"%s\" on \"%s\"", ! caller, failed, RelationGetRelationName(rel)); } } Index: src/test/regress/expected/alter_table.out =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/test/regress/expected/alter_table.out,v retrieving revision 1.46 diff -c -r1.46 alter_table.out *** src/test/regress/expected/alter_table.out 2002/08/02 18:15:09 1.46 --- src/test/regress/expected/alter_table.out 2002/08/03 15:04:45 *************** *** 409,415 **** alter table atacc1 add constraint atacc_test1 check (test>3); -- should fail insert into atacc1 (test) values (2); ! ERROR: ExecInsert: rejected due to CHECK constraint atacc_test1 -- should succeed insert into atacc1 (test) values (4); drop table atacc1; --- 409,415 ---- alter table atacc1 add constraint atacc_test1 check (test>3); -- should fail insert into atacc1 (test) values (2); ! ERROR: ExecInsert: rejected due to CHECK constraint "atacc_test1" on "atacc1" -- should succeed insert into atacc1 (test) values (4); drop table atacc1; *************** *** 434,440 **** alter table atacc1 add constraint atacc_test1 check (test+test2test); -- should fail for $2 insert into atacc1 (test2, test) values (3, 4); ! ERROR: ExecInsert: rejected due to CHECK constraint $1 drop table atacc1; -- inheritance related tests create table atacc1 (test int); --- 443,449 ---- alter table atacc1 add check (test2>test); -- should fail for $2 insert into atacc1 (test2, test) values (3, 4); ! ERROR: ExecInsert: rejected due to CHECK constraint "$1" on "atacc1" drop table atacc1; -- inheritance related tests create table atacc1 (test int); *************** *** 452,462 **** alter table atacc2 add constraint foo check (test2>0); -- fail and then succeed on atacc2 insert into atacc2 (test2) values (-3); ! ERROR: ExecInsert: rejected due to CHECK constraint foo insert into atacc2 (test2) values (3); -- fail and then succeed on atacc3 insert into atacc3 (test2) values (-3); ! ERROR: ExecInsert: rejected due to CHECK constraint foo insert into atacc3 (test2) values (3); drop table atacc3; drop table atacc2; --- 452,462 ---- alter table atacc2 add constraint foo check (test2>0); -- fail and then succeed on atacc2 insert into atacc2 (test2) values (-3); ! ERROR: ExecInsert: rejected due to CHECK constraint "foo" on "atacc2" insert into atacc2 (test2) values (3); -- fail and then succeed on atacc3 insert into atacc3 (test2) values (-3); ! ERROR: ExecInsert: rejected due to CHECK constraint "foo" on "atacc3" insert into atacc3 (test2) values (3); drop table atacc3; drop table atacc2; *************** *** 468,474 **** alter table only atacc2 add constraint foo check (test2>0); -- fail and then succeed on atacc2 insert into atacc2 (test2) values (-3); ! ERROR: ExecInsert: rejected due to CHECK constraint foo insert into atacc2 (test2) values (3); -- both succeed on atacc3 insert into atacc3 (test2) values (-3); --- 468,474 ---- alter table only atacc2 add constraint foo check (test2>0); -- fail and then succeed on atacc2 insert into atacc2 (test2) values (-3); ! ERROR: ExecInsert: rejected due to CHECK constraint "foo" on "atacc2" insert into atacc2 (test2) values (3); -- both succeed on atacc3 insert into atacc3 (test2) values (-3); Index: src/test/regress/output/constraints.source =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/test/regress/output/constraints.source,v retrieving revision 1.28 diff -c -r1.28 constraints.source *** src/test/regress/output/constraints.source 2002/07/12 18:43:19 1.28 --- src/test/regress/output/constraints.source 2002/08/03 15:04:45 *************** *** 62,73 **** INSERT INTO CHECK_TBL VALUES (5); INSERT INTO CHECK_TBL VALUES (4); INSERT INTO CHECK_TBL VALUES (3); ! ERROR: ExecInsert: rejected due to CHECK constraint check_con INSERT INTO CHECK_TBL VALUES (2); ! ERROR: ExecInsert: rejected due to CHECK constraint check_con INSERT INTO CHECK_TBL VALUES (6); INSERT INTO CHECK_TBL VALUES (1); ! ERROR: ExecInsert: rejected due to CHECK constraint check_con SELECT '' AS three, * FROM CHECK_TBL; three | x -------+--- --- 62,73 ---- INSERT INTO CHECK_TBL VALUES (5); INSERT INTO CHECK_TBL VALUES (4); INSERT INTO CHECK_TBL VALUES (3); ! ERROR: ExecInsert: rejected due to CHECK constraint "check_con" on "check_tbl" INSERT INTO CHECK_TBL VALUES (2); ! ERROR: ExecInsert: rejected due to CHECK constraint "check_con" on "check_tbl" INSERT INTO CHECK_TBL VALUES (6); INSERT INTO CHECK_TBL VALUES (1); ! ERROR: ExecInsert: rejected due to CHECK constraint "check_con" on "check_tbl" SELECT '' AS three, * FROM CHECK_TBL; three | x -------+--- *************** *** 82,94 **** CHECK (x > 3 and y <> 'check failed' and z < 8)); INSERT INTO CHECK2_TBL VALUES (4, 'check ok', -2); INSERT INTO CHECK2_TBL VALUES (1, 'x check failed', -2); ! ERROR: ExecInsert: rejected due to CHECK constraint sequence_con INSERT INTO CHECK2_TBL VALUES (5, 'z check failed', 10); ! ERROR: ExecInsert: rejected due to CHECK constraint sequence_con INSERT INTO CHECK2_TBL VALUES (0, 'check failed', -2); ! ERROR: ExecInsert: rejected due to CHECK constraint sequence_con INSERT INTO CHECK2_TBL VALUES (6, 'check failed', 11); ! ERROR: ExecInsert: rejected due to CHECK constraint sequence_con INSERT INTO CHECK2_TBL VALUES (7, 'check ok', 7); SELECT '' AS two, * from CHECK2_TBL; two | x | y | z --- 82,94 ---- CHECK (x > 3 and y <> 'check failed' and z < 8)); INSERT INTO CHECK2_TBL VALUES (4, 'check ok', -2); INSERT INTO CHECK2_TBL VALUES (1, 'x check failed', -2); ! ERROR: ExecInsert: rejected due to CHECK constraint "sequence_con" on "check2_tbl" INSERT INTO CHECK2_TBL VALUES (5, 'z check failed', 10); ! ERROR: ExecInsert: rejected due to CHECK constraint "sequence_con" on "check2_tbl" INSERT INTO CHECK2_TBL VALUES (0, 'check failed', -2); ! ERROR: ExecInsert: rejected due to CHECK constraint "sequence_con" on "check2_tbl" INSERT INTO CHECK2_TBL VALUES (6, 'check failed', 11); ! ERROR: ExecInsert: rejected due to CHECK constraint "sequence_con" on "check2_tbl" INSERT INTO CHECK2_TBL VALUES (7, 'check ok', 7); SELECT '' AS two, * from CHECK2_TBL; two | x | y | z *************** *** 107,113 **** CONSTRAINT INSERT_CON CHECK (x >= 3 AND y <> 'check failed' AND x < 8), CHECK (x + z = 0)); INSERT INTO INSERT_TBL(x,z) VALUES (2, -2); ! ERROR: ExecInsert: rejected due to CHECK constraint insert_con SELECT '' AS zero, * FROM INSERT_TBL; zero | x | y | z ------+---+---+--- --- 107,113 ---- CONSTRAINT INSERT_CON CHECK (x >= 3 AND y <> 'check failed' AND x < 8), CHECK (x + z = 0)); INSERT INTO INSERT_TBL(x,z) VALUES (2, -2); ! ERROR: ExecInsert: rejected due to CHECK constraint "insert_con" on "insert_tbl" SELECT '' AS zero, * FROM INSERT_TBL; zero | x | y | z ------+---+---+--- *************** *** 120,132 **** (1 row) INSERT INTO INSERT_TBL(y) VALUES ('Y'); ! ERROR: ExecInsert: rejected due to CHECK constraint insert_con INSERT INTO INSERT_TBL(y) VALUES ('Y'); INSERT INTO INSERT_TBL(x,z) VALUES (1, -2); ! ERROR: ExecInsert: rejected due to CHECK constraint $1 INSERT INTO INSERT_TBL(z,x) VALUES (-7, 7); INSERT INTO INSERT_TBL VALUES (5, 'check failed', -5); ! ERROR: ExecInsert: rejected due to CHECK constraint insert_con INSERT INTO INSERT_TBL VALUES (7, '!check failed', -7); INSERT INTO INSERT_TBL(y) VALUES ('-!NULL-'); SELECT '' AS four, * FROM INSERT_TBL; --- 120,132 ---- (1 row) INSERT INTO INSERT_TBL(y) VALUES ('Y'); ! ERROR: ExecInsert: rejected due to CHECK constraint "insert_con" on "insert_tbl" INSERT INTO INSERT_TBL(y) VALUES ('Y'); INSERT INTO INSERT_TBL(x,z) VALUES (1, -2); ! ERROR: ExecInsert: rejected due to CHECK constraint "$1" on "insert_tbl" INSERT INTO INSERT_TBL(z,x) VALUES (-7, 7); INSERT INTO INSERT_TBL VALUES (5, 'check failed', -5); ! ERROR: ExecInsert: rejected due to CHECK constraint "insert_con" on "insert_tbl" INSERT INTO INSERT_TBL VALUES (7, '!check failed', -7); INSERT INTO INSERT_TBL(y) VALUES ('-!NULL-'); SELECT '' AS four, * FROM INSERT_TBL; *************** *** 139,147 **** (4 rows) INSERT INTO INSERT_TBL(y,z) VALUES ('check failed', 4); ! ERROR: ExecInsert: rejected due to CHECK constraint $1 INSERT INTO INSERT_TBL(x,y) VALUES (5, 'check failed'); ! ERROR: ExecInsert: rejected due to CHECK constraint insert_con INSERT INTO INSERT_TBL(x,y) VALUES (5, '!check failed'); INSERT INTO INSERT_TBL(y) VALUES ('-!NULL-'); SELECT '' AS six, * FROM INSERT_TBL; --- 139,147 ---- (4 rows) INSERT INTO INSERT_TBL(y,z) VALUES ('check failed', 4); ! ERROR: ExecInsert: rejected due to CHECK constraint "$1" on "insert_tbl" INSERT INTO INSERT_TBL(x,y) VALUES (5, 'check failed'); ! ERROR: ExecInsert: rejected due to CHECK constraint "insert_con" on "insert_tbl" INSERT INTO INSERT_TBL(x,y) VALUES (5, '!check failed'); INSERT INTO INSERT_TBL(y) VALUES ('-!NULL-'); SELECT '' AS six, * FROM INSERT_TBL; *************** *** 162,168 **** (1 row) INSERT INTO INSERT_TBL(y) VALUES ('Y'); ! ERROR: ExecInsert: rejected due to CHECK constraint insert_con SELECT 'eight' AS one, currval('insert_seq'); one | currval -------+--------- --- 162,168 ---- (1 row) INSERT INTO INSERT_TBL(y) VALUES ('Y'); ! ERROR: ExecInsert: rejected due to CHECK constraint "insert_con" on "insert_tbl" SELECT 'eight' AS one, currval('insert_seq'); one | currval -------+--------- *************** *** 193,203 **** INHERITS (INSERT_TBL); INSERT INTO INSERT_CHILD(x,z,cy) VALUES (7,-7,11); INSERT INTO INSERT_CHILD(x,z,cy) VALUES (7,-7,6); ! ERROR: ExecInsert: rejected due to CHECK constraint insert_child_cy INSERT INTO INSERT_CHILD(x,z,cy) VALUES (6,-7,7); ! ERROR: ExecInsert: rejected due to CHECK constraint $1 INSERT INTO INSERT_CHILD(x,y,z,cy) VALUES (6,'check failed',-6,7); ! ERROR: ExecInsert: rejected due to CHECK constraint insert_con SELECT * FROM INSERT_CHILD; x | y | z | cx | cy ---+--------+----+----+---- --- 193,203 ---- INHERITS (INSERT_TBL); INSERT INTO INSERT_CHILD(x,z,cy) VALUES (7,-7,11); INSERT INTO INSERT_CHILD(x,z,cy) VALUES (7,-7,6); ! ERROR: ExecInsert: rejected due to CHECK constraint "insert_child_cy" on "insert_child" INSERT INTO INSERT_CHILD(x,z,cy) VALUES (6,-7,7); ! ERROR: ExecInsert: rejected due to CHECK constraint "$1" on "insert_child" INSERT INTO INSERT_CHILD(x,y,z,cy) VALUES (6,'check failed',-6,7); ! ERROR: ExecInsert: rejected due to CHECK constraint "insert_con" on "insert_child" SELECT * FROM INSERT_CHILD; x | y | z | cx | cy ---+--------+----+----+---- *************** *** 227,233 **** INSERT INTO INSERT_TBL SELECT * FROM tmp WHERE yd = 'try again'; INSERT INTO INSERT_TBL(y,z) SELECT yd, -7 FROM tmp WHERE yd = 'try again'; INSERT INTO INSERT_TBL(y,z) SELECT yd, -8 FROM tmp WHERE yd = 'try again'; ! ERROR: ExecInsert: rejected due to CHECK constraint insert_con SELECT '' AS four, * FROM INSERT_TBL; four | x | y | z ------+---+---------------+---- --- 227,233 ---- INSERT INTO INSERT_TBL SELECT * FROM tmp WHERE yd = 'try again'; INSERT INTO INSERT_TBL(y,z) SELECT yd, -7 FROM tmp WHERE yd = 'try again'; INSERT INTO INSERT_TBL(y,z) SELECT yd, -8 FROM tmp WHERE yd = 'try again'; ! ERROR: ExecInsert: rejected due to CHECK constraint "insert_con" on "insert_tbl" SELECT '' AS four, * FROM INSERT_TBL; four | x | y | z ------+---+---------------+---- *************** *** 246,252 **** UPDATE INSERT_TBL SET x = 6 WHERE x = 6; UPDATE INSERT_TBL SET x = -z, z = -x; UPDATE INSERT_TBL SET x = z, z = x; ! ERROR: ExecUpdate: rejected due to CHECK constraint insert_con SELECT * FROM INSERT_TBL; x | y | z ---+---------------+---- --- 246,252 ---- UPDATE INSERT_TBL SET x = 6 WHERE x = 6; UPDATE INSERT_TBL SET x = -z, z = -x; UPDATE INSERT_TBL SET x = z, z = x; ! ERROR: ExecUpdate: rejected due to CHECK constraint "insert_con" on "insert_tbl" SELECT * FROM INSERT_TBL; x | y | z ---+---------------+---- *************** *** 273,279 **** (2 rows) COPY COPY_TBL FROM '@abs_srcdir@/data/constrf.data'; ! ERROR: copy: line 2, CopyFrom: rejected due to CHECK constraint copy_con SELECT * FROM COPY_TBL; x | y | z ---+---------------+--- --- 273,279 ---- (2 rows) COPY COPY_TBL FROM '@abs_srcdir@/data/constrf.data'; ! ERROR: copy: line 2, CopyFrom: rejected due to CHECK constraint "copy_con" on "copy_tbl" SELECT * FROM COPY_TBL; x | y | z ---+---------------+---