Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: OSX ?


  • From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
  • To: Horacio Samaniego <Horacio(at)unm(dot)edu>
  • Cc: pgsql-odbc(at)postgresql(dot)org
  • Subject: Re: OSX ?
  • Date: Mon, 14 Nov 2005 22:02:39 -0500
  • Message-id: <5615.1132023759@sss.pgh.pa.us> <text/plain>

Horacio Samaniego <Horacio(at)unm(dot)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


  • References:
    • OSX ?
      • From: Horacio Samaniego

Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group