0001-Add-assertion-to-verify-derived-clause-has--20250402.patch
text/x-patch
Filename: 0001-Add-assertion-to-verify-derived-clause-has--20250402.patch
Type: text/x-patch
Part: 0
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 0001
Subject: Add assertion to verify derived clause has constant RHS
| File | + | − |
|---|---|---|
| src/backend/optimizer/path/equivclass.c | 3 | 0 |
From 208f231a57431bfa126dc6c41af302fd5d761132 Mon Sep 17 00:00:00 2001
From: Amit Langote <amitlan@postgresql.org>
Date: Mon, 24 Mar 2025 21:17:46 +0900
Subject: [PATCH 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 the EquivalenceMember to search for.
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;
}
base-commit: 43dca8a11624d02dde2b4bd348d77b7045c0dfbc
--
2.34.1