v1-0001-Fix-a-use-after-problem-in-ri_LoadConstraintInfo.patch

application/octet-stream

Filename: v1-0001-Fix-a-use-after-problem-in-ri_LoadConstraintInfo.patch
Type: application/octet-stream
Part: 0
Message: Re: Eliminating SPI / SQL from some RI triggers - take 3

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: format-patch
Series: patch v1-0001
Subject: Fix a use-after-problem in ri_LoadConstraintInfo()
File+
src/backend/utils/adt/ri_triggers.c 2 2
From 85898f7825631f9a46b057ea486a766484c77f9b Mon Sep 17 00:00:00 2001
From: "Chao Li (Evan)" <lic@highgo.com>
Date: Tue, 31 Mar 2026 17:06:12 +0800
Subject: [PATCH v1] Fix a use-after-problem in ri_LoadConstraintInfo()

Author: Chao Li <lic@highgo.com>
---
 src/backend/utils/adt/ri_triggers.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c
index da7640a8005..94bb180325b 100644
--- a/src/backend/utils/adt/ri_triggers.c
+++ b/src/backend/utils/adt/ri_triggers.c
@@ -2396,8 +2396,6 @@ ri_LoadConstraintInfo(Oid constraintOid)
 						  &riinfo->period_intersect_oper);
 	}
 
-	ReleaseSysCache(tup);
-
 	/*
 	 * For efficient processing of invalidation messages below, we keep a
 	 * doubly-linked count list of all currently valid entries.
@@ -2412,6 +2410,8 @@ ri_LoadConstraintInfo(Oid constraintOid)
 
 	riinfo->fpmeta = NULL;
 
+	ReleaseSysCache(tup);
+
 	return riinfo;
 }
 
-- 
2.50.1 (Apple Git-155)