v6-0001-Add-assertion-to-verify-derived-clause-has-consta.patch
application/octet-stream
Filename: v6-0001-Add-assertion-to-verify-derived-clause-has-consta.patch
Type: application/octet-stream
Part: 1
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 v6-0001
Subject: Add assertion to verify derived clause has constant RHS
| File | + | − |
|---|---|---|
| src/backend/optimizer/path/equivclass.c | 3 | 0 |
From d9335e86fc37dfd9d2c810ec4e03df9fa10c2b81 Mon Sep 17 00:00:00 2001
From: Amit Langote <amitlan@postgresql.org>
Date: Mon, 24 Mar 2025 21:17:46 +0900
Subject: [PATCH v6 1/3] Add assertion to verify derived clause has constant
RHS
find_derived_clause_for_ec_member() searches for a previously-derived
clause that equates a non-constant EquivalenceMember to a constant.
It is only called for EquivalenceClasses with ec_has_const set, and
with a non-constant member as the target.
The matched clause is expected to have the non-constant member on the
left-hand side and the constant EquivalenceMember on the right.
Assert that the RHS is indeed a constant, to catch violations of this
structure and enforce assumptions made by
generate_base_implied_equalities_const().
Author: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Discussion: https://postgr.es/m/CAExHW5scMxyFRqOFE6ODmBiW2rnVBEmeEcA-p4W_CyuEikURdA@mail.gmail.com
---
src/backend/optimizer/path/equivclass.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/backend/optimizer/path/equivclass.c b/src/backend/optimizer/path/equivclass.c
index 0f9ecf5ee8b..493a95d26cc 100644
--- a/src/backend/optimizer/path/equivclass.c
+++ b/src/backend/optimizer/path/equivclass.c
@@ -2664,7 +2664,10 @@ find_derived_clause_for_ec_member(EquivalenceClass *ec,
* members on the left side of derived clauses.
*/
if (rinfo->left_em == em)
+ {
+ Assert(rinfo->right_em->em_is_const);
return rinfo;
+ }
}
return NULL;
}
--
2.43.0