Skip to content

Commit 0882951

Browse files
Jan WieckJan Wieck
authored andcommitted
Fixed concurrent visibility bug.
Jan
1 parent b7539d9 commit 0882951

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/backend/utils/adt/ri_triggers.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
* 1999 Jan Wieck
88
*
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 $
1010
*
1111
* ----------
1212
*/
@@ -231,7 +231,8 @@ RI_FKey_check (FmgrInfo *proinfo)
231231
* SELECT oid FROM <pktable>
232232
* ----------
233233
*/
234-
sprintf(querystr, "SELECT oid FROM \"%s\"",
234+
sprintf(querystr, "SELECT oid FROM \"%s\" FOR UPDATE OF \"%s\"",
235+
tgargs[RI_PK_RELNAME_ARGNO],
235236
tgargs[RI_PK_RELNAME_ARGNO]);
236237

237238
/* ----------
@@ -378,6 +379,9 @@ RI_FKey_check (FmgrInfo *proinfo)
378379
queryoids[i] = SPI_gettypeid(fk_rel->rd_att,
379380
qkey.keypair[i][RI_KEYPAIR_FK_IDX]);
380381
}
382+
sprintf(buf, " FOR UPDATE OF \"%s\"",
383+
tgargs[RI_PK_RELNAME_ARGNO]);
384+
strcat(querystr, buf);
381385

382386
/* ----------
383387
* Prepare, save and remember the new plan.
@@ -1021,6 +1025,9 @@ RI_FKey_restrict_del (FmgrInfo *proinfo)
10211025
queryoids[i] = SPI_gettypeid(pk_rel->rd_att,
10221026
qkey.keypair[i][RI_KEYPAIR_PK_IDX]);
10231027
}
1028+
sprintf(buf, " FOR UPDATE OF \"%s\"",
1029+
tgargs[RI_FK_RELNAME_ARGNO]);
1030+
strcat(querystr, buf);
10241031

10251032
/* ----------
10261033
* Prepare, save and remember the new plan.
@@ -1234,6 +1241,9 @@ RI_FKey_restrict_upd (FmgrInfo *proinfo)
12341241
queryoids[i] = SPI_gettypeid(pk_rel->rd_att,
12351242
qkey.keypair[i][RI_KEYPAIR_PK_IDX]);
12361243
}
1244+
sprintf(buf, " FOR UPDATE OF \"%s\"",
1245+
tgargs[RI_FK_RELNAME_ARGNO]);
1246+
strcat(querystr, buf);
12371247

12381248
/* ----------
12391249
* Prepare, save and remember the new plan.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy