Clean up some variable names in ri_triggers.c

There was a mix of old_slot/oldslot, new_slot/newslot.  Since we've
changed everything from row to slot, we might as well take this
opportunity to clean this up.

Also update some more comments for the slot change.
pull/39/head
Peter Eisentraut 7 years ago
parent 554ebf6878
commit 0a271df705
  1. 70
      src/backend/utils/adt/ri_triggers.c

@ -454,10 +454,10 @@ RI_FKey_check_upd(PG_FUNCTION_ARGS)
* ri_Check_Pk_Match * ri_Check_Pk_Match
* *
* Check to see if another PK row has been created that provides the same * Check to see if another PK row has been created that provides the same
* key values as the "old_row" that's been modified or deleted in our trigger * key values as the "oldslot" that's been modified or deleted in our trigger
* event. Returns true if a match is found in the PK table. * event. Returns true if a match is found in the PK table.
* *
* We assume the caller checked that the old_row contains no NULL key values, * We assume the caller checked that the oldslot contains no NULL key values,
* since otherwise a match is impossible. * since otherwise a match is impossible.
*/ */
static bool static bool
@ -625,7 +625,7 @@ ri_restrict(TriggerData *trigdata, bool is_no_action)
const RI_ConstraintInfo *riinfo; const RI_ConstraintInfo *riinfo;
Relation fk_rel; Relation fk_rel;
Relation pk_rel; Relation pk_rel;
TupleTableSlot *old_slot; TupleTableSlot *oldslot;
RI_QueryKey qkey; RI_QueryKey qkey;
SPIPlanPtr qplan; SPIPlanPtr qplan;
@ -640,7 +640,7 @@ ri_restrict(TriggerData *trigdata, bool is_no_action)
*/ */
fk_rel = table_open(riinfo->fk_relid, RowShareLock); fk_rel = table_open(riinfo->fk_relid, RowShareLock);
pk_rel = trigdata->tg_relation; pk_rel = trigdata->tg_relation;
old_slot = trigdata->tg_trigslot; oldslot = trigdata->tg_trigslot;
/* /*
* If another PK row now exists providing the old key values, we * If another PK row now exists providing the old key values, we
@ -649,7 +649,7 @@ ri_restrict(TriggerData *trigdata, bool is_no_action)
* allow another row to be substituted. * allow another row to be substituted.
*/ */
if (is_no_action && if (is_no_action &&
ri_Check_Pk_Match(pk_rel, fk_rel, old_slot, riinfo)) ri_Check_Pk_Match(pk_rel, fk_rel, oldslot, riinfo))
{ {
table_close(fk_rel, RowShareLock); table_close(fk_rel, RowShareLock);
return PointerGetDatum(NULL); return PointerGetDatum(NULL);
@ -716,7 +716,7 @@ ri_restrict(TriggerData *trigdata, bool is_no_action)
*/ */
ri_PerformCheck(riinfo, &qkey, qplan, ri_PerformCheck(riinfo, &qkey, qplan,
fk_rel, pk_rel, fk_rel, pk_rel,
old_slot, NULL, oldslot, NULL,
true, /* must detect new rows */ true, /* must detect new rows */
SPI_OK_SELECT); SPI_OK_SELECT);
@ -741,7 +741,7 @@ RI_FKey_cascade_del(PG_FUNCTION_ARGS)
const RI_ConstraintInfo *riinfo; const RI_ConstraintInfo *riinfo;
Relation fk_rel; Relation fk_rel;
Relation pk_rel; Relation pk_rel;
TupleTableSlot *old_slot; TupleTableSlot *oldslot;
RI_QueryKey qkey; RI_QueryKey qkey;
SPIPlanPtr qplan; SPIPlanPtr qplan;
@ -759,7 +759,7 @@ RI_FKey_cascade_del(PG_FUNCTION_ARGS)
*/ */
fk_rel = table_open(riinfo->fk_relid, RowExclusiveLock); fk_rel = table_open(riinfo->fk_relid, RowExclusiveLock);
pk_rel = trigdata->tg_relation; pk_rel = trigdata->tg_relation;
old_slot = trigdata->tg_trigslot; oldslot = trigdata->tg_trigslot;
if (SPI_connect() != SPI_OK_CONNECT) if (SPI_connect() != SPI_OK_CONNECT)
elog(ERROR, "SPI_connect failed"); elog(ERROR, "SPI_connect failed");
@ -818,7 +818,7 @@ RI_FKey_cascade_del(PG_FUNCTION_ARGS)
*/ */
ri_PerformCheck(riinfo, &qkey, qplan, ri_PerformCheck(riinfo, &qkey, qplan,
fk_rel, pk_rel, fk_rel, pk_rel,
old_slot, NULL, oldslot, NULL,
true, /* must detect new rows */ true, /* must detect new rows */
SPI_OK_DELETE); SPI_OK_DELETE);
@ -843,8 +843,8 @@ RI_FKey_cascade_upd(PG_FUNCTION_ARGS)
const RI_ConstraintInfo *riinfo; const RI_ConstraintInfo *riinfo;
Relation fk_rel; Relation fk_rel;
Relation pk_rel; Relation pk_rel;
TupleTableSlot *new_slot; TupleTableSlot *newslot;
TupleTableSlot *old_slot; TupleTableSlot *oldslot;
RI_QueryKey qkey; RI_QueryKey qkey;
SPIPlanPtr qplan; SPIPlanPtr qplan;
@ -863,8 +863,8 @@ RI_FKey_cascade_upd(PG_FUNCTION_ARGS)
*/ */
fk_rel = table_open(riinfo->fk_relid, RowExclusiveLock); fk_rel = table_open(riinfo->fk_relid, RowExclusiveLock);
pk_rel = trigdata->tg_relation; pk_rel = trigdata->tg_relation;
new_slot = trigdata->tg_newslot; newslot = trigdata->tg_newslot;
old_slot = trigdata->tg_trigslot; oldslot = trigdata->tg_trigslot;
if (SPI_connect() != SPI_OK_CONNECT) if (SPI_connect() != SPI_OK_CONNECT)
elog(ERROR, "SPI_connect failed"); elog(ERROR, "SPI_connect failed");
@ -935,7 +935,7 @@ RI_FKey_cascade_upd(PG_FUNCTION_ARGS)
*/ */
ri_PerformCheck(riinfo, &qkey, qplan, ri_PerformCheck(riinfo, &qkey, qplan,
fk_rel, pk_rel, fk_rel, pk_rel,
old_slot, new_slot, oldslot, newslot,
true, /* must detect new rows */ true, /* must detect new rows */
SPI_OK_UPDATE); SPI_OK_UPDATE);
@ -989,7 +989,7 @@ ri_setnull(TriggerData *trigdata)
const RI_ConstraintInfo *riinfo; const RI_ConstraintInfo *riinfo;
Relation fk_rel; Relation fk_rel;
Relation pk_rel; Relation pk_rel;
TupleTableSlot *old_slot; TupleTableSlot *oldslot;
RI_QueryKey qkey; RI_QueryKey qkey;
SPIPlanPtr qplan; SPIPlanPtr qplan;
@ -1004,7 +1004,7 @@ ri_setnull(TriggerData *trigdata)
*/ */
fk_rel = table_open(riinfo->fk_relid, RowExclusiveLock); fk_rel = table_open(riinfo->fk_relid, RowExclusiveLock);
pk_rel = trigdata->tg_relation; pk_rel = trigdata->tg_relation;
old_slot = trigdata->tg_trigslot; oldslot = trigdata->tg_trigslot;
if (SPI_connect() != SPI_OK_CONNECT) if (SPI_connect() != SPI_OK_CONNECT)
elog(ERROR, "SPI_connect failed"); elog(ERROR, "SPI_connect failed");
@ -1075,7 +1075,7 @@ ri_setnull(TriggerData *trigdata)
*/ */
ri_PerformCheck(riinfo, &qkey, qplan, ri_PerformCheck(riinfo, &qkey, qplan,
fk_rel, pk_rel, fk_rel, pk_rel,
old_slot, NULL, oldslot, NULL,
true, /* must detect new rows */ true, /* must detect new rows */
SPI_OK_UPDATE); SPI_OK_UPDATE);
@ -1129,7 +1129,7 @@ ri_setdefault(TriggerData *trigdata)
const RI_ConstraintInfo *riinfo; const RI_ConstraintInfo *riinfo;
Relation fk_rel; Relation fk_rel;
Relation pk_rel; Relation pk_rel;
TupleTableSlot *old_slot; TupleTableSlot *oldslot;
RI_QueryKey qkey; RI_QueryKey qkey;
SPIPlanPtr qplan; SPIPlanPtr qplan;
@ -1144,7 +1144,7 @@ ri_setdefault(TriggerData *trigdata)
*/ */
fk_rel = table_open(riinfo->fk_relid, RowExclusiveLock); fk_rel = table_open(riinfo->fk_relid, RowExclusiveLock);
pk_rel = trigdata->tg_relation; pk_rel = trigdata->tg_relation;
old_slot = trigdata->tg_trigslot; oldslot = trigdata->tg_trigslot;
if (SPI_connect() != SPI_OK_CONNECT) if (SPI_connect() != SPI_OK_CONNECT)
elog(ERROR, "SPI_connect failed"); elog(ERROR, "SPI_connect failed");
@ -1215,7 +1215,7 @@ ri_setdefault(TriggerData *trigdata)
*/ */
ri_PerformCheck(riinfo, &qkey, qplan, ri_PerformCheck(riinfo, &qkey, qplan,
fk_rel, pk_rel, fk_rel, pk_rel,
old_slot, NULL, oldslot, NULL,
true, /* must detect new rows */ true, /* must detect new rows */
SPI_OK_UPDATE); SPI_OK_UPDATE);
@ -1251,11 +1251,11 @@ ri_setdefault(TriggerData *trigdata)
* trigger must be fired, false if we can prove the constraint will still * trigger must be fired, false if we can prove the constraint will still
* be satisfied. * be satisfied.
* *
* new_slot will be NULL if this is called for a delete. * newslot will be NULL if this is called for a delete.
*/ */
bool bool
RI_FKey_pk_upd_check_required(Trigger *trigger, Relation pk_rel, RI_FKey_pk_upd_check_required(Trigger *trigger, Relation pk_rel,
TupleTableSlot *old_slot, TupleTableSlot *new_slot) TupleTableSlot *oldslot, TupleTableSlot *newslot)
{ {
const RI_ConstraintInfo *riinfo; const RI_ConstraintInfo *riinfo;
@ -1265,11 +1265,11 @@ RI_FKey_pk_upd_check_required(Trigger *trigger, Relation pk_rel,
* If any old key value is NULL, the row could not have been * If any old key value is NULL, the row could not have been
* referenced by an FK row, so no check is needed. * referenced by an FK row, so no check is needed.
*/ */
if (ri_NullCheck(RelationGetDescr(pk_rel), old_slot, riinfo, true) != RI_KEYS_NONE_NULL) if (ri_NullCheck(RelationGetDescr(pk_rel), oldslot, riinfo, true) != RI_KEYS_NONE_NULL)
return false; return false;
/* If all old and new key values are equal, no check is needed */ /* If all old and new key values are equal, no check is needed */
if (new_slot && ri_KeysEqual(pk_rel, old_slot, new_slot, riinfo, true)) if (newslot && ri_KeysEqual(pk_rel, oldslot, newslot, riinfo, true))
return false; return false;
/* Else we need to fire the trigger. */ /* Else we need to fire the trigger. */
@ -1287,7 +1287,7 @@ RI_FKey_pk_upd_check_required(Trigger *trigger, Relation pk_rel,
*/ */
bool bool
RI_FKey_fk_upd_check_required(Trigger *trigger, Relation fk_rel, RI_FKey_fk_upd_check_required(Trigger *trigger, Relation fk_rel,
TupleTableSlot *old_slot, TupleTableSlot *new_slot) TupleTableSlot *oldslot, TupleTableSlot *newslot)
{ {
const RI_ConstraintInfo *riinfo; const RI_ConstraintInfo *riinfo;
int ri_nullcheck; int ri_nullcheck;
@ -1297,7 +1297,7 @@ RI_FKey_fk_upd_check_required(Trigger *trigger, Relation fk_rel,
riinfo = ri_FetchConstraintInfo(trigger, fk_rel, false); riinfo = ri_FetchConstraintInfo(trigger, fk_rel, false);
ri_nullcheck = ri_NullCheck(RelationGetDescr(fk_rel), new_slot, riinfo, false); ri_nullcheck = ri_NullCheck(RelationGetDescr(fk_rel), newslot, riinfo, false);
/* /*
* If all new key values are NULL, the row satisfies the constraint, so no * If all new key values are NULL, the row satisfies the constraint, so no
@ -1350,14 +1350,14 @@ RI_FKey_fk_upd_check_required(Trigger *trigger, Relation fk_rel,
* UPDATE check. (We could skip this if we knew the INSERT * UPDATE check. (We could skip this if we knew the INSERT
* trigger already fired, but there is no easy way to know that.) * trigger already fired, but there is no easy way to know that.)
*/ */
xminDatum = slot_getsysattr(old_slot, MinTransactionIdAttributeNumber, &isnull); xminDatum = slot_getsysattr(oldslot, MinTransactionIdAttributeNumber, &isnull);
Assert(!isnull); Assert(!isnull);
xmin = DatumGetTransactionId(xminDatum); xmin = DatumGetTransactionId(xminDatum);
if (TransactionIdIsCurrentTransactionId(xmin)) if (TransactionIdIsCurrentTransactionId(xmin))
return true; return true;
/* If all old and new key values are equal, no check is needed */ /* If all old and new key values are equal, no check is needed */
if (ri_KeysEqual(fk_rel, old_slot, new_slot, riinfo, false)) if (ri_KeysEqual(fk_rel, oldslot, newslot, riinfo, false))
return false; return false;
/* Else we need to fire the trigger. */ /* Else we need to fire the trigger. */
@ -2047,7 +2047,7 @@ static bool
ri_PerformCheck(const RI_ConstraintInfo *riinfo, ri_PerformCheck(const RI_ConstraintInfo *riinfo,
RI_QueryKey *qkey, SPIPlanPtr qplan, RI_QueryKey *qkey, SPIPlanPtr qplan,
Relation fk_rel, Relation pk_rel, Relation fk_rel, Relation pk_rel,
TupleTableSlot *old_slot, TupleTableSlot *new_slot, TupleTableSlot *oldslot, TupleTableSlot *newslot,
bool detectNewRows, int expect_OK) bool detectNewRows, int expect_OK)
{ {
Relation query_rel, Relation query_rel,
@ -2090,17 +2090,17 @@ ri_PerformCheck(const RI_ConstraintInfo *riinfo,
} }
/* Extract the parameters to be passed into the query */ /* Extract the parameters to be passed into the query */
if (new_slot) if (newslot)
{ {
ri_ExtractValues(source_rel, new_slot, riinfo, source_is_pk, ri_ExtractValues(source_rel, newslot, riinfo, source_is_pk,
vals, nulls); vals, nulls);
if (old_slot) if (oldslot)
ri_ExtractValues(source_rel, old_slot, riinfo, source_is_pk, ri_ExtractValues(source_rel, oldslot, riinfo, source_is_pk,
vals + riinfo->nkeys, nulls + riinfo->nkeys); vals + riinfo->nkeys, nulls + riinfo->nkeys);
} }
else else
{ {
ri_ExtractValues(source_rel, old_slot, riinfo, source_is_pk, ri_ExtractValues(source_rel, oldslot, riinfo, source_is_pk,
vals, nulls); vals, nulls);
} }
@ -2170,7 +2170,7 @@ ri_PerformCheck(const RI_ConstraintInfo *riinfo,
(SPI_processed == 0) == (qkey->constr_queryno == RI_PLAN_CHECK_LOOKUPPK)) (SPI_processed == 0) == (qkey->constr_queryno == RI_PLAN_CHECK_LOOKUPPK))
ri_ReportViolation(riinfo, ri_ReportViolation(riinfo,
pk_rel, fk_rel, pk_rel, fk_rel,
new_slot ? new_slot : old_slot, newslot ? newslot : oldslot,
NULL, NULL,
qkey->constr_queryno); qkey->constr_queryno);

Loading…
Cancel
Save