mysql-connector-cpp.patch 11.8 KB
--- misc/mysql-connector-cpp/cppconn/build_config.h	2009-08-13 17:13:46.000000000 +0200
+++ misc/build/mysql-connector-cpp/cppconn/build_config.h	2009-09-11 09:41:41.150391316 +0200
@@ -1,36 +1,34 @@
-/*
-   Copyright 2007 - 2008 MySQL AB, 2008 - 2009 Sun Microsystems, Inc.  All rights reserved.
-
-   The MySQL Connector/C++ is licensed under the terms of the GPL
-   <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
-   MySQL Connectors. There are special exceptions to the terms and
-   conditions of the GPL as it is applied to this software, see the
-   FLOSS License Exception
-   <http://www.mysql.com/about/legal/licensing/foss-exception.html>.
-*/
-
-#ifndef _SQL_BUILD_CONFIG_H_
-#define _SQL_BUILD_CONFIG_H_
-
-#ifndef CPPCONN_PUBLIC_FUNC
-
-#if defined(_WIN32)
- // mysqlcppconn_EXPORTS is added by cmake and defined for dynamic lib build only
-  #ifdef mysqlcppconn_EXPORTS
-    #define CPPCONN_PUBLIC_FUNC __declspec(dllexport)
-  #else
-    // this is for static build
-    #ifdef CPPCONN_LIB_BUILD
-      #define CPPCONN_PUBLIC_FUNC
-    #else
-      // this is for clients using dynamic lib
-      #define CPPCONN_PUBLIC_FUNC __declspec(dllimport)
-    #endif
-  #endif
-#else
-  #define CPPCONN_PUBLIC_FUNC
-#endif
-
-#endif    //#ifndef CPPCONN_PUBLIC_FUNC
-
-#endif    //#ifndef _SQL_BUILD_CONFIG_H_
+/*
+   Copyright 2007 - 2008 MySQL AB, 2008 - 2009 Sun Microsystems, Inc.  All rights reserved.
+
+   The MySQL Connector/C++ is licensed under the terms of the GPL
+   <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
+   MySQL Connectors. There are special exceptions to the terms and
+   conditions of the GPL as it is applied to this software, see the
+   FLOSS License Exception
+   <http://www.mysql.com/about/legal/licensing/foss-exception.html>.
+*/
+
+#ifndef _SQL_BUILD_CONFIG_H_
+#define _SQL_BUILD_CONFIG_H_
+
+#ifndef _SAL_TYPES_H_
+#include <sal/types.h>
+#endif
+  
+ // mysqlcppconn_EXPORTS is added by cmake and defined for dynamic lib build only
+  #ifdef mysqlcppconn_EXPORTS
+    #define CPPCONN_PUBLIC_FUNC SAL_DLLPUBLIC_EXPORT
+  #else
+    // this is for static build
+    #ifdef CPPCONN_LIB_BUILD
+      #define CPPCONN_PUBLIC_FUNC
+    #else
+      // this is for clients using dynamic lib
+      #define CPPCONN_PUBLIC_FUNC SAL_DLLPUBLIC_IMPORT
+    #endif
+  #endif
+
+  #define CPPCONN_PUBLIC_EXCEPTION SAL_EXCEPTION_DLLPUBLIC_EXPORT
+
+#endif    //#ifndef _SQL_BUILD_CONFIG_H_
--- misc/mysql-connector-cpp/cppconn/config.h	2009-08-14 10:17:38.234375000 +0200
+++ misc/build/mysql-connector-cpp/cppconn/config.h	2009-08-14 09:56:37.000000000 +0200
@@ -1 +1,34 @@
-dummy
+#include <sal/types.h>
+
+#define HAVE_FUNCTION_STRTOL 1
+#define HAVE_FUNCTION_STRTOUL 1
+#define HAVE_FUNCTION_STRTOL 1
+#define HAVE_FUNCTION_STRTOULL 1
+
+#if defined(MACOSX) || defined(SOLARIS) || defined(LINUX)
+    #define HAVE_STDINT_H
+    #define HAVE_INTTYPES_H
+#endif
+
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+
+#if !defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H) 
+
+// if we do not have the standard C99 integer types, then define them based on the respective SAL types
+#if !defined(_SYS_TYPES_H)
+typedef sal_Int8    int8_t;
+typedef sal_Int16   int16_t;
+typedef sal_Int32   int32_t;
+#endif // !defined(_SYS_TYPES_H)
+typedef sal_uInt8   uint8_t;
+typedef sal_uInt16  uint16_t;
+typedef sal_uInt32  uint32_t;
+typedef sal_Int64   int64_t;
+typedef sal_uInt64  uint64_t;
+#endif // !defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H)
--- misc/mysql-connector-cpp/cppconn/connection.h	2009-08-13 17:13:46.000000000 +0200
+++ misc/build/mysql-connector-cpp/cppconn/connection.h	2009-08-14 09:56:37.000000000 +0200
@@ -13,7 +13,6 @@
 #define _SQL_CONNECTION_H_
 
 #include <map>
-#include <boost/variant.hpp>
 
 #include "build_config.h"
 #include "warning.h"
@@ -22,8 +21,54 @@
 namespace sql
 {
 
-
-typedef boost::variant<int, double, bool, sql::SQLString > ConnectPropertyVal;
+// hack around the non-existent ::boost::variant in OOo 3.1 build env
+struct ConnectPropertyVal
+{
+    sql::SQLString valString;
+    int            valInt;
+    bool           valBool;
+
+    ConnectPropertyVal()
+    {
+        reset();
+    }
+    ConnectPropertyVal( const sql::SQLString& _val )
+    {
+        *this = _val;
+    }
+    ConnectPropertyVal( const int _val )
+    {
+        *this = _val;
+    }
+    ConnectPropertyVal( const bool _val )
+    {
+        *this = _val;
+    }
+    ConnectPropertyVal& operator=( const sql::SQLString& _val )
+    {
+        reset();
+        valString = _val;
+        return *this;
+    }
+    ConnectPropertyVal& operator=( const int _val )
+    {
+        reset();
+        valInt = _val;
+        return *this;
+    }
+    ConnectPropertyVal& operator=( const bool _val )
+    {
+        reset();
+        valBool = _val;
+        return *this;
+    }
+    void reset()
+    {
+        valString = std::string();
+        valInt = 0;
+        valBool = false;
+    }
+};
 
 typedef std::map< sql::SQLString, ConnectPropertyVal > ConnectOptionsMap;
 
--- misc/mysql-connector-cpp/cppconn/exception.h	2009-08-20 17:51:23.000000000 +0200
+++ misc/build/mysql-connector-cpp/cppconn/exception.h	2009-09-11 09:41:41.076379817 +0200
@@ -37,7 +37,7 @@
 #pragma warning(push)
 #pragma warning(disable: 4275)
 #endif
-class CPPCONN_PUBLIC_FUNC SQLException : public std::runtime_error
+class CPPCONN_PUBLIC_EXCEPTION SQLException : public std::runtime_error
 {
 #ifdef _WIN32
 #pragma warning(pop)
@@ -83,26 +83,26 @@
 	MEMORY_ALLOC_OPERATORS(SQLException)
 };
 
-struct CPPCONN_PUBLIC_FUNC MethodNotImplementedException : public SQLException
+struct CPPCONN_PUBLIC_EXCEPTION MethodNotImplementedException : public SQLException
 {
 	MethodNotImplementedException(const MethodNotImplementedException& e) : SQLException(e.what(), e.sql_state, e.errNo) { }
 	MethodNotImplementedException(const std::string& reason) : SQLException(reason, "", 0) {}
 };
 
-struct CPPCONN_PUBLIC_FUNC InvalidArgumentException : public SQLException
+struct CPPCONN_PUBLIC_EXCEPTION InvalidArgumentException : public SQLException
 {
 	InvalidArgumentException(const InvalidArgumentException& e) : SQLException(e.what(), e.sql_state, e.errNo) { }
 	InvalidArgumentException(const std::string& reason) : SQLException(reason, "", 0) {}
 };
 
-struct CPPCONN_PUBLIC_FUNC InvalidInstanceException : public SQLException
+struct CPPCONN_PUBLIC_EXCEPTION InvalidInstanceException : public SQLException
 {
 	InvalidInstanceException(const InvalidInstanceException& e) : SQLException(e.what(), e.sql_state, e.errNo) { }
 	InvalidInstanceException(const std::string& reason) : SQLException(reason, "", 0) {}
 };
 
 
-struct CPPCONN_PUBLIC_FUNC NonScrollableException : public SQLException
+struct CPPCONN_PUBLIC_EXCEPTION NonScrollableException : public SQLException
 {
 	NonScrollableException(const NonScrollableException& e) : SQLException(e.what(), e.sql_state, e.errNo) { }
 	NonScrollableException(const std::string& reason) : SQLException(reason, "", 0) {}
--- misc/mysql-connector-cpp/driver/makefile.mk	2009-09-11 09:42:34.087202551 +0200
+++ misc/build/mysql-connector-cpp/driver/makefile.mk	2009-09-11 09:42:25.902286382 +0200
@@ -1 +1,64 @@
-dummy
+PRJ=..$/..$/..$/..$/..
+
+.INCLUDE : $(PRJ)$/cppconn_config.pmk
+
+PRJINC=..
+TARGET=$(PRJNAME)
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE :  settings.mk
+
+.INCLUDE : $(PRJ)$/mysql_config.pmk
+
+# --- Files --------------------------------------------------------
+
+.IF "$(GUI)-$(OS)-$(RTL_ARCH)" == "UNX-LINUX-x86"
+    SHL1NOCHECK=TRUE
+.ENDIF
+SHL1TARGET=$(TARGET)
+
+LIB1TARGET=$(SLB)$/$(PRJNAME).lib
+LIB1OBJFILES+= \
+        $(SLO)$/mysql_art_resultset.obj \
+        $(SLO)$/mysql_art_rset_metadata.obj \
+        $(SLO)$/mysql_connection.obj \
+        $(SLO)$/mysql_debug.obj \
+        $(SLO)$/mysql_driver.obj \
+        $(SLO)$/mysql_metadata.obj \
+        $(SLO)$/mysql_parameter_metadata.obj \
+        $(SLO)$/mysql_prepared_statement.obj \
+        $(SLO)$/mysql_ps_resultset.obj \
+        $(SLO)$/mysql_ps_resultset_metadata.obj \
+        $(SLO)$/mysql_resultbind.obj \
+        $(SLO)$/mysql_resultset.obj \
+        $(SLO)$/mysql_resultset_metadata.obj \
+        $(SLO)$/mysql_statement.obj \
+        $(SLO)$/mysql_util.obj \
+        $(SLO)$/mysql_warning.obj \
+
+SHL1STDLIBS=\
+       $(MYSQL_LIB)
+
+SHL1RPATH=OXT
+SHL1IMPLIB=  i$(TARGET)
+SHL1LIBS=    $(LIB1TARGET) $(SLB)$/$(CPPCONN_NATIVEAPI).lib
+SHL1DEF=     $(MISC)$/$(SHL1TARGET).def
+DEF1NAME=    $(SHL1TARGET)
+DEF1DEPN=    $(MISC)$/$(SHL1TARGET).flt \
+              $(LIB1TARGET)
+DEFLIB1NAME=$(TARGET)
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE :  target.mk
+
+# --- filter file ------------------------------
+
+.IF "$(depend)"==""
+$(MISC)$/$(SHL1TARGET).flt: makefile.mk
+    @echo CLEAR_THE_FILE	> $@
+	@echo _TI				>>$@
+	@echo _real				>>$@
+	@echo __CT				>>$@
+.ENDIF # "$(depend)"==""
--- misc/mysql-connector-cpp/driver/mysql_connection.cpp	2009-08-13 17:13:46.000000000 +0200
+++ misc/build/mysql-connector-cpp/driver/mysql_connection.cpp	2009-08-14 09:56:37.015625000 +0200
@@ -50,6 +50,34 @@
 #include "mysql_debug.h"
 
 
+// part II of the hack to make C/C++ compile in an OOo env which doesn't have boost::variant installed
+namespace boost
+{
+    template < class TYPE >
+    const TYPE* get( const sql::ConnectPropertyVal* val )
+    {
+        return val;
+    }
+
+    template < >
+    const sql::SQLString* get< sql::SQLString >( const sql::ConnectPropertyVal* val )
+    {
+        return &val->valString;
+    }
+
+    template < >
+    const int* get< int >( const sql::ConnectPropertyVal* val )
+    {
+        return &val->valInt;
+    }
+
+    template < >
+    const bool* get< bool >( const sql::ConnectPropertyVal* val )
+    {
+        return &val->valBool;
+    }
+}
+
 namespace sql
 {
 namespace mysql
--- misc/mysql-connector-cpp/driver/mysql_debug.h	2009-08-13 17:13:46.000000000 +0200
+++ misc/build/mysql-connector-cpp/driver/mysql_debug.h	2009-08-14 09:56:37.015625000 +0200
@@ -25,16 +25,6 @@
 
 
 
-#if defined(WE_HAVE_VARARGS_MACRO_SUPPORT) && (CPPCONN_TRACE_ENABLED || defined(SAL_DLLPRIVATE))
-	#define CPP_ENTER(msg)			const boost::shared_ptr< MySQL_DebugLogger > __l = this->logger;(void)__l;\
-									MySQL_DebugEnterEvent __this_func(__LINE__, __FILE__, msg, this->logger)
-	#define CPP_ENTER_WL(l, msg)	const boost::shared_ptr< MySQL_DebugLogger > __l = (l);(void)__l;\
-									MySQL_DebugEnterEvent __this_func(__LINE__, __FILE__, msg, (l))
-	#define CPP_INFO(msg)		{if (__l) __l->log("INF", msg); }
-	#define CPP_INFO_FMT(...)	{if (__l) __l->log_va("INF", __VA_ARGS__); }
-	#define CPP_ERR(msg)		{if (__l) __l->log("ERR", msg); }
-	#define CPP_ERR_FMT(...)	{if (__l) __l->log_va("ERR", __VA_ARGS__); }
-#else
 	#define CPP_ENTER(msg)
 	#define CPP_ENTER_WL(l, msg)
 	#define CPP_INFO(msg)
@@ -42,7 +32,6 @@
 	#define CPP_ENTER_WL(l, msg)
 	static inline void CPP_INFO_FMT(...) {}
 	static inline void CPP_ERR_FMT(...) {}
-#endif
 
 #include <stack>
 #include "mysql_util.h"
--- misc/mysql-connector-cpp/driver/nativeapi/makefile.mk	2009-08-17 21:32:53.694119382 +0200
+++ misc/build/mysql-connector-cpp/driver/nativeapi/makefile.mk	2009-08-17 21:32:50.534346360 +0200
@@ -1 +1,23 @@
-dummy
+PRJ=..$/..$/..$/..$/..$/..
+PRJINC=..$/..
+
+.INCLUDE : $(PRJ)$/cppconn_config.pmk
+
+TARGET=$(CPPCONN_NATIVEAPI)
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE :  settings.mk
+
+.INCLUDE : $(PRJ)$/mysql_config.pmk
+
+LIB1TARGET=$(SLB)$/$(TARGET).lib
+LIB1OBJFILES+= \
+        $(SLO)$/mysql_client_api.obj \
+        $(SLO)$/library_loader.obj \
+        $(SLO)$/mysql_native_connection_wrapper.obj \
+        $(SLO)$/mysql_native_resultset_wrapper.obj \
+        $(SLO)$/mysql_native_statement_wrapper.obj \
+
+# --- Targets ------------------------------------------------------
+.INCLUDE :  target.mk