Re: Fix ALTER TABLE DROP EXPRESSION with inheritance hierarchy - Mailing list pgsql-hackers

From BharatDB
Subject Re: Fix ALTER TABLE DROP EXPRESSION with inheritance hierarchy
Date
Msg-id CAAh00ER+dssk3U6hniUzUFLnYu-RDLVQVGo0TiMivNLj8EEWTA@mail.gmail.com
Whole thread Raw
In response to Re: Fix ALTER TABLE DROP EXPRESSION with inheritance hierarchy  (Kirill Reshke <reshkekirill@gmail.com>)
List pgsql-hackers

Hi all,

I tried to fix a bug in PostgreSQL where ALTER TABLE ... DROP EXPRESSION fails on multi-level inheritance hierarchies.

Bug:
When a parent table has a generated column and child/grandchild tables inherit from it, executing:

ALTER TABLE parent ALTER COLUMN d DROP EXPRESSION;

ERROR: ALTER TABLE / DROP EXPRESSION must be applied to child tables too

Fix Details:

  • Updated file: src/backend/commands/tablecmds.c

  • Function modified: ATPrepDropExpression()

  • Change: Added !recursing check to ensure proper recursion across inheritance.

    if (!recurse && !recursing &&

        find_inheritance_children(RelationGetRelid(rel), lockmode))

        ereport(ERROR,

                errcode(ERRCODE_FEATURE_NOT_SUPPORTED),

                errmsg("ALTER TABLE / DROP EXPRESSION must be applied to child tables too"),

                errhint("Do not specify the ONLY keyword."));


  • Test Query DROP TABLE IF EXISTS parent CASCADE;
    CREATE TABLE parent (a int, d int GENERATED ALWAYS AS (11) STORED);
    CREATE TABLE child () INHERITS (parent);
    CREATE TABLE grandchild () INHERITS (child);
    ALTER TABLE parent ALTER COLUMN d DROP EXPRESSION;

  • Output ALTER TABLE


On Thu, Aug 28, 2025 at 10:49 AM Kirill Reshke <reshkekirill@gmail.com> wrote:
On Thu, 28 Aug 2025 at 08:35, jian he <jian.universality@gmail.com> wrote:
>
> That means, we don't need to change the ATPrepDropExpression function
> argument for now?

Sure. V3 with this attached, and I think we can move cf entry to RFC

--
Best regards,
Kirill Reshke
Attachment

pgsql-hackers by date:

Previous
From: Daniel Gustafsson
Date:
Subject: Re: CI: Add task that runs pgindent
Next
From: Nazir Bilal Yavuz
Date:
Subject: Re: Speed up COPY FROM text/CSV parsing using SIMD