Re: Bug:Create a table with 1600 fields (reaching the upper limit), then drop several fields and create new ones, but the addition failed. - Mailing list pgsql-bugs

From David G. Johnston
Subject Re: Bug:Create a table with 1600 fields (reaching the upper limit), then drop several fields and create new ones, but the addition failed.
Date
Msg-id CAKFQuwafVB0Bt0U2QUVHP-pkX-gggBm9bXkmCzfpWz7Z+f6YNQ@mail.gmail.com
Whole thread Raw
In response to Bug:Create a table with 1600 fields (reaching the upper limit), then drop several fields and create new ones, but the addition failed.  ("BO ST" <1599224321@qq.com>)
List pgsql-bugs
On Thu, May 4, 2023 at 9:09 AM BO ST <1599224321@qq.com> wrote:
Create a table with 1600 fields (reaching the upper limit), then drop several fields and create new ones, but the addition failed.

test=# alter table t1 add column co1599 int;
ALTER TABLE
test=# alter table t1 add column co1600 int;
ALTER TABLE
test=# alter table t1 add column co1601 int;
psql: ERROR:  table can have at most 1600 columns

then, I drop column co1600 and add it again, failed:

test=# alter table t1 drop column co1600;
ALTER TABLE
test=# alter table t1 add column co1600 int;
psql: ERROR:  table can have at most 1600 columns

then, I drop column co1600 again:

test=# alter table t1 drop column co1600;
psql: ERROR: column "co1600" of relation "t1" dose not exist

Implementation details - not all columns that are present on a table are user-visible.  In particular, dropped columns remain but are inaccessible in order to avoid rewriting the table.

David J.

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #17920: Incorrect memory access in array_position(s) is detected (or not)
Next
From: Stan S
Date:
Subject: Re: BUG #17914: walsenders taking up all memory