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

Attachment: wr-review.sql
Description: Binary data

Reply via email to