Hello,
In RI_ConstraintInfo, a couple new fields say they are operators for
anyrange, but technically they could be for anymultirange instead.
Here is a patch to fix that. (It's too bad that pgindent wants to
break the lines here.)
Yours,
--
Paul ~{:-)
[email protected]
From 4d539b5477273e7094d073034e0b80206875cda8 Mon Sep 17 00:00:00 2001
From: "Paul A. Jungwirth" <[email protected]>
Date: Thu, 27 Nov 2025 12:13:55 -0800
Subject: [PATCH v1] Clarify comment about temporal foreign keys
In RI_ConstraintInfo, period_contained_by_oper and period_intersect_oper can
take either anyrange or anymultirange.
Author: Paul A. Jungwirth <[email protected]>
---
src/backend/utils/adt/ri_triggers.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c
index 059fc5ebf60..d54591fce58 100644
--- a/src/backend/utils/adt/ri_triggers.c
+++ b/src/backend/utils/adt/ri_triggers.c
@@ -126,9 +126,11 @@ typedef struct RI_ConstraintInfo
Oid pf_eq_oprs[RI_MAX_NUMKEYS]; /* equality operators (PK = FK) */
Oid pp_eq_oprs[RI_MAX_NUMKEYS]; /* equality operators (PK = PK) */
Oid ff_eq_oprs[RI_MAX_NUMKEYS]; /* equality operators (FK = FK) */
- Oid period_contained_by_oper; /* anyrange <@ anyrange */
+ Oid period_contained_by_oper; /* anyrange <@ anyrange (or
+ * multiranges) */
Oid agged_period_contained_by_oper; /* fkattr <@ range_agg(pkattr) */
- Oid period_intersect_oper; /* anyrange * anyrange */
+ Oid period_intersect_oper; /* anyrange * anyrange (or
+ * multiranges) */
dlist_node valid_link; /* Link in list of valid entries */
} RI_ConstraintInfo;
--
2.47.3