On Sat, Nov 16, 2024 at 12:10:06AM +0530, Pavan Deolasee wrote: > On Fri, Nov 15, 2024 at 11:39 PM Pavan Deolasee <pavan.deola...@gmail.com> > wrote: > > Looking more carefully at the usage of `ResultRelInfo` in the PGD code, I > > think we might also be impacted by it. At one place, we loop through the > > `es_result_relations` array and a size mismatch there will cause problems. > > Interestingly, in v14 and above, we read from `es_opened_result_relations`, > > which is a List, so it should be safe. I will try some tests on v13 to see > > if they result in crashes. But it seems quite likely by reading the code. > > > Ah, the addition of a member to `ResultRelInfo` did not happen in v12 and > v13, even though the commit was backpatched all the way to v12. Maybe we
True. > (PGD) got twice lucky :-) There could be other extensions which might be > looping through `es_result_relations` though and get impacted. Like you say, trouble with es_result_relations would be a v12/v13 phenomenon, and v12/v13 ABI didn't change. If the v12/v13 ABI had changed here, that would have moved pg_pathman from the "rebuild if using asserts" category to the "rebuild unconditionally" category, due to this code: pg_pathman:: estate->es_num_result_relations * sizeof(ResultRelInfo)); pg_pathman:: estate->es_result_relations[estate->es_num_result_relations] = *rri; pg_pathman:: if (result_rels_allocated <= estate->es_num_result_relations) pg_pathman:: return estate->es_num_result_relations++; Since the v12/v13 ABI didn't change, pg_pathman remains in the "rebuild if using asserts" category.