|
6 | 6 | * |
7 | 7 | *1999 Jan Wieck |
8 | 8 | * |
9 | | - * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.8 1999/12/07 00:13:41 wieck Exp $ |
| 9 | + * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.9 1999/12/08 20:41:22 wieck Exp $ |
10 | 10 | * |
11 | 11 | * ---------- |
12 | 12 | */ |
@@ -231,7 +231,8 @@ RI_FKey_check (FmgrInfo *proinfo) |
231 | 231 | * SELECT oid FROM <pktable> |
232 | 232 | * ---------- |
233 | 233 | */ |
234 | | -sprintf(querystr,"SELECT oid FROM \"%s\"", |
| 234 | +sprintf(querystr,"SELECT oid FROM \"%s\" FOR UPDATE OF \"%s\"", |
| 235 | +tgargs[RI_PK_RELNAME_ARGNO], |
235 | 236 | tgargs[RI_PK_RELNAME_ARGNO]); |
236 | 237 |
|
237 | 238 | /* ---------- |
@@ -378,6 +379,9 @@ RI_FKey_check (FmgrInfo *proinfo) |
378 | 379 | queryoids[i]=SPI_gettypeid(fk_rel->rd_att, |
379 | 380 | qkey.keypair[i][RI_KEYPAIR_FK_IDX]); |
380 | 381 | } |
| 382 | +sprintf(buf," FOR UPDATE OF \"%s\"", |
| 383 | +tgargs[RI_PK_RELNAME_ARGNO]); |
| 384 | +strcat(querystr,buf); |
381 | 385 |
|
382 | 386 | /* ---------- |
383 | 387 | * Prepare, save and remember the new plan. |
@@ -1021,6 +1025,9 @@ RI_FKey_restrict_del (FmgrInfo *proinfo) |
1021 | 1025 | queryoids[i]=SPI_gettypeid(pk_rel->rd_att, |
1022 | 1026 | qkey.keypair[i][RI_KEYPAIR_PK_IDX]); |
1023 | 1027 | } |
| 1028 | +sprintf(buf," FOR UPDATE OF \"%s\"", |
| 1029 | +tgargs[RI_FK_RELNAME_ARGNO]); |
| 1030 | +strcat(querystr,buf); |
1024 | 1031 |
|
1025 | 1032 | /* ---------- |
1026 | 1033 | * Prepare, save and remember the new plan. |
@@ -1234,6 +1241,9 @@ RI_FKey_restrict_upd (FmgrInfo *proinfo) |
1234 | 1241 | queryoids[i]=SPI_gettypeid(pk_rel->rd_att, |
1235 | 1242 | qkey.keypair[i][RI_KEYPAIR_PK_IDX]); |
1236 | 1243 | } |
| 1244 | +sprintf(buf," FOR UPDATE OF \"%s\"", |
| 1245 | +tgargs[RI_FK_RELNAME_ARGNO]); |
| 1246 | +strcat(querystr,buf); |
1237 | 1247 |
|
1238 | 1248 | /* ---------- |
1239 | 1249 | * Prepare, save and remember the new plan. |
|