File mysql-connector-cpp-mariadb.patch of Package mysql-connector-cpp

Index: b/jdbc/cppconn/version_info.h.cmake
===================================================================
--- a/jdbc/cppconn/version_info.h.cmake
+++ b/jdbc/cppconn/version_info.h.cmake
@@ -48,5 +48,6 @@
 
 #define MYCPPCONN_STATIC_MYSQL_VERSION     "@MYSQL_VERSION@"
 #define MYCPPCONN_STATIC_MYSQL_VERSION_ID  @MYSQL_NUM_VERSION@
+#define MYCPPCONN_MARIADB_BUILD
 
 #define MYCPPCONN_BOOST_VERSION            @Boost_VERSION@
Index: b/jdbc/driver/mysql_connection.cpp
===================================================================
--- a/jdbc/driver/mysql_connection.cpp
+++ b/jdbc/driver/mysql_connection.cpp
@@ -268,7 +268,7 @@ static const String2IntMap booleanOption
     {OPT_CAN_HANDLE_EXPIRED_PASSWORDS, MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS, true},
     {OPT_CONNECT_ATTR_RESET,      MYSQL_OPT_CONNECT_ATTR_RESET, true},
     {OPT_RECONNECT,               MYSQL_OPT_RECONNECT, true},
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID < 80000
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID < 80000 || defined(MYCPPCONN_MARIADB_BUILD)
     {"sslVerify",                   MYSQL_OPT_SSL_VERIFY_SERVER_CERT, false}, // Deprecated
     {"sslEnforce",                  MYSQL_OPT_SSL_ENFORCE, false} // Deprecated
 #else
@@ -290,9 +290,9 @@ static const String2IntMap intOptions[]=
     {OPT_MAX_ALLOWED_PACKET,  MYSQL_OPT_MAX_ALLOWED_PACKET, false},
     {OPT_NET_BUFFER_LENGTH,   MYSQL_OPT_NET_BUFFER_LENGTH, false},
 #endif
-    {OPT_SSL_MODE,            MYSQL_OPT_SSL_MODE    , false},
-    {"OPT_SSL_MODE",          MYSQL_OPT_SSL_MODE    , false},
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000
+    //{OPT_SSL_MODE,            MYSQL_OPT_SSL_MODE    , false},
+    //{"OPT_SSL_MODE",          MYSQL_OPT_SSL_MODE    , false},
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000 && !defined(MYCPPCONN_MARIADB_BUILD)
     {OPT_RETRY_COUNT,         MYSQL_OPT_RETRY_COUNT, false},
 #endif
   };
@@ -321,7 +321,7 @@ static const String2IntMap stringOptions
     {OPT_TLS_VERSION,          MYSQL_OPT_TLS_VERSION, true},
     {"OPT_TLS_VERSION",        MYSQL_OPT_TLS_VERSION, true},
 #endif
-    {OPT_LOAD_DATA_LOCAL_DIR, MYSQL_OPT_LOAD_DATA_LOCAL_DIR, false}
+    //{OPT_LOAD_DATA_LOCAL_DIR, MYSQL_OPT_LOAD_DATA_LOCAL_DIR, false}
   };
 
 
@@ -330,7 +330,7 @@ static const String2IntMap stringOptions
 inline
 ::sql::mysql::MySQL_Connection_Options option_conversion(unsigned long client_version, int option)
 {
-  #if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000
+  #if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000 && !defined(MYCPPCONN_MARIADB_BUILD)
   if(client_version <80011)
   {
     switch (option) {
@@ -520,7 +520,7 @@ void MySQL_Connection::init(ConnectOptio
   int  client_exp_pwd = false;
   bool opt_dns_srv = false;
   bool opt_multi_host = false;
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID < 80000
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID < 80000 || defined(MYCPPCONN_MARIADB_BUILD)
   bool secure_auth= true;
 #endif
 
@@ -636,7 +636,7 @@ void MySQL_Connection::init(ConnectOptio
       } else {
         throw sql::InvalidArgumentException("No string value passed for password");
       }
-    } else if (!it->first.compare(OPT_PASSWORD1)) {
+    /*} else if (!it->first.compare(OPT_PASSWORD1)) {
       try {
         p_s = (it->second).get< sql::SQLString >();
       } catch (sql::InvalidArgumentException&) {
@@ -672,7 +672,7 @@ void MySQL_Connection::init(ConnectOptio
       } else {
         throw sql::InvalidArgumentException("No string value passed for password3");
       }
-    } else if (!it->first.compare(OPT_PORT)) {
+    */} else if (!it->first.compare(OPT_PORT)) {
       try {
         p_i = (it->second).get< int >();
       } catch (sql::InvalidArgumentException&) {
@@ -936,7 +936,7 @@ void MySQL_Connection::init(ConnectOptio
       } catch (sql::InvalidArgumentException&) {
         throw sql::InvalidArgumentException("Wrong type passed for useLegacyAuth expected sql::SQLString");
       }
-  #if MYCPPCONN_STATIC_MYSQL_VERSION_ID < 80000
+  #if MYCPPCONN_STATIC_MYSQL_VERSION_ID < 80000 || defined(MYCPPCONN_MARIADB_BUILD)
       if (p_b) {
         secure_auth= !*p_b;
       } else {
@@ -978,7 +978,7 @@ void MySQL_Connection::init(ConnectOptio
     } else if (!it->first.compare(OPT_CONNECT_ATTR_RESET)) {
       proxy->options(MYSQL_OPT_CONNECT_ATTR_RESET, 0);
 
-  #if MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80000
+  #if MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80000 && !defined(MYCPPCONN_MARIADB_BUILD)
 
     //Deprecated
     } else if (!it->first.compare("sslVerify")) {
@@ -993,7 +993,6 @@ void MySQL_Connection::init(ConnectOptio
                                                           : SSL_MODE_PREFERRED;
       proxy->options(MYSQL_OPT_SSL_MODE, &ssl_mode_val);
 
-  #endif
     } else if (!it->first.compare(OPT_OCI_CONFIG_FILE)) {
       try {
         p_s= (it->second).get<sql::SQLString>();
@@ -1035,6 +1034,7 @@ void MySQL_Connection::init(ConnectOptio
             OPT_AUTHENTICATION_KERBEROS_CLIENT_MODE);
       }
 #endif  // defined(_WIN32)
+  #endif // MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80000 && !defined(MYCPPCONN_MARIADB_BUILD)
 
     } else if (!it->first.compare(OPT_PLUGIN_DIR)) {
       // Nothing to do here: this option was handeld before the loop
@@ -1080,7 +1080,7 @@ void MySQL_Connection::init(ConnectOptio
 
   }
 
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID < 80000
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID < 80000 || defined(MYCPPCONN_MARIADB_BUILD)
   try {
     proxy->options(MYSQL_SECURE_AUTH, &secure_auth);
   } catch (sql::InvalidArgumentException& e) {
@@ -1215,6 +1215,7 @@ void MySQL_Connection::init(ConnectOptio
 
   }
 
+  #if !defined(MYCPPCONN_MARIADB_BUILD)
   /*
    * Helper class to simplify setting and resetting of the plugin callback.
    */
@@ -1272,6 +1273,7 @@ void MySQL_Connection::init(ConnectOptio
   Fido_Callback_Setter setter(
     static_cast<MySQL_Driver*>(driver)->fido_callback,
     proxy.get());
+  #endif // !defined(MYCPPCONN_MARIADB_BUILD)
 
   //Connect loop
   {
@@ -1846,7 +1848,7 @@ MySQL_Connection::setClientOption(const
 #endif
   } else if (!optionName.compare(OPT_LOAD_DATA_LOCAL_DIR))
   {
-    proxy->options(MYSQL_OPT_LOAD_DATA_LOCAL_DIR, optionValue);
+    //proxy->options(MYSQL_OPT_LOAD_DATA_LOCAL_DIR, optionValue);
   }
   return this;
 }
Index: b/jdbc/driver/mysql_connection_options.h
===================================================================
--- a/jdbc/driver/mysql_connection_options.h
+++ b/jdbc/driver/mysql_connection_options.h
@@ -41,7 +41,7 @@ namespace mysql
 
 enum MySQL_Connection_Options
 {
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000 && !defined(MYCPPCONN_MARIADB_BUILD)
   MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE,
   MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP,
   MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE,
@@ -92,8 +92,8 @@ enum MySQL_Connection_Options
   MYSQL_OPT_SSL_ENFORCE,
 #if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 50700
   MYSQL_OPT_MAX_ALLOWED_PACKET, MYSQL_OPT_NET_BUFFER_LENGTH,
-  MYSQL_OPT_TLS_VERSION,
-  MYSQL_OPT_SSL_MODE
+  MYSQL_OPT_TLS_VERSION
+//  MYSQL_OPT_SSL_MODE
 #endif //MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 50700
 #endif //MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000
 
Index: b/jdbc/driver/mysql_resultset_metadata.h
===================================================================
--- a/jdbc/driver/mysql_resultset_metadata.h
+++ b/jdbc/driver/mysql_resultset_metadata.h
@@ -38,7 +38,7 @@
 #include <cppconn/resultset_metadata.h>
 #include <cppconn/version_info.h>
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_FIELD;
 #else
 struct st_mysql_field;
Index: b/jdbc/driver/nativeapi/libmysql_static_proxy.cpp
===================================================================
--- a/jdbc/driver/nativeapi/libmysql_static_proxy.cpp
+++ b/jdbc/driver/nativeapi/libmysql_static_proxy.cpp
@@ -326,7 +326,7 @@ int
 LibmysqlStaticProxy::get_option(MYSQL * mysql, enum mysql_option option, const void *arg)
 {
 #if MYSQL_VERSION_ID >= 50703
-  if (::mysql_get_option(mysql, option, arg)) {
+  if (::mysql_get_option(mysql, option, const_cast<void*>(arg))) {
     throw sql::InvalidArgumentException("Unsupported option provided to mysql_get_option()");
   } else {
     return 0;
Index: b/jdbc/driver/nativeapi/mysql_native_connection_wrapper.cpp
===================================================================
--- a/jdbc/driver/nativeapi/mysql_native_connection_wrapper.cpp
+++ b/jdbc/driver/nativeapi/mysql_native_connection_wrapper.cpp
@@ -97,11 +97,11 @@ get_mysql_option(sql::mysql::MySQL_Conne
   case sql::mysql::MYSQL_OPT_MAX_ALLOWED_PACKET: return ::MYSQL_OPT_MAX_ALLOWED_PACKET;
   case sql::mysql::MYSQL_OPT_NET_BUFFER_LENGTH: return ::MYSQL_OPT_NET_BUFFER_LENGTH;
   case sql::mysql::MYSQL_OPT_TLS_VERSION: return ::MYSQL_OPT_TLS_VERSION;
-  case sql::mysql::MYSQL_OPT_SSL_MODE: return ::MYSQL_OPT_SSL_MODE;
+  //case sql::mysql::MYSQL_OPT_SSL_MODE: return ::MYSQL_OPT_SSL_MODE;
 #endif
 
 
-#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000
+#if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80000 && !defined(MYCPPCONN_MARIADB_BUILD)
   case sql::mysql::MYSQL_OPT_RETRY_COUNT: return ::MYSQL_OPT_RETRY_COUNT;
   case sql::mysql::MYSQL_OPT_GET_SERVER_PUBLIC_KEY: return ::MYSQL_OPT_GET_SERVER_PUBLIC_KEY;
   case sql::mysql::MYSQL_OPT_OPTIONAL_RESULTSET_METADATA: return ::MYSQL_OPT_OPTIONAL_RESULTSET_METADATA;
Index: b/jdbc/driver/nativeapi/mysql_native_connection_wrapper.h
===================================================================
--- a/jdbc/driver/nativeapi/mysql_native_connection_wrapper.h
+++ b/jdbc/driver/nativeapi/mysql_native_connection_wrapper.h
@@ -60,7 +60,7 @@ class MySQL_NativeConnectionWrapper : pu
   boost::shared_ptr< IMySQLCAPI >	api;
 
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL* mysql;
 #else
 struct st_mysql* mysql;
Index: b/jdbc/driver/nativeapi/mysql_native_resultset_wrapper.h
===================================================================
--- a/jdbc/driver/nativeapi/mysql_native_resultset_wrapper.h
+++ b/jdbc/driver/nativeapi/mysql_native_resultset_wrapper.h
@@ -38,7 +38,7 @@
 #include "native_resultset_wrapper.h"
 #include "../cppconn/version_info.h"
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_RES;
 struct MYSQL;
 #else
Index: b/jdbc/driver/nativeapi/mysql_native_statement_wrapper.h
===================================================================
--- a/jdbc/driver/nativeapi/mysql_native_statement_wrapper.h
+++ b/jdbc/driver/nativeapi/mysql_native_statement_wrapper.h
@@ -38,7 +38,7 @@
 
 #include "native_statement_wrapper.h"
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_STMT;
 #else
 struct st_mysql_stmt;
Index: b/jdbc/driver/nativeapi/native_connection_wrapper.h
===================================================================
--- a/jdbc/driver/nativeapi/native_connection_wrapper.h
+++ b/jdbc/driver/nativeapi/native_connection_wrapper.h
@@ -41,7 +41,7 @@
 
 #include "../mysql_connection_options.h"
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_BIND;
 #else
 struct st_mysql_bind;
Index: b/jdbc/driver/nativeapi/native_resultset_wrapper.h
===================================================================
--- a/jdbc/driver/nativeapi/native_resultset_wrapper.h
+++ b/jdbc/driver/nativeapi/native_resultset_wrapper.h
@@ -41,7 +41,7 @@
 
 #include "../cppconn/version_info.h"
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_FIELD;
 #else
 struct st_mysql_field;
Index: b/jdbc/driver/nativeapi/native_statement_wrapper.h
===================================================================
--- a/jdbc/driver/nativeapi/native_statement_wrapper.h
+++ b/jdbc/driver/nativeapi/native_statement_wrapper.h
@@ -42,7 +42,7 @@
 #include "../mysql_statement_options.h"
 #include <cppconn/version_info.h>
 
-#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004)
+#if (MYCPPCONN_STATIC_MYSQL_VERSION_ID > 80004 && !defined(MYCPPCONN_MARIADB_BUILD))
 struct MYSQL_BIND;
 struct MYSQL_RES;
 #else
Index: b/jdbc/FindMySQL.cmake
===================================================================
--- a/jdbc/FindMySQL.cmake
+++ b/jdbc/FindMySQL.cmake
@@ -505,6 +505,8 @@ elseif(MYSQL_CONFIG_EXECUTABLE)
                         "\"${MYSQL_CONFIG_EXECUTABLE}\"")
   endif()
 
+  list(GET MYSQL_INCLUDE_DIR 0 MYSQL_INCLUDE_DIR)
+
   if(NOT EXISTS "${MYSQL_INCLUDE_DIR}/mysql.h")
     message(FATAL_ERROR "Could not find \"mysql.h\" in \"${MYSQL_INCLUDE_DIR}\" "
                         "found from running \"${MYSQL_CONFIG_EXECUTABLE}\"")
openSUSE Build Service is sponsored by