ALTER TABLE TODO items - Mailing list pgsql-hackers

From Bruce Momjian
Subject ALTER TABLE TODO items
Date
Msg-id 200405051436.i45Eaa521774@candle.pha.pa.us
Whole thread Raw
Responses Re: ALTER TABLE TODO items
Re: ALTER TABLE TODO items
Re: ALTER TABLE TODO items
List pgsql-hackers
TODO items completed:
       o -ALTER TABLE ADD COLUMN does not honor DEFAULT and non-CHECK CONSTRAINT       o -ALTER TABLE ADD COLUMN column
DEFAULTshould fill existing         rows with DEFAULT value       o -Allow ALTER TABLE to modify column lengths and
changeto binary         compatible types
 

Seems we didn't have ALTER COLUMN TYPE on the TODO list.

Do we still want this TODO?
       o Allow columns to be reordered using ALTER ... POSITION i col1 [,col2];         have SELECT * and INSERT honor
suchordering
 

I don't think so.  As I remember it was part of doing logical attribute
numbers as a way to add ALTER COLUMN TYPE, but because we now use table
recreate to implement this, it is unlikely we will ever add logical
attribute numbers (adds too much complexity to the code).

---------------------------------------------------------------------------

Tom Lane wrote:
> CVSROOT:    /cvsroot
> Module name:    pgsql-server
> Changes by:    tgl@svr1.postgresql.org    04/05/05 01:48:48
> 
> Modified files:
>     doc/src/sgml/ref: alter_table.sgml 
>     src/backend/bootstrap: bootparse.y 
>     src/backend/catalog: dependency.c heap.c index.c 
>     src/backend/commands: cluster.c indexcmds.c tablecmds.c 
>     src/backend/nodes: copyfuncs.c equalfuncs.c 
>     src/backend/parser: analyze.c gram.y 
>     src/backend/tcop: utility.c 
>     src/backend/utils/adt: ruleutils.c 
>     src/include/catalog: dependency.h heap.h index.h 
>     src/include/commands: cluster.h defrem.h tablecmds.h 
>     src/include/nodes: nodes.h parsenodes.h 
>     src/include/parser: analyze.h 
>     src/include/utils: builtins.h 
>     src/test/regress/expected: alter_table.out foreign_key.out 
>                                inherit.out 
>     src/test/regress/sql: alter_table.sql foreign_key.sql 
>                           inherit.sql 
> 
> Log message:
>     ALTER TABLE rewrite.  New cool stuff:
>     
>     * ALTER ... ADD COLUMN with defaults and NOT NULL constraints works per SQL
>     spec.  A default is implemented by rewriting the table with the new value
>     stored in each row.
>     
>     * ALTER COLUMN TYPE.  You can change a column's datatype to anything you
>     want, so long as you can specify how to convert the old value.  Rewrites
>     the table.  (Possible future improvement: optimize no-op conversions such
>     as varchar(N) to varchar(N+1).)
>     
>     * Multiple ALTER actions in a single ALTER TABLE command.  You can perform
>     any number of column additions, type changes, and constraint additions with
>     only one pass over the table contents.
>     
>     Basic documentation provided in ALTER TABLE ref page, but some more docs
>     work is needed.
>     
>     Original patch from Rod Taylor, additional work from Tom Lane.
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


pgsql-hackers by date:

Previous
From: Greg Stark
Date:
Subject: Re: Multiple Xids in PGPROC?
Next
From: Greg Stark
Date:
Subject: Re: inconsistent owners in newly created databases?