summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/sql/drivers/mysql/qsql_mysql.cpp34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/sql/drivers/mysql/qsql_mysql.cpp b/src/sql/drivers/mysql/qsql_mysql.cpp
index 5296f71..2d84b65 100644
--- a/src/sql/drivers/mysql/qsql_mysql.cpp
+++ b/src/sql/drivers/mysql/qsql_mysql.cpp
@@ -350,30 +350,40 @@ int QMYSQLResult::numRowsAffected()
static void qServerEnd()
{
#ifndef Q_NO_MYSQL_EMBEDDED
-# if MYSQL_VERSION_ID >= 40000
+#if !defined(MARIADB_BASE_VERSION) && !defined(MARIADB_VERSION_ID)
+# if MYSQL_VERSION_ID > 40000
+# if (MYSQL_VERSION_ID >= 40110 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50003
+ mysql_library_end();
+# else
mysql_server_end();
-# endif // MYSQL_VERSION_ID
-#endif // Q_NO_MYSQL_EMBEDDED
+# endif
+# endif
+#endif
+#endif
}
static void qServerInit()
{
#ifndef Q_NO_MYSQL_EMBEDDED
# if MYSQL_VERSION_ID >= 40000
- if ( qMySqlInitHandledByUser || qMySqlConnectionCount > 1 )
+ if (qMySqlInitHandledByUser || qMySqlConnectionCount > 1)
return;
- // this should only be called once
- // has no effect on client/server library
- // but is vital for the embedded lib
- if ( mysql_server_init( 0, 0, 0 ) ) {
-# ifdef QT_CHECK_RANGE
- qWarning( "QMYSQLDriver::qServerInit: unable to start server." );
-# endif
+ if (
+# if (MYSQL_VERSION_ID >= 40110 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50003
+ mysql_library_init(0, 0, 0)
+# else
+ mysql_server_init(0, 0, 0)
+# endif
+ ) {
+ qWarning("QMYSQLDriver::qServerInit: unable to start server.");
}
-
# endif // MYSQL_VERSION_ID
#endif // Q_NO_MYSQL_EMBEDDED
+
+#if defined(MARIADB_BASE_VERSION) || defined(MARIADB_VERSION_ID)
+ qAddPostRoutine(mysql_server_end);
+#endif
}
QMYSQLDriver::QMYSQLDriver( QObject * parent, const char * name )