v48.0-0001-Trigger-the-RESTRICT-build-farm-failures-consis.patch.nocfbot
text/plain
Filename: v48.0-0001-Trigger-the-RESTRICT-build-farm-failures-consis.patch.nocfbot
Type: text/plain
Part: 0
Message:
Re: SQL:2011 application time
From b8c3bfb8617066c924f7b74f7cc5e6ad08cd4261 Mon Sep 17 00:00:00 2001
From: "Paul A. Jungwirth" <pj@illuminatedcomputing.com>
Date: Tue, 28 Jan 2025 20:11:31 -0800
Subject: [PATCH v0] Trigger the RESTRICT build farm failures consistently
---
src/backend/utils/adt/ri_triggers.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c
index 3d9985b17c2..8ebdafc9913 100644
--- a/src/backend/utils/adt/ri_triggers.c
+++ b/src/backend/utils/adt/ri_triggers.c
@@ -701,6 +701,8 @@ RI_FKey_restrict_upd(PG_FUNCTION_ARGS)
return ri_restrict((TriggerData *) fcinfo->context, false);
}
+static Oid lastCachedConstraint = InvalidOid;
+
/*
* ri_restrict -
*
@@ -753,6 +755,8 @@ ri_restrict(TriggerData *trigdata, bool is_no_action)
* query for delete and update cases)
*/
ri_BuildQueryKey(&qkey, riinfo, RI_PLAN_RESTRICT);
+ if (!is_no_action)
+ qkey.constr_id = lastCachedConstraint;
if ((qplan = ri_FetchPreparedPlan(&qkey)) == NULL)
{
@@ -884,6 +888,7 @@ ri_restrict(TriggerData *trigdata, bool is_no_action)
/* Prepare and save the plan */
qplan = ri_PlanCheck(querybuf.data, riinfo->nkeys, queryoids,
&qkey, fk_rel, pk_rel);
+ lastCachedConstraint = riinfo->constraint_id;
}
/*
--
2.42.0