|
6 | 6 | *
|
7 | 7 | *1999 Jan Wieck
|
8 | 8 | *
|
9 |
| - * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.14 2000/04/12 17:15:51 momjian Exp $ |
| 9 | + * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.14.2.1 2000/09/23 21:15:26 tgl Exp $ |
10 | 10 | *
|
11 | 11 | * ----------
|
12 | 12 | */
|
@@ -204,6 +204,13 @@ RI_FKey_check(FmgrInfo *proinfo)
|
204 | 204 | */
|
205 | 205 | fk_rel=trigdata->tg_relation;
|
206 | 206 | pk_rel=heap_openr(tgargs[RI_PK_RELNAME_ARGNO],NoLock);
|
| 207 | + |
| 208 | +if (pk_rel==NULL) |
| 209 | +{ |
| 210 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 211 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_PK_RELNAME_ARGNO]); |
| 212 | +} |
| 213 | + |
207 | 214 | if (TRIGGER_FIRED_BY_UPDATE(trigdata->tg_event))
|
208 | 215 | {
|
209 | 216 | old_row=trigdata->tg_trigtuple;
|
@@ -564,6 +571,12 @@ RI_FKey_noaction_del(FmgrInfo *proinfo)
|
564 | 571 | pk_rel=trigdata->tg_relation;
|
565 | 572 | old_row=trigdata->tg_trigtuple;
|
566 | 573 |
|
| 574 | +if (fk_rel==NULL) |
| 575 | +{ |
| 576 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 577 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 578 | +} |
| 579 | + |
567 | 580 | switch (ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]))
|
568 | 581 | {
|
569 | 582 | /* ----------
|
@@ -775,6 +788,12 @@ RI_FKey_noaction_upd(FmgrInfo *proinfo)
|
775 | 788 | new_row=trigdata->tg_newtuple;
|
776 | 789 | old_row=trigdata->tg_trigtuple;
|
777 | 790 |
|
| 791 | +if (fk_rel==NULL) |
| 792 | +{ |
| 793 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 794 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 795 | +} |
| 796 | + |
778 | 797 | switch (ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]))
|
779 | 798 | {
|
780 | 799 | /* ----------
|
@@ -990,6 +1009,12 @@ RI_FKey_cascade_del(FmgrInfo *proinfo)
|
990 | 1009 | pk_rel=trigdata->tg_relation;
|
991 | 1010 | old_row=trigdata->tg_trigtuple;
|
992 | 1011 |
|
| 1012 | +if (fk_rel==NULL) |
| 1013 | +{ |
| 1014 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 1015 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 1016 | +} |
| 1017 | + |
993 | 1018 | switch (ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]))
|
994 | 1019 | {
|
995 | 1020 | /* ----------
|
@@ -1189,6 +1214,12 @@ RI_FKey_cascade_upd(FmgrInfo *proinfo)
|
1189 | 1214 | new_row=trigdata->tg_newtuple;
|
1190 | 1215 | old_row=trigdata->tg_trigtuple;
|
1191 | 1216 |
|
| 1217 | +if (fk_rel==NULL) |
| 1218 | +{ |
| 1219 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 1220 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 1221 | +} |
| 1222 | + |
1192 | 1223 | switch (ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]))
|
1193 | 1224 | {
|
1194 | 1225 | /* ----------
|
@@ -1421,6 +1452,12 @@ RI_FKey_restrict_del(FmgrInfo *proinfo)
|
1421 | 1452 | pk_rel=trigdata->tg_relation;
|
1422 | 1453 | old_row=trigdata->tg_trigtuple;
|
1423 | 1454 |
|
| 1455 | +if (fk_rel==NULL) |
| 1456 | +{ |
| 1457 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 1458 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 1459 | +} |
| 1460 | + |
1424 | 1461 | switch (ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]))
|
1425 | 1462 | {
|
1426 | 1463 | /* ----------
|
@@ -1637,6 +1674,12 @@ RI_FKey_restrict_upd(FmgrInfo *proinfo)
|
1637 | 1674 | new_row=trigdata->tg_newtuple;
|
1638 | 1675 | old_row=trigdata->tg_trigtuple;
|
1639 | 1676 |
|
| 1677 | +if (fk_rel==NULL) |
| 1678 | +{ |
| 1679 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 1680 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 1681 | +} |
| 1682 | + |
1640 | 1683 | switch (ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]))
|
1641 | 1684 | {
|
1642 | 1685 | /* ----------
|
@@ -1852,6 +1895,12 @@ RI_FKey_setnull_del(FmgrInfo *proinfo)
|
1852 | 1895 | pk_rel=trigdata->tg_relation;
|
1853 | 1896 | old_row=trigdata->tg_trigtuple;
|
1854 | 1897 |
|
| 1898 | +if (fk_rel==NULL) |
| 1899 | +{ |
| 1900 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 1901 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 1902 | +} |
| 1903 | + |
1855 | 1904 | switch (ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]))
|
1856 | 1905 | {
|
1857 | 1906 | /* ----------
|
@@ -2064,6 +2113,12 @@ RI_FKey_setnull_upd(FmgrInfo *proinfo)
|
2064 | 2113 | old_row=trigdata->tg_trigtuple;
|
2065 | 2114 | match_type=ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]);
|
2066 | 2115 |
|
| 2116 | +if (fk_rel==NULL) |
| 2117 | +{ |
| 2118 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 2119 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 2120 | +} |
| 2121 | + |
2067 | 2122 | switch (match_type)
|
2068 | 2123 | {
|
2069 | 2124 | /* ----------
|
@@ -2317,6 +2372,12 @@ RI_FKey_setdefault_del(FmgrInfo *proinfo)
|
2317 | 2372 | pk_rel=trigdata->tg_relation;
|
2318 | 2373 | old_row=trigdata->tg_trigtuple;
|
2319 | 2374 |
|
| 2375 | +if (fk_rel==NULL) |
| 2376 | +{ |
| 2377 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 2378 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 2379 | +} |
| 2380 | + |
2320 | 2381 | switch (ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]))
|
2321 | 2382 | {
|
2322 | 2383 | /* ----------
|
@@ -2573,9 +2634,14 @@ RI_FKey_setdefault_upd(FmgrInfo *proinfo)
|
2573 | 2634 | pk_rel=trigdata->tg_relation;
|
2574 | 2635 | new_row=trigdata->tg_newtuple;
|
2575 | 2636 | old_row=trigdata->tg_trigtuple;
|
2576 |
| - |
2577 | 2637 | match_type=ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]);
|
2578 | 2638 |
|
| 2639 | +if (fk_rel==NULL) |
| 2640 | +{ |
| 2641 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 2642 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 2643 | +} |
| 2644 | + |
2579 | 2645 | switch (match_type)
|
2580 | 2646 | {
|
2581 | 2647 | /* ----------
|
@@ -2842,6 +2908,12 @@ RI_FKey_keyequal_upd(void)
|
2842 | 2908 | new_row=trigdata->tg_newtuple;
|
2843 | 2909 | old_row=trigdata->tg_trigtuple;
|
2844 | 2910 |
|
| 2911 | +if (fk_rel==NULL) |
| 2912 | +{ |
| 2913 | +elog(ERROR,"RI constraint %s cannot find table %s", |
| 2914 | +tgargs[RI_CONSTRAINT_NAME_ARGNO],tgargs[RI_FK_RELNAME_ARGNO]); |
| 2915 | +} |
| 2916 | + |
2845 | 2917 | switch (ri_DetermineMatchType(tgargs[RI_MATCH_TYPE_ARGNO]))
|
2846 | 2918 | {
|
2847 | 2919 | /* ----------
|
|