From: | Noah Misch <noah(at)leadboat(dot)com> |
---|---|
To: | Pavan Deolasee <pavan(dot)deolasee(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Aleksander Alekseev <aleksander(at)timescale(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Marco Slot <marco(dot)slot(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Christoph Berg <myon(at)debian(dot)org> |
Subject: | Re: Potential ABI breakage in upcoming minor releases |
Date: | 2024-11-15 19:03:41 |
Message-ID: | 20241115190341.c9.nmisch@google.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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(dot)deolasee(at)gmail(dot)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.
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2024-11-15 19:16:13 | Re: CSN snapshots in hot standby |
Previous Message | Shlok Kyal | 2024-11-15 18:40:45 | Re: Disallow UPDATE/DELETE on table with unpublished generated column as REPLICA IDENTITY |