aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/ri_triggers.c
diff options
context:
space:
mode:
authorJan Wieck <JanWieck@Yahoo.com>1999-12-08 20:41:22 +0000
committerJan Wieck <JanWieck@Yahoo.com>1999-12-08 20:41:22 +0000
commit0882951b0cdb4c6686e57121d56216cb2044f7eb (patch)
treed3df9697ffd3784505aebf3443fd587ecc3cedf5 /src/backend/utils/adt/ri_triggers.c
parentb7539d92f94fcbe7b7f16ee8edb22375123d2c67 (diff)
downloadpostgresql-0882951b0cdb4c6686e57121d56216cb2044f7eb.tar.gz
postgresql-0882951b0cdb4c6686e57121d56216cb2044f7eb.zip
Fixed concurrent visibility bug.
Jan
Diffstat (limited to 'src/backend/utils/adt/ri_triggers.c')
-rw-r--r--src/backend/utils/adt/ri_triggers.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c
index e9942a7fad4..a9b5c7cf2d0 100644
--- a/src/backend/utils/adt/ri_triggers.c
+++ b/src/backend/utils/adt/ri_triggers.c
@@ -6,7 +6,7 @@
*
* 1999 Jan Wieck
*
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.8 1999/12/07 00:13:41 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.9 1999/12/08 20:41:22 wieck Exp $
*
* ----------
*/
@@ -231,7 +231,8 @@ RI_FKey_check (FmgrInfo *proinfo)
* SELECT oid FROM <pktable>
* ----------
*/
- sprintf(querystr, "SELECT oid FROM \"%s\"",
+ sprintf(querystr, "SELECT oid FROM \"%s\" FOR UPDATE OF \"%s\"",
+ tgargs[RI_PK_RELNAME_ARGNO],
tgargs[RI_PK_RELNAME_ARGNO]);
/* ----------
@@ -378,6 +379,9 @@ RI_FKey_check (FmgrInfo *proinfo)
queryoids[i] = SPI_gettypeid(fk_rel->rd_att,
qkey.keypair[i][RI_KEYPAIR_FK_IDX]);
}
+ sprintf(buf, " FOR UPDATE OF \"%s\"",
+ tgargs[RI_PK_RELNAME_ARGNO]);
+ strcat(querystr, buf);
/* ----------
* Prepare, save and remember the new plan.
@@ -1021,6 +1025,9 @@ RI_FKey_restrict_del (FmgrInfo *proinfo)
queryoids[i] = SPI_gettypeid(pk_rel->rd_att,
qkey.keypair[i][RI_KEYPAIR_PK_IDX]);
}
+ sprintf(buf, " FOR UPDATE OF \"%s\"",
+ tgargs[RI_FK_RELNAME_ARGNO]);
+ strcat(querystr, buf);
/* ----------
* Prepare, save and remember the new plan.
@@ -1234,6 +1241,9 @@ RI_FKey_restrict_upd (FmgrInfo *proinfo)
queryoids[i] = SPI_gettypeid(pk_rel->rd_att,
qkey.keypair[i][RI_KEYPAIR_PK_IDX]);
}
+ sprintf(buf, " FOR UPDATE OF \"%s\"",
+ tgargs[RI_FK_RELNAME_ARGNO]);
+ strcat(querystr, buf);
/* ----------
* Prepare, save and remember the new plan.