Re: Noah Misch > Based on a grep of PGXN code, here are some or all of the modules that react > to sizeof(ResultRelInfo): > > $ grepx -r 'lloc.*ResultRelInfo' | tee /tmp/1 | sed 's/-[^:]*/:/'|sort -u > apacheage:: resultRelInfo = palloc(sizeof(ResultRelInfo));
Confirmed, crashing: AGE for 14..17 (12..13 seem fine) > citus:: resultRelInfo = makeNode(ResultRelInfo); > citus:: ResultRelInfo *resultRelInfo = makeNode(ResultRelInfo); > pg_bulkload:: checker->resultRelInfo = makeNode(ResultRelInfo); > pg_bulkload:: self->relinfo = makeNode(ResultRelInfo); > pg_pathman:: child_result_rel_info = makeNode(ResultRelInfo); > pg_pathman:: parent_result_rel = makeNode(ResultRelInfo); > pg_pathman:: parent_rri = makeNode(ResultRelInfo); > pg_pathman:: part_result_rel_info = makeNode(ResultRelInfo); > vops:: resultRelInfo = makeNode(ResultRelInfo); (These are not on apt.pg.o) I've also tested other packages where ResultRelInfo appears in the source, but they all passed the tests (most have decent test but a few have not): Bad: postgresql-16-age timescaledb Good: hypopg libpg-query pglast pglogical pgpool2 pgsql-ogr-fdw pg-squeeze postgresql-mysql-fdw (impossible to test sanely because mysql/mariadb take turns at being the default, and in some environments just don't start) > I don't know whether we should make a new release, amend the release > announcement to call for extension rebuilds, or just stop here. > https://wiki.postgresql.org/wiki/Committing_checklist#Maintaining_ABI_compatibility_while_backpatching > mentions the problem, but neither it nor the new standard at > postgr.es/c/e54a42a say how reticent we'll be to add to the end of a struct on > which extensions do sizeof. I'd say the ship has sailed, a new release would now break things the other way round. Christoph