Re: Alter Table vs. Rename/Create/Drop table with plpgsql functions.

From: "Mark R(dot) Dingee" <mark(dot)dingee(at)cox(dot)net>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: Alter Table vs. Rename/Create/Drop table with plpgsql functions.
Date: 2005-08-01 16:48:25
Message-ID: 200508011248.26333.mark.dingee@cox.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Robert,

If you have the luxury of taking the production db offline for a few minutes
or if you're just making changes in a test environment, this process works:

given:
create table test1 (
id integer,
txt1 text,
txt2 text
);

execute at command line:
pg_dump [dbname]> backups/renametable.sql

use your favorite text editor to change the above create table statement in
backups/renametable.sql to:

create table test1 (
id integer,
txt0 text,
txt1 text,
txt2 text
);

execute at command line:
dropdb [dbname]; createdb [dbname]; cat backups/renametable.sql | psql

it's not the most graceful of methods, but it works.

Mark

On Monday 01 August 2005 12:06 pm, Robert Perry wrote:
> Perhaps I am just just a bit anal on this but some columns I
> really like to have as the last columns of a table. (usually
> last_modby, last_modtime, type fields) Thus when I need to add a
> column to a table I am not happy just adding the column. Instead I
> go a little insane and rename the table, create the new table, copy
> the data into the new table (with any require manipulations), change
> all foreign key constraints to point to the new table, rebuild
> plpgsql functions the user that table and finally drop the old table.
>
> The problem is the second to last. (rebuild plpgsql function)
> These function are getting a little harder to find. This DB has
> hundreds if not thousands of functions and some of my table names are
> a bit common. (e.g. item) My first of all I would really like a way
> to tell postgresql to un cache all functions and let the cache
> rebuild as need be. I imagine restarting postgresql would do this,
> but in my particular situation that has its' own problems associated
> with it.
>
> Secondly does anyone know a way to insert a column instead of
> appending a column to a table. That way I could just avoid the
> entire mess.
>
> Thanks
> Robert Perry
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
> choose an index scan if your joining column's datatypes do not
> match

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Jaime Casanova 2005-08-01 17:12:46 Re: Alter Table vs. Rename/Create/Drop table with plpgsql functions.
Previous Message Robert Perry 2005-08-01 16:06:04 Alter Table vs. Rename/Create/Drop table with plpgsql functions.