c type of int8 / serial8?

c type of int8 / serial8?

am 10.08.2008 19:11:14 von Joost Kraaijeveld

Hi,

I wonder what the C type of int8 / serial8 is.

If I use SQLGetTypeInfo() to get all the supported type is says that
int8 is of SQL type SQL_BIGINT. It does not show any values for serial8
but I suppose that that is a user defined type and the driver is not
required to show those (is that correct?).

If I use SQLColumns() and get the data type from that function, is says
for both int8 and serial8 that the SQL type is SQL_BIGINT. There is
however not mapping for SQL_BIGINT to a C type. There is a mapping to a
signed or unsigned 8 byte integer (SQL_C_SBIGINT or SQL_C_UBIGINT).

>From the docs
(http://www.postgresql.org/docs/8.3/interactive/datatype.htm l , table
8.1) I see that int8 is a "signed eight-byte integer". For serial8 it
only says "autoincrementing eight-byte integer". So I assume that int8
is actually SQL_C_SBIGINT, but I am unsure about serial8: is it signed
or unsigned?

Shouldn't both SQLGetTypeInfo and SQLColumns return SQL_C_SBIGINT for
int8, and/or return SQL_C_SBIGINT/SQL_C_UBIGINT for serial8,. depending
on the signed-ness?

TIA

--
Groeten,

Joost Kraaijeveld
Askesis B.V.
Molukkenstraat 14
6524NB Nijmegen
tel: 024-3888063 / 06-51855277
fax: 024-3608416
web: www.askesis.nl


--
Sent via pgsql-odbc mailing list (pgsql-odbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-odbc

Re: c type of int8 / serial8?

am 12.08.2008 04:50:55 von Hiroshi Inoue

Joost Kraaijeveld wrote:
> Hi,
>
> I wonder what the C type of int8 / serial8 is.
>
> If I use SQLGetTypeInfo() to get all the supported type is says that
> int8 is of SQL type SQL_BIGINT. It does not show any values for serial8
> but I suppose that that is a user defined type and the driver is not
> required to show those (is that correct?).

No.
serial8 is bigint not a user defined type.

xxxx=> create table tab1 (id serial8);
NOTICE: CREATE TABLE will create implicit sequence "tab1_id_seq" for
serial column "tab1.id"
CREATE TABLE
xxxx=> insert into tab1 values ('-9223372036854775808');
INSERT 0 1
xxxx=> select * from tab1;
id
----------------------
-9223372036854775808
(1 row)


--
Sent via pgsql-odbc mailing list (pgsql-odbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-odbc

Re: c type of int8 / serial8?

am 12.08.2008 06:24:00 von Joost Kraaijeveld

On Tue, 2008-08-12 at 11:50 +0900, Hiroshi Inoue wrote:
> Joost Kraaijeveld wrote:
> > Hi,
> >
> > I wonder what the C type of int8 / serial8 is.
> >
> > If I use SQLGetTypeInfo() to get all the supported type is says that
> > int8 is of SQL type SQL_BIGINT. It does not show any values for serial8
> > but I suppose that that is a user defined type and the driver is not
> > required to show those (is that correct?).
>
> No.
> serial8 is bigint not a user defined type.

In that case : why doesn't SQLGetTypeInfo return serial8 (and serial) as
a supported type?

--
Groeten,

Joost Kraaijeveld
Askesis B.V.
Molukkenstraat 14
6524NB Nijmegen
tel: 024-3888063 / 06-51855277
fax: 024-3608416
web: www.askesis.nl


--
Sent via pgsql-odbc mailing list (pgsql-odbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-odbc

Re: c type of int8 / serial8?

am 12.08.2008 07:30:29 von Hiroshi Inoue

Joost Kraaijeveld wrote:
> On Tue, 2008-08-12 at 11:50 +0900, Hiroshi Inoue wrote:
>> Joost Kraaijeveld wrote:
>>> Hi,
>>>
>>> I wonder what the C type of int8 / serial8 is.
>>>
>>> If I use SQLGetTypeInfo() to get all the supported type is says that
>>> int8 is of SQL type SQL_BIGINT. It does not show any values for serial8
>>> but I suppose that that is a user defined type and the driver is not
>>> required to show those (is that correct?).
>> No.
>> serial8 is bigint not a user defined type.
>
> In that case : why doesn't SQLGetTypeInfo return serial8 (and serial) as
> a supported type?

I'm not sure if the driver should report serial(8) as a suppooted type.
They both are kind of macro and don't exist in pg_type.

regards,
Hiroshi Inoue


--
Sent via pgsql-odbc mailing list (pgsql-odbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-odbc