Re: OSX ? - Mailing list pgsql-odbc

From Tom Lane
Subject Re: OSX ?
Date
Msg-id 5615.1132023759@sss.pgh.pa.us
Whole thread Raw
In response to OSX ?  (Horacio Samaniego <Horacio@unm.edu>)
List pgsql-odbc
Horacio Samaniego <Horacio@unm.edu> writes:
> I 've tried to compile psqlODBC from  ftp://ftp.postgresql.org/pub/
> odbc/versions/src/psqlodbc-08.01.0101.tar.gz  with no success...

Hm, it fails for me too.  I'm not sure if it's OS X's fault or
psqlodbc's fault, but the problem seems to be here:

pgapifunc.h declares PGAPI_BindParameter as taking

     SQLUINTEGER cbColDef,
     ...
     SQLINTEGER cbValueMax,
     SQLINTEGER *pcbValue);

The actual definition of PGAPI_BindParameter in bind.c uses different
typedefs:

     UDWORD cbColDef,
     ...
     SDWORD cbValueMax,
     SDWORD * pcbValue)

Darwin's /usr/include/sqltypes.h has

/*
 *  API declaration data types
 */
typedef signed int              SQLINTEGER;
typedef unsigned int            SQLUINTEGER;

/*
 *  SQL portable types for C
 */
typedef long int                SDWORD;
typedef unsigned long int       UDWORD;

and gcc is entirely within its rights to complain that "int" != "long int".

*Somebody* is not on the right page here.  I would tend to fault
psqlodbc for inconsistent declarations, but if it works on other
platforms (as it seems to) maybe there is a general convention
that SQLINTEGER == SDWORD etc?  If so, Apple didn't get the word.

            regards, tom lane

pgsql-odbc by date:

Previous
From: Horacio Samaniego
Date:
Subject: OSX ?
Next
From: "Anoop Kumar"
Date:
Subject: Re: Recommended ODBC version for compilation