| From: | Kelly Burkhart <kelly(at)tradebotsystems(dot)com> |
|---|---|
| To: | pgsql-odbc(at)postgresql(dot)org |
| Subject: | Re: Insert SHRT_MIN fails for int2 column |
| Date: | 2005-03-07 18:42:34 |
| Message-ID: | 1110220954.3206.20.camel@krb06 |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-odbc |
On Mon, 2005-03-07 at 11:44, Tom Lane wrote:
> Kelly Burkhart <kelly(at)tradebotsystems(dot)com> writes:
> > 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 );
>
> In that context the down-conversion will work because it's considered an
> assignment coercion. However there are other cases where an explicit
> cast is indeed needed, for instance
>
> select foo(42::int2)
>
> where foo is declared as taking an int2 parameter.
>
> The best thing would be to leave the cast in place but add parentheses
> around the value being casted.
Attached is a patch to resolve this. BTW, is it appropriate for me to
send pgsqlodbc patches to this list? Or should I send all patches to
psql-patches?
-K
| Attachment | Content-Type | Size |
|---|---|---|
| psqlodbc_castshort.patch | text/x-patch | 660 bytes |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Richard Huxton | 2005-03-08 12:25:11 | Re: Unable to connect to PostgreSQL 8.0 with any driver... |
| Previous Message | jross | 2005-03-07 18:17:23 | Unable to connect to PostgreSQL 8.0 with any driver... |