Hi Matthias, I found one remaining issue in the object-address changes in v2/v3. pg_identify_object_as_address() does not produce a value that can be passed back to pg_get_object_address():
WITH a AS (
SELECT *
FROM pg_identify_object_as_address(
'pg_class'::regclass, 'wr_multi'::regclass, -32768)
)
SELECT pg_get_object_address(type, object_names, object_args)
FROM a;
ERROR: unrecognized object type "table whole row"
The documentation describes these functions as inverses. I think we
either need to make "table whole row" an addressable object type, or use
another representation that pg_get_object_address() already understands.
This case would also make a useful addition to the object_address test.
The RTE_FUNCTION reproducer works for me with v2.
On Mon, Aug 31, 2026 at 2:39 PM Matthias van de Meent wrote:
> I think the issue can and should be solved separately from this patch
Agreed. Jian's v6 in the linked thread [0] seems to provide the prerequisite
fix. The combined ADD COLUMN/DROP COLUMN reproducer still fails on v2
alone, so that fix needs to go in first or precede this patch in the
series.
I also agree that rejecting whole-row partition keys can be a separate
change, and that checking the relfilenode change is sufficient here. I
don't suspect a separate problem in the normal index rebuild machinery.
> I think these attached reproducers were dropped somewhere along the way.
Oops, sorry, I missed the file. PFA. Nothing really useful though beyond
what you already fixed or must be fixed elsewhere.
RememberWholeRowDependentForRebuilding() is a void function, but:
+ return RememberAllDependentForRebuilding(tab, subtype, rel,
I think you can just call RememberAllDependentForRebuilding() without a
return.
Thank you!
Best regards, Andrey Borodin.
[0]
https://postgr.es/m/CACJufxFD-LGP1Ccj58d4WgGAoq-+N1fwQkA=b5u5pqf_65v...@mail.gmail.com
wr-review.sql
Description: Binary data
