Re: [Patch] Block ALTER TABLE RENAME COLUMN when column is used by property graph - Mailing list pgsql-hackers

From SATYANARAYANA NARLAPURAM
Subject Re: [Patch] Block ALTER TABLE RENAME COLUMN when column is used by property graph
Date
Msg-id CAHg+QDdYq0NNF2ueLd1Hvn2njtJL2-MONd-=6REM6_4fHRTnhQ@mail.gmail.com
Whole thread
In response to Re: [Patch] Block ALTER TABLE RENAME COLUMN when column is used by property graph  (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>)
Responses Re: [Patch] Block ALTER TABLE RENAME COLUMN when column is used by property graph
List pgsql-hackers
Hi

On Thu, Apr 23, 2026 at 12:33 AM Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> wrote:
On Thu, Apr 23, 2026 at 12:23 PM SATYANARAYANA NARLAPURAM
<satyanarlapuram@gmail.com> wrote:
>
> Hi hackers,
>
> When a table column is referenced by a property graph, the property
> name stored in pg_propgraph_property.pgpname would become stale after
> a column rename.  This caused GRAPH_TABLE queries to fail with the new
> column name ("property does not exist") while the old (dead) name
> continued to work.  pg_get_propgraphdef() would also emit confusing
> output like "new_col AS old_col".

This behaviour is inline with the behaviour of view.

#create view vt as select a from t1;
CREATE VIEW
#\d+ vt
                             View "public.vt"
 Column |  Type   | Collation | Nullable | Default | Storage | Description
--------+---------+-----------+----------+---------+---------+-------------
 a      | integer |           |          |         | plain   |
View definition:
 SELECT a
   FROM t1;

#alter table t1 rename column a TO aa;
ALTER TABLE
#\d+ vt
                             View "public.vt"
 Column |  Type   | Collation | Nullable | Default | Storage | Description
--------+---------+-----------+----------+---------+---------+-------------
 a      | integer |           |          |         | plain   |
View definition:
 SELECT aa AS a
   FROM t1;

Name of the property is derived from the name of the column it
references if the property name is not specified at the time of
creating the property. But these two are different. Changing column
name can not be expected to change the property name automatically. If
two elements have the same label, the set of property names associated
with that label is expected to be the same for those two elements as
well.

Ashutosh, should we document this or it is a well known fact and not needed? Asking in the context of Graphs, not views.


Thanks,
Satya

pgsql-hackers by date:

Previous
From: David Geier
Date:
Subject: Re: Add pg_stat_vfdcache view for VFD cache statistics
Next
From: Michael Paquier
Date:
Subject: Re: Fix memory leak in postmasterMain