Hi,

I was installing the ODBC driver on an alpha box.  Problem is that there 
are assumptions in the typedefs that a four byte integer is a "long 
int".  Of course, this is often an incorrect assumption.  I can fix this, 
but wanted to know how people wanted this done.  How do you handle this 
issue in the server?  Seems confingure.in and associated files is the most 
reasonable way to fix this to me.

Cheers,


-- Andrew Bell
acbell@iastate.edu
        


Wed, 19 Dec 2001 11:52:10 -0600
Andrew Bell <acbell@iastate.edu>
long ints use for 4-byte entities in ODBC
> I was installing the ODBC driver on an alpha box.  Problem is that there
> are assumptions in the typedefs that a four byte integer is a "long
> int".  Of course, this is often an incorrect assumption.  I can fix this,
> but wanted to know how people wanted this done.  How do you handle this
> issue in the server?  Seems confingure.in and associated files is the most
> reasonable way to fix this to me.

Also; which driver manager are you using? I think Nick Gorham has been 
working on this issue within unixODBC.

Peter


Wed, 19 Dec 2001 11:38:29 -0800
Peter Harvey <pharvey@codebydesign.com>
Re: long ints use for 4-byte entities in ODBC
Peter Harvey wrote:

> > I was installing the ODBC driver on an alpha box.  Problem is that there
> > are assumptions in the typedefs that a four byte integer is a "long
> > int".  Of course, this is often an incorrect assumption.  I can fix this,
> > but wanted to know how people wanted this done.  How do you handle this
> > issue in the server?  Seems confingure.in and associated files is the most
> > reasonable way to fix this to me.
>
> Also; which driver manager are you using? I think Nick Gorham has been
> working on this issue within unixODBC.
>
> Peter

AFAIK there should be nothing wrong with

typedef Int4 int

instead of the

typedef Int4 long

which is plainly wrong on 64 bit platforms.

--
Nick Gorham
Easysoft Ltd




Thu, 20 Dec 2001 11:41:43 +0000
Nick Gorham <nick@easysoft.com>
Re: long ints use for 4-byte entities in ODBC
At 11:41 AM 12/20/2001 +0000, Nick Gorham wrote:
>Peter Harvey wrote:
>
> > > I was installing the ODBC driver on an alpha box.  Problem is that there
> > > are assumptions in the typedefs that a four byte integer is a "long
> > > int".  Of course, this is often an incorrect assumption.  I can fix this,
> > > but wanted to know how people wanted this done.  How do you handle this
> > > issue in the server?  Seems confingure.in and associated files is the 
> most
> > > reasonable way to fix this to me.
> >
> > Also; which driver manager are you using? I think Nick Gorham has been
> > working on this issue within unixODBC.
> >
> > Peter
>
>AFAIK there should be nothing wrong with
>
>typedef Int4 int
>
>instead of the
>
>typedef Int4 long
>
>which is plainly wrong on 64 bit platforms.

Of course, the C standard doesn't say anything about the sizes of any of 
the int-like datatypes, it only specifies their relative sizes.  MySQL 
(don't throw stones) addresses the problem like this in configure.in:

-------------------------------------------

AC_CHECK_SIZEOF(int, 4)
if test "$ac_cv_sizeof_int" -eq 0
then
   AC_MSG_ERROR("No size for int type.")
fi
AC_CHECK_SIZEOF(long, 4)
if test "$ac_cv_sizeof_long" -eq 0
then
   AC_MSG_ERROR("No size for long type.")
fi
AC_CHECK_SIZEOF(long long, 8)
if test "$ac_cv_sizeof_long_long" -eq 0
then
   AC_MSG_ERROR("MySQL needs a long long type.")
fi
# off_t is not a builtin type
MYSQL_CHECK_SIZEOF(off_t, 4)
if test "$ac_cv_sizeof_off_t" -eq 0
then
   AC_MSG_ERROR("MySQL needs a off_t type.")
fi

-------------------------------------------

Coupled with a few SIZEOF_<datatype> checks in the headers which set up the 
typedefs for sized data, the problem is solved generically.


-- Andrew Bell
acbell@iastate.edu
        


Thu, 20 Dec 2001 10:55:56 -0600
Andrew Bell <acbell@iastate.edu>
Re: long ints use for 4-byte entities in ODBC