Re: pgsql/doc TODO - Mailing list pgsql-committers

From Bruce Momjian
Subject Re: pgsql/doc TODO
Date
Msg-id 200207301942.g6UJgIv14886@candle.pha.pa.us
Whole thread Raw
In response to Re: pgsql/doc TODO  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: pgsql/doc TODO  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-committers
Tom Lane wrote:
> "Christopher Kings-Lynne" <chriskl@familyhealth.com.au> writes:
> >> Log message:
> >> Fix from Neil Conway:
> >>
> >> <     o ALTER TABLE ADD COLUMN column SET DEFAULT should
> >> fill existing
> > o ALTER TABLE ALTER COLUMN column SET DEFAULT
> >> should fill existing
>
> > Wha!  Altering a column default surely shouldn't change existing nulls or
> > something????  All you're saying is from now on, the default should be blah.
> > Surely it was correct in the first place?
>
> I agree with Chris --- ALTER COLUMN SET DEFAULT should *not* change any
> existing data.  (SQL92 thinks so too.)  The real error in the original
> TODO item was the reference to "SET DEFAULT", which is not the syntax
> used in ADD COLUMN.  I think the TODO item should read more like
>
>     "ALTER TABLE ADD COLUMN ... DEFAULT foo" should work
>
> Right now we get
>
> regression=# alter table foo add column bar int default 42;
> ERROR:  Adding columns with defaults is not implemented.
>         Add the column, then use ALTER TABLE SET DEFAULT.
>
> The reason this is rejected is that per spec it ought to fill all rows
> with 42, and we don't have code in place to do that.  But our ALTER
> COLUMN SET DEFAULT is not broken; it works per spec.

OK, TODO updated to:

    o ALTER TABLE ADD COLUMN column SET DEFAULT should fill
      existing rows with DEFAULT value

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

pgsql-committers by date:

Previous
From: momjian@postgresql.org (Bruce Momjian - CVS)
Date:
Subject: pgsql/doc TODO
Next
From: Bruce Momjian
Date:
Subject: Re: pgsql/src/backend/optimizer/prep/_deadcode pre ...