Joachim Wieland wrote:
> On Wed, Feb 08, 2006 at 10:57:20PM -0500, Bruce Momjian wrote:
> > > > > > TODO has:
> 
> > > > > >     * %Disallow changing default expression of a SERIAL column
> 
> > > Sure, the "DROP SERIAL" I proposed would rather "change" the data type
> > > to int by dropping the default and would delete referring pg_depend 
> > > entries.
> > > Read it more as a kind of "drop autoincrement functionality for this
> > > column".
> 
> > > The problem I see (but you might see it differently) is that you can't 
> > > drop
> > > this autoincrement stuff without also dropping the column once you forbid 
> > > to
> > > change the default (yeah I know, changing the default is even worse and
> > > leaves you with incorrect dependencies).
> 
> > I assume an ALTER COLUMN ... TYPE INTEGER would drop the SERIAL part.
> 
> So far it doesn't because it doesn't know the difference between serial
> and int.
> 
> What about this proposal for serial columns:
> 
> - DROP DEFAULT  drops serial and removes dependencies
> - SET DEFAULT   forbidden, issues a hint to DROP DEFAULT first
> 
> 
> Is it also desired to convert an int column to a serial column?

I think the only sane solution is if a SERIAL column is changed to
INTEGER, the default and dependencies are removed.  Do you want a TODO
for that?

-- 
  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, Pennsylvania 19073

---------------------------(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

Reply via email to