Hello Robert,
12.03.2026 19:15, Robert Haas wrote:
I've now committed the main patch. I think that I'm not likely to get
too much more feedback on that in this release cycle, and I judge that
more people will be sad if it doesn't get shipped this cycle than if
it does. That might turn out to be catastrophically wrong, but if many
problem reports quickly begin to emerge, it can always be reverted.
I'm hopeful my testing has been thorough enough to avoid that, but
there's a big difference between lab-testing and real world usage, so
we'll see.
I've found a crash inside pgpa_join_path_setup(), reproduced with:
echo "geqo_threshold = 2" >/tmp/extra.config
TEMP_CONFIG=/tmp/extra.config make -s check -C contrib/pg_plan_advice/
Program terminated with signal SIGSEGV, Segmentation fault.
(gdb) bt
#0 0x000070820b96d215 in pgpa_join_path_setup (root=0x5ef5a84682b8,
joinrel=0x5ef5a8497f10, outerrel=0x5ef5a8472b48,
innerrel=0x5ef5a84baeb8, jointype=JOIN_UNIQUE_INNER, extra=0x7fff08823490)
at pgpa_planner.c:602
#1 0x00005ef57df9742b in add_paths_to_joinrel (root=0x5ef5a84682b8,
joinrel=0x5ef5a8497f10, outerrel=0x5ef5a8472b48,
innerrel=0x5ef5a84baeb8, jointype=JOIN_UNIQUE_INNER, sjinfo=0x5ef5a8473c00, restrictlist=0x5ef5a8498450) at
joinpath.c:178
#2 0x00005ef57df9d178 in populate_joinrel_with_paths (root=0x5ef5a84682b8,
rel1=0x5ef5a8472b48, rel2=0x5ef5a84731f0,
joinrel=0x5ef5a8497f10, sjinfo=0x5ef5a8473c00, restrictlist=0x5ef5a8498450)
at joinrels.c:1197
#3 0x00005ef57df9c6ab in make_join_rel (root=0x5ef5a84682b8,
rel1=0x5ef5a8472b48, rel2=0x5ef5a84731f0) at joinrels.c:774
#4 0x00005ef57df700be in merge_clump (root=0x5ef5a84682b8,
clumps=0x5ef5a8497e60, new_clump=0x5ef5a8497eb0, num_gene=2,
force=false) at geqo_eval.c:259
#5 0x00005ef57df6ff3e in gimme_tree (root=0x5ef5a84682b8, tour=0x5ef5a84ba688,
num_gene=2) at geqo_eval.c:198
#6 0x00005ef57df6fe12 in geqo_eval (root=0x5ef5a84682b8, tour=0x5ef5a84ba688,
num_gene=2) at geqo_eval.c:101
#7 0x00005ef57df708fa in random_init_pool (root=0x5ef5a84682b8,
pool=0x5ef5a84c3988) at geqo_pool.c:108
#8 0x00005ef57df70439 in geqo (root=0x5ef5a84682b8, number_of_rels=2,
initial_rels=0x5ef5a84ba1f8) at geqo_main.c:127
#9 0x00005ef57df77aa3 in make_rel_from_joinlist (root=0x5ef5a84682b8,
joinlist=0x5ef5a8473b40) at allpaths.c:3902
#10 0x00005ef57df715e2 in make_one_rel (root=0x5ef5a84682b8,
joinlist=0x5ef5a8473b40) at allpaths.c:240
#11 0x00005ef57dfbede4 in query_planner (root=0x5ef5a84682b8,
qp_callback=0x5ef57dfc5ae9 <standard_qp_callback>,
qp_extra=0x7fff08823af0) at planmain.c:297
...
Could please look at this?
Best regards,
Alexander