TIL, dropping a column from a table in postgres doesn’t delete it real.

instead it stays on the disk and files and is ignored and taken into account by the postgres parsers.

When a column is dropped attisdropped is set in catalog (which stores information about cols)

There is exactly 1 pg_attributes row for every column in every db.

Which means this column has been dropped and is no longer valid. A dropped column is still physically present in the table, but is ignored by the parser and so cannot be accessed via SQL.

Also: max limt for a columns for a table is 1600 in postgres. :)