From: | Matt Lilley <matt(dot)lilley(at)securitease(dot)com> |
---|---|
To: | pgsql-odbc(at)postgresql(dot)org |
Subject: | FORMAT_INTEGER is wrong on (some) 64 bit platforms? |
Date: | 2013-07-23 18:32:49 |
Message-ID: | 51EECC51.9040504@securitease.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
Hello,
I'm trying to understand the logic in psqlodbc.h where if the size of a
long int is not 8 that FORMAT_INTEGER is set to "%ld". I can't find any
definitive documentation, but I gather from various forum posts that the
size of SQL_C_LONG is always intended to be 4 bytes, independent of the
host architecture. (This exact issue was first reported 9 years ago, it
seems [1]). I don't think it should matter what size long int is on the
host: surely it should only matter what the type being passed into
SQLBindParameter is given as, since the data is packed by the caller,
not the callee. My initial instinct was just to change the macro from
"%ld" to "%d" (and similarly, "%lu" to "%u" for FORMAT_UINTEGER), but
since there is quite a bit of code in there trying to make sense of it,
I thought I'd check here.
FWIW, I got here by trying to bind an integer column to -1 and getting
an out-of-range error, just like Kelly in [1]. Changing the %ld -> %d
fixes the symptoms for me. Is there any reason this can't be fixed?
Regards,
Matt
[1] http://www.postgresql.org/message-id/4224F80D.2080103@kkcsm.net
--
_____________________________________________
Matt Lilley
Software Engineer
SecuritEase
Tel: +64 4 912-2100
Fax: +64 4 912-2101
E-mail: matt(dot)lilley(at)securitease(dot)com
Web: http://www.securitease.com
_____________________________________________
This e-mail has passed our content security scan.
It is covered by the confidentiality clauses at http://www.securitease.com/content_and_confidentiality
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2013-07-23 18:49:50 | Re: getting rid of SnapshotNow |
Previous Message | Dev Kumkar | 2013-07-23 18:28:05 | Re: Fwd: configure: error: unixODBC library "odbcinst" not found while trying to compile odbc |