> On Sep 9, 2025, at 11:12, jian he <[email protected]> wrote: > > hi. > I found a new way to solve this problem. > > CREATE TABLE ts (a int, c int, b int > constraint cc check((ts = ROW(1,1,1))), > constraint cc1 check((ts.a = 1))); > > > ALTER TABLE ts DROP COLUMN a CASCADE; > will drop above all indexes, constraints and policies on the table ts. > <v2-0001-ALTER-TABLE-DROP-COLUMN-drop-wholerow-referenced-object.patch>
I agree we should delete those constraints and indices on the whole row, otherwise, with cc (ts=ROW(1,1,1)), once a column is dropped, it won’t be able to insert data anymore: ``` evantest=# insert into ts values (2, 3); ERROR: new row for relation "ts" violates check constraint "cc" DETAIL: Failing row contains (2, 3). evantest=# insert into ts values (1, 1); ERROR: cannot compare record types with different numbers of columns ``` But v2 needs a rebase, I cannot apply it to master. Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/
