planner_lobotomy.patch
application/octet-stream
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: unified
| File | + | − |
|---|---|---|
| src/backend/optimizer/path/allpaths.c | 3 | 1 |
| src/backend/optimizer/path/equivclass.c | 1 | 1 |
| src/backend/optimizer/plan/createplan.c | 3 | 2 |
diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c
index 2d86da3..f4b2c8c 100644
--- a/src/backend/optimizer/path/allpaths.c
+++ b/src/backend/optimizer/path/allpaths.c
@@ -397,7 +397,9 @@ set_append_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
* We have to make child entries in the EquivalenceClass data
* structures as well.
*/
- if (rel->has_eclass_joins)
+ if (!rel->has_eclass_joins)
+ elog(LOG, "FIXME #4");
+
{
add_child_rel_equivalences(root, appinfo, rel, childrel);
childrel->has_eclass_joins = true;
diff --git a/src/backend/optimizer/path/equivclass.c b/src/backend/optimizer/path/equivclass.c
index a20ed5f..b383d13 100644
--- a/src/backend/optimizer/path/equivclass.c
+++ b/src/backend/optimizer/path/equivclass.c
@@ -1635,7 +1635,7 @@ add_child_rel_equivalences(PlannerInfo *root,
* test covers the volatile case too)
*/
if (cur_ec->ec_has_const || list_length(cur_ec->ec_members) <= 1)
- continue;
+ elog(LOG, "FIXME #3");
/* No point in searching if parent rel not mentioned in eclass */
if (!bms_is_subset(parent_rel->relids, cur_ec->ec_relids))
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index fa7b29f..ec0cc8c 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -3183,7 +3183,7 @@ make_sort_from_pathkeys(PlannerInfo *root, Plan *lefttree, List *pathkeys,
EquivalenceMember *em = (EquivalenceMember *) lfirst(j);
if (em->em_is_const || em->em_is_child)
- continue;
+ elog(LOG, "FIXME #1");
tle = tlist_member((Node *) em->em_expr, tlist);
if (tle)
@@ -3219,7 +3219,8 @@ make_sort_from_pathkeys(PlannerInfo *root, Plan *lefttree, List *pathkeys,
ListCell *k;
if (em->em_is_const || em->em_is_child)
- continue;
+ elog(LOG, "FIXME #2");
+
sortexpr = em->em_expr;
exprvars = pull_var_clause((Node *) sortexpr,
PVC_INCLUDE_PLACEHOLDERS);