I would have to agree with Craig's assessment here. serial and
bigserial are pseudotypes.
Dave Cramer
dave.cramer(at)credativ(dot)ca
http://www.credativ.ca
On Fri, Oct 12, 2012 at 3:04 AM, Craig Ringer <ringerc@ringerc.id.au> wrote:
> On 10/12/2012 02:33 PM, Thomas Kellerer wrote:
>
>> When looking at a CREATE TABLE statement in a SQL tool, users expect to
>> see "serial" there if the table was created that way.
>
>
> Applications can check the metadata and make any transformations they want
> for display. The fact remains that the data type is "integer" or
> "biginteger".
>
> JDBC isn't for the "end user", it's an API for developers, much like libpq.
>
> I maintain that presenting "serial" or "bigserial" as a *type* is just plain
> wrong. If nothing else:
>
> regress=# create table blah ( id serial primary key );
> CREATE TABLE
> regress=# PREPARE insert_blah(serial) AS INSERT INTO blah(id)
> regress-# VALUES ($1);
> ERROR: type "serial" does not exist
> LINE 1: PREPARE insert_blah(serial) AS INSERT INTO blah(id) VALUES (...
>
> Also:
>
> regress=# SELECT '1'::serial;
> ERROR: type "serial" does not exist
> LINE 1: SELECT '1'::serial;
>
> Seriously, reporting the type as "serial" is just plain wrong.
>
> --
> Craig Ringer
>
>
>
>
> --
> Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-jdbc