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 @@
     {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 @@
     {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 @@
     {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 @@
 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 @@
   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
 
@@ -648,7 +648,7 @@
       } 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&) {
@@ -684,7 +684,7 @@
       } 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&) {
@@ -948,7 +948,7 @@
       } 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 {
@@ -997,7 +997,7 @@
     } 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")) {
@@ -1012,7 +1012,6 @@
                                                           : 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>();
@@ -1074,6 +1073,7 @@
             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
@@ -1100,6 +1100,7 @@
 
   } /* End of cycle on connection options map */
 
+  #if !defined(MYCPPCONN_MARIADB_BUILD)
   if (oci_plugin_is_loaded) {
     if (properties.find(OPT_OCI_CONFIG_FILE) == properties.end()) {
       // If OCI plugin is loaded, but oci-config-file is not explicitly set
@@ -1128,6 +1129,7 @@
     }
 
   }
+  #endif
 
 #undef PROCESS_CONNSTR_OPTION
 
@@ -1147,7 +1149,7 @@
 
   }
 
-#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) {
@@ -1282,6 +1284,7 @@
 
   }
 
+  #if !defined(MYCPPCONN_MARIADB_BUILD)
   /*
    * Helper class to simplify setting and resetting of the plugin callback.
    */
@@ -1339,6 +1342,7 @@
   Fido_Callback_Setter setter(
     static_cast<MySQL_Driver*>(driver)->fido_callback,
     proxy.get());
+  #endif // !defined(MYCPPCONN_MARIADB_BUILD)
 
   //Connect loop
   {
@@ -1914,7 +1918,7 @@
 #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
@@ -59,7 +59,7 @@
   /* api should be declared before mysql here */
   std::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"
 #include "../mysql_util.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  2023-03-23 17:32:48.000000000 +0100
+++ b/jdbc/driver/nativeapi/native_statement_wrapper.h  2023-06-11 18:31:20.354495130 +0200
@@ -42,7 +42,7 @@
 #include "../mysql_util.h"
 #include "../mysql_statement_options.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