Thread: sequences and pg_type

sequences and pg_type

From
pw
Date:
Hello,

I have a table with a serial type in it as a record id.
The type of this object comes back as int4 when I query via
pg_type.

How can I distinguish this counter type from just a plain int4?

Peter



Re: sequences and pg_type

From
Tom Lane
Date:
pw <p.willis@telus.net> writes:
> I have a table with a serial type in it as a record id.
> The type of this object comes back as int4 when I query via
> pg_type.
> How can I distinguish this counter type from just a plain int4?

Well, you can't, because serial isn't actually a type in Postgres.
As the manual tries to explain, serial is just a shorthand for creating
an integer column whose default is a nextval() call on a sequence.
So the way to tell is to look for a default expression of that kind.
        regards, tom lane


Re: sequences and pg_type

From
pw
Date:

I think I found a solution. Hopefully the system tables don't change 
too much in the future.I just used pg_attrdef to tell me which columns
*not* to use.

I hope that's right. It seems to work.

Peter



On Sat, 2003-09-06 at 18:19, Tom Lane wrote:
> pw <p.willis@telus.net> writes:
> > I have a table with a serial type in it as a record id.
> > The type of this object comes back as int4 when I query via
> > pg_type.
> > How can I distinguish this counter type from just a plain int4?
> 
> Well, you can't, because serial isn't actually a type in Postgres.
> As the manual tries to explain, serial is just a shorthand for
creating
> an integer column whose default is a nextval() call on a sequence.
> So the way to tell is to look for a default expression of that kind.
> 
>             regards, tom lane