2009/10/30 Tom Lane <tgl@sss.pgh.pa.us>:
> Thom Brown <thombrown@gmail.com> writes:
>> I can see why you wouldn't expect it to end up sharing the same
>> sequence. If you were to manually create a sequence and wanted to use
>> it on a column, you probably wouldn't bother using the SERIAL
>> datatype, but use integer instead. So really since we know the first
>> table has a datatype of SERIAL on one of its columns, we might instead
>> wish to have it create a new implicit sequence instead of merely
>> converting it to an INTEGER datatype and adding a default constraint
>> to the same sequence as the original table.
>
> Thinking of SERIAL as a type is your first mistake ;-). It is not a
> type. It is a shorthand for making a sequence and sticking a suitable
> default on a plain integer column. So what LIKE sees is an integer
> column with a default, and it copies that.
>
Well I realise SERIAL is a convenience rather than a datatype in its
own right, but I'm surprised that LIKE can't differentiate between a
column created with integer and one created with serial. The table
continues to report a serial datatype after its creation. Is it's
reference too low-level? Could it be altered to support recognition
of serial usage?
Thom