From 3fe3acb844995e44ac0eba9d06dc70061e769145 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 9 Jun 2000 16:03:09 +0000 Subject: [PATCH] I have made the couple of mods required to make the odbc driver with postgres build and use unixODBC (http://www.unixodbc.org) This patch was applied against the postgresql-7.0beta1 build Any problems let me know. Nick Gorham --- configure.in | 42 ++++++++++++++++++++++++++++++++++++++ doc/TODO | 2 +- src/include/config.h.in | 5 ++++- src/interfaces/odbc/dlg_specific.c | 2 ++ src/interfaces/odbc/misc.h | 3 ++- 5 files changed, 51 insertions(+), 3 deletions(-) diff --git a/configure.in b/configure.in index e374870b0a..1be4e7967f 100644 --- a/configure.in +++ b/configure.in @@ -396,6 +396,48 @@ then fi AC_SUBST(ODBCINSTDIR) +#check for unixODBC + +use_unixODBC=no +AC_ARG_WITH(unixODBC, +[ --with-unixODBC[=DIR] Use unixODBC located in DIR], +[use_unixODBC=yes;unixODBC="$withval"],use_unixODBC=no) + +if test "x$use_unixODBC" = "xyes" +then + +# default to /usr if not specified +if test "x$unixODBC" = "x" +then + unixODBC="/usr"; +fi + +AC_ARG_WITH(unixODBC-includes, + [ --with-unixODBC-includes=DIR Find unixODBC headers in DIR], + unixODBC_includes="$withval",unixODBC_includes="$unixODBC/include") + + AC_ARG_WITH(unixODBC-libs, + [ --with-unixODBC-libs=DIR Find unixODBC libraries in DIR], + unixODBC_libs="$withval",unixODBC_libs="$unixODBC/lib") + + CPPFLAGS="$CPPFLAGS -I$unixODBC_includes" + AC_CHECK_HEADERS(sql.h sqlext.h odbcinst.h, + unixODBC_ok=yes;odbc_headers="$odbc_headers $ac_hdr",unixODBC_ok=no; break) + +if test "x$unixODBC_ok" != "xyes" +then + AC_MSG_ERROR([Unable to find the unixODBC headers in $1]) +fi + +save_LIBS="$LIBS" +LIBS="-L$unixODBC_libs $LIBS" + +AC_CHECK_LIB(odbcinst,SQLGetPrivateProfileString, +[AC_DEFINE(HAVE_SQLGETPRIVATEPROFILESTRING) +LIBS="$LIBS -lodbcinst"], +[LIBS="$save_LIBS"]) +fi + dnl Unless we specify the command line options dnl --enable cassert to explicitly enable it dnl If you do not explicitly do it, it defaults to disabled diff --git a/doc/TODO b/doc/TODO index 3373059270..5c177b0498 100644 --- a/doc/TODO +++ b/doc/TODO @@ -63,7 +63,7 @@ URGENT ADMIN -* More access control over who can create tables and access the database +* -More access control over who can create tables and use locks(Karal) * Test syslog functionality * Allow elog() to return error codes, not just messages * Allow international error message support and add error codes diff --git a/src/include/config.h.in b/src/include/config.h.in index 4b6e58cf8a..0d91310190 100644 --- a/src/include/config.h.in +++ b/src/include/config.h.in @@ -8,7 +8,7 @@ * or in config.h afterwards. Of course, if you edit config.h, then your * changes will be overwritten the next time you run configure. * - * $Id: config.h.in,v 1.116 2000/06/04 15:06:32 petere Exp $ + * $Id: config.h.in,v 1.117 2000/06/09 16:03:07 momjian Exp $ */ #ifndef CONFIG_H @@ -305,6 +305,9 @@ * Block of parameters for the ODBC code. */ +/* are we building against a libodbcinst */ +#undef HAVE_SQLGETPRIVATEPROFILESTRING + /* Set to 1 if you have */ #undef HAVE_PWD_H diff --git a/src/interfaces/odbc/dlg_specific.c b/src/interfaces/odbc/dlg_specific.c index a683656381..ebe16c1c6e 100644 --- a/src/interfaces/odbc/dlg_specific.c +++ b/src/interfaces/odbc/dlg_specific.c @@ -23,8 +23,10 @@ #ifndef WIN32 #include #include "gpps.h" +#ifndef HAVE_SQLGETPRIVATEPROFILESTRING #define SQLGetPrivateProfileString(a,b,c,d,e,f) GetPrivateProfileString(a,b,c,d,e,f) #define SQLWritePrivateProfileString(a,b,c,d) WritePrivateProfileString(a,b,c,d) +#endif #ifndef HAVE_STRICMP #define stricmp(s1,s2) strcasecmp(s1,s2) #define strnicmp(s1,s2,n) strncasecmp(s1,s2,n) diff --git a/src/interfaces/odbc/misc.h b/src/interfaces/odbc/misc.h index ebe56ea9d8..700e951e91 100644 --- a/src/interfaces/odbc/misc.h +++ b/src/interfaces/odbc/misc.h @@ -15,9 +15,10 @@ #endif #ifndef WIN32 -#include "gpps.h" +#ifndef HAVE_SQLGETPRIVATEPROFILESTRING #define SQLGetPrivateProfileString(a,b,c,d,e,f) GetPrivateProfileString(a,b,c,d,e,f) #endif +#endif #include -- 2.11.0