Skip to Content.
Sympa Menu

freetds - [freetds] unixODBC 2.2.14 headers wrong?

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Sebastien FLAESCH <sf AT 4js.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: [freetds] unixODBC 2.2.14 headers wrong?
  • Date: Thu, 19 Feb 2009 10:25:38 +0100

Hi all,

I know this is maybe not the right mailing-list to talk about that,
but I think it's important for any ODBC users:

I have just downloaded unixODBC sources 2.2.14, did a configure/make
and here is what I get in the unixodbc_conf.h header file:

#ifndef HAVE_UNISTD_H
#define HAVE_UNISTD_H
#endif
#ifndef HAVE_PWD_H
#define HAVE_PWD_H
#endif
#ifndef HAVE_SYS_TYPES_H
#define HAVE_SYS_TYPES_H
#endif
#ifndef HAVE_LONG_LONG
#define HAVE_LONG_LONG
#endif
#ifndef ODBCINT64
#define ODBCINT64 <---- ????
#endif
#ifndef UODBCINT64
#define UODBCINT64 <---- ????
#endif
#ifndef SIZEOF_LONG_INT
#define SIZEOF_LONG_INT 4
#endif


Actually, ODBCINT64 and UODBCINT64 are defined, but as "nothing"...

Later, in sqltypes.h, you can see lines like:

#ifdef ODBCINT64
typedef ODBCINT64 SQLBIGINT;
#endif
#ifdef UODBCINT64
typedef UODBCINT64 SQLUBIGINT;
#endif

There are some lines in sqltypes.h to define a default for these
constants, but since unixodbc_conf.h defines them, I would rather
have expected something like this in unixodbc_conf.h:

#ifndef ODBCINT64
#define ODBCINT64 long long
#endif
#ifndef UODBCINT64
#define UODBCINT64 unsigned long long
#endif

This can be critical I think... configure script complete without
any error, but later on, when you compile your sources, you get
warning like:

/usr/include/sqltypes.h:400: error: type defaults to 'int' in declaration of
'SQLBIGINT'
/usr/include/sqltypes.h:403: error: type defaults to 'int' in declaration of
'SQLUBIGINT'

Did I miss something here?

Cheers,
Seb




Archive powered by MHonArc 2.6.24.

Top of Page