ALTER TABLE - ALTER COLUMN question - Mailing list pgsql-admin

From Keaton Adams
Subject ALTER TABLE - ALTER COLUMN question
Date
Msg-id 1180471333.19986.13.camel@MXLRMT-208.corp.mxlogic.com
Whole thread Raw
Responses Re: ALTER TABLE - ALTER COLUMN question  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-admin
When I issue an alter table ..... alter column command, the table contents are copied from the old structure to the new, correct?  So I need 2x the table space available so the old and new tables can exist at the same time?  PostgreSQL doesn't use an in-place alter-table for these types of changes, correct? 

In this example the created and msg_datetime columns are currently defined as TIMESTAMP WITHOUT TIME ZONE and no default.  If the alter table for these changes is not in-place then I would want to run it as a single alter with all of the changes, such as this, instead of individual alters for each change, correct?  (Because each individual alter would require another table copy?)

ALTER TABLE my_table ALTER COLUMN created TYPE TIMESTAMP WITH TIME ZONE,
  ALTER COLUMN created SET DEFAULT   ('now'::text)::TIMESTAMP(6) WITH TIME ZONE,
  ALTER COLUMN msg_datetime TYPE TIMESTAMP WITH TIME ZONE,
  ALTER COLUMN msg_datetime SET DEFAULT ('now'::text)::TIMESTAMP(6) WITH TIME ZONE;

Thanks,

Keaton



pgsql-admin by date:

Previous
From: Marsha Ramsey
Date:
Subject: Re: Grant SELECT on all tables of a database
Next
From: Tom Lane
Date:
Subject: Re: ALTER TABLE - ALTER COLUMN question