Re: Changing the column length

From: Josh Berkus <josh(at)agliodbs(dot)com>
To: "Michael Ryan S(dot) Puncia" <mpuncia(at)census(dot)gov(dot)ph>, <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Changing the column length
Date: 2004-09-01 16:32:24
Message-ID: 200409010932.24702.josh@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Michael,

> I am sorry that my question is out of line with this
> group(performance) but I need
>
> an urgent help :-( .pls .. I need to know how to change the length of the
> column.

In the future, try to provide more detail on your problem. Fortunately, I
think I know what it is.

PostgreSQL does not support changing the length of VARCHAR columns in-place
until version 8.0 (currently in beta). Instead, you need to:

1) Add a new column of the correct length;
2) Copy the data in the old column to the new column;
3) Drop the old column;
4) Rename the new column to the same name as the old column.

I realize that this approach can be quite painful if you have dependant views,
contstraints, etc. It's why we fixed it for 8.0. You can also:

1) pg_dump the database in text format;
2) edit the table definition in the pg_dump file;
3) re-load the database

While it *is* possible to change the column size by updating the system
tables, doing so is NOT recommended as it can cause unexpected database
errors.

--
Josh Berkus
Aglio Database Solutions
San Francisco

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Merlin Moncure 2004-09-01 17:53:18 Re: seqscan instead of index scan
Previous Message Chester Kustarz 2004-09-01 15:47:32 Re: seqscan instead of index scan