Hi, In create_unique_path() there's comment /* * We must ensure path struct and subsidiary data are allocated in main * planning context; otherwise GEQO memory management causes trouble. */ oldcontext = MemoryContextSwitchTo(root->planner_cxt);
pathnode = makeNode(UniquePath);
This means that when GEQO resets the memory context, the RelOptInfo for which this path is created and may be set to cheapest_unique_path goes away, the unique path lingers on in the planner context. Shouldn't we instead allocate the path in the same context as the RelOptInfo similar to mark_dummy_rel()?
Do you have test case, which can reproduce the issue you
explained above?
-- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company