libdbd-mysql-perl: fix do_compile failure

After mariadb upgrade to 10.3.13, there comes
below do_compile failure for libdbd-mysql-perl:
| dbdimp.c: In function 'mysql_dr_connect':
| dbdimp.c:2000:13: error: 'MYSQL' {aka 'struct st_mysql'} has no member named 'reconnect'
|        result->reconnect=0;

Backport a patch to fix it.

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Mingli Yu
2019-03-04 21:28:59 -08:00
committed by Khem Raj
parent 8f817f91a3
commit a496d83cbf
2 changed files with 54 additions and 0 deletions
@@ -0,0 +1,53 @@
From edb6b202b7e233864aa5dd84532646c50097b0b8 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Mon, 4 Mar 2019 00:49:17 -0800
Subject: [PATCH] Use API function for reconnect
For configuring reconnect functionality use standard API function
MYSQL_OPT_RECONNECT instead of direct modification of internal structures
which does not work for MariaDB. Fixes compilation with MariaDB 10.2.6+.
Upstream-Status: Backport [https://github.com/perl5-dbi/DBD-mysql/commit/0b1884f4153d3de0a91bae4d3b3cc1771ffdf4f3]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
dbdimp.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/dbdimp.c b/dbdimp.c
index 9b8b313..3bed213 100644
--- a/dbdimp.c
+++ b/dbdimp.c
@@ -1979,6 +1979,16 @@ MYSQL *mysql_dr_connect(
if (result)
{
+ /*
+ we turn off Mysql's auto reconnect and handle re-connecting ourselves
+ so that we can keep track of when this happens.
+ */
+#if MYSQL_VERSION_ID >= 50013
+ my_bool reconnect = FALSE;
+ mysql_options(result, MYSQL_OPT_RECONNECT, &reconnect);
+#else
+ result->reconnect = 0;
+#endif
#if MYSQL_VERSION_ID >=SERVER_PREPARE_VERSION
/* connection succeeded. */
/* imp_dbh == NULL when mysql_dr_connect() is called from mysql.xs
@@ -1992,12 +2002,6 @@ MYSQL *mysql_dr_connect(
imp_dbh->async_query_in_flight = NULL;
}
#endif
-
- /*
- we turn off Mysql's auto reconnect and handle re-connecting ourselves
- so that we can keep track of when this happens.
- */
- result->reconnect=0;
}
else {
/*
--
2.17.1
@@ -15,6 +15,7 @@ DEPENDS += "libdbi-perl-native libmysqlclient"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d0a06964340e5c0cde88b7af611f755c"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/DBD-mysql-${PV}.tar.gz \
file://0001-Use-API-function-for-reconnect.patch \
"
SRC_URI[md5sum] = "4a00dd7f1c057931147c65dfc4901c36"