| From: | Kelly Burkhart <kelly(at)tradebotsystems(dot)com> |
|---|---|
| To: | pgsql-odbc(at)postgresql(dot)org |
| Subject: | Insert SHRT_MIN fails for int2 column |
| Date: | 2005-03-07 16:15:57 |
| Message-ID: | 1110212157.3206.10.camel@krb06 |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-odbc |
When inserting SHRT_MIN into an int2 column, the odbc driver comes up
with the following SQL:
insert into dbc_test ( i16 ) values ( -32768::int2 );
This fails with an out of range error, and should be either:
insert into dbc_test ( i16 ) values ( (-32768)::int2 );
Or have the ::int2 cast removed altogether.
The ::int2 cast is added in convert.c on line 3024 (for 08.00.0005)
preceded by a comment stating it is necessary:
/* needs cast because there is no automatic downcast from
int4 constants */
CVT_APPEND_STR(qb, "::int2");
Is this really necessary? On my 7.4.2 database, the following works
just fine:
create table tst ( i16 int2 );
insert into tst ( i16 ) values ( -32768 );
insert into tst ( i16 ) values ( 32767 );
-Kelly
| From | Date | Subject | |
|---|---|---|---|
| Next Message | jross | 2005-03-07 16:54:16 | Re: Installation problem with psqlodbc-08_00_0100.zip |
| Previous Message | Max Cohan | 2005-03-07 06:25:14 | Error with latest release under .NET |