Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd7c310c

Browse files
committed
Minor code rearrangement to save a few cycles in RI_FKey_check when
the subject tuple is already deleted: we need not open the pk_reluntil after we check that.
1 parent548237f commitd7c310c

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

‎src/backend/utils/adt/ri_triggers.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*
1818
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
1919
*
20-
* $PostgreSQL: pgsql/src/backend/utils/adt/ri_triggers.c,v 1.86 2006/07/14 14:52:24 momjian Exp $
20+
* $PostgreSQL: pgsql/src/backend/utils/adt/ri_triggers.c,v 1.87 2006/08/21 19:15:29 tgl Exp $
2121
*
2222
* ----------
2323
*/
@@ -193,17 +193,11 @@ RI_FKey_check(PG_FUNCTION_ARGS)
193193
*/
194194
ri_CheckTrigger(fcinfo,"RI_FKey_check",RI_TRIGTYPE_INUP);
195195

196-
tgnargs=trigdata->tg_trigger->tgnargs;
197-
tgargs=trigdata->tg_trigger->tgargs;
198-
199196
/*
200-
* Get the relation descriptors of the FK and PK tables and the new tuple.
201-
*
202-
* pk_rel is opened in RowShareLock mode since that's what our eventual
203-
* SELECT FOR SHARE will get on it.
197+
* Get arguments.
204198
*/
205-
pk_rel=heap_open(trigdata->tg_trigger->tgconstrrelid,RowShareLock);
206-
fk_rel=trigdata->tg_relation;
199+
tgnargs=trigdata->tg_trigger->tgnargs;
200+
tgargs=trigdata->tg_trigger->tgargs;
207201
if (TRIGGER_FIRED_BY_UPDATE(trigdata->tg_event))
208202
{
209203
old_row=trigdata->tg_trigtuple;
@@ -224,10 +218,16 @@ RI_FKey_check(PG_FUNCTION_ARGS)
224218
*/
225219
Assert(new_row_buf!=InvalidBuffer);
226220
if (!HeapTupleSatisfiesItself(new_row->t_data,new_row_buf))
227-
{
228-
heap_close(pk_rel,RowShareLock);
229221
returnPointerGetDatum(NULL);
230-
}
222+
223+
/*
224+
* Get the relation descriptors of the FK and PK tables.
225+
*
226+
* pk_rel is opened in RowShareLock mode since that's what our eventual
227+
* SELECT FOR SHARE will get on it.
228+
*/
229+
fk_rel=trigdata->tg_relation;
230+
pk_rel=heap_open(trigdata->tg_trigger->tgconstrrelid,RowShareLock);
231231

232232
/* ----------
233233
* SQL3 11.9 <referential constraint definition>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp