mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 17:59:20 -04:00
databases/mysql-connector-odbc: build and interoperate with mariadb-10
PR: 198925 Submitted by: Pavel Timofeev <timp87@gmail.com> Approved by: sergey@network-asp.biz (maintainer timeout)
This commit is contained in:
parent
39297aa2d9
commit
3a4b2353ed
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=395662
7 changed files with 95 additions and 23 deletions
|
@ -3,6 +3,7 @@
|
|||
|
||||
PORTNAME= mysql-connector-odbc
|
||||
PORTVERSION= 5.3.4
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= databases
|
||||
MASTER_SITES= MYSQL/Connector-ODBC/5.3
|
||||
PKGNAMESUFFIX= -${DRIVER_MANAGER}-mysql${MYSQL_VER}
|
||||
|
@ -18,7 +19,7 @@ USE_LDCONFIG= yes
|
|||
USE_MYSQL= yes
|
||||
USES= cmake
|
||||
|
||||
IGNORE_WITH_MYSQL= 55 51
|
||||
IGNORE_WITH_MYSQL= 55 55m 55p 51 51m 51p
|
||||
|
||||
CMAKE_ARGS= -DWITH_UNIXODBC=1
|
||||
LDFLAGS+= -L${LOCALBASE}/lib
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
--- driver/execute.c.orig 2014-11-05 14:41:16.000000000 +0300
|
||||
+++ driver/execute.c 2014-11-05 14:44:10.000000000 +0300
|
||||
@@ -563,11 +563,19 @@
|
||||
*res= buff;
|
||||
break;
|
||||
case SQL_C_SBIGINT:
|
||||
+#ifdef MARIADB_BASE_VERSION
|
||||
+ *length= longlong2str(*((longlong*) *res), buff, -10, 1) - buff;
|
||||
+#else
|
||||
*length= longlong2str(*((longlong*) *res), buff, -10) - buff;
|
||||
+#endif
|
||||
*res= buff;
|
||||
break;
|
||||
case SQL_C_UBIGINT:
|
||||
+#ifdef MARIADB_BASE_VERSION
|
||||
+ *length= longlong2str(*((ulonglong*) *res), buff, 10, 1) - buff;
|
||||
+#else
|
||||
*length= longlong2str(*((ulonglong*) *res), buff, 10) - buff;
|
||||
+#endif
|
||||
*res= buff;
|
||||
break;
|
||||
case SQL_C_FLOAT:
|
|
@ -0,0 +1,14 @@
|
|||
--- driver/catalog_no_i_s.c.orig 2014-06-19 02:50:16.000000000 +0400
|
||||
+++ driver/catalog_no_i_s.c 2015-03-26 12:31:13.356945009 +0300
|
||||
@@ -1093,7 +1093,11 @@
|
||||
unsigned long *lengths;
|
||||
SQLRETURN rc= SQL_SUCCESS;
|
||||
|
||||
+#ifdef MARIADB_BASE_VERSION
|
||||
+ my_init_dynamic_array(&records, sizeof(MY_FOREIGN_KEY_FIELD), 0, 0, 0);
|
||||
+#else
|
||||
my_init_dynamic_array(&records, sizeof(MY_FOREIGN_KEY_FIELD), 0, 0);
|
||||
+#endif
|
||||
|
||||
/* Get the list of tables that match szCatalog and szTable */
|
||||
pthread_mutex_lock(&stmt->dbc->lock);
|
37
databases/mysql-connector-odbc/files/patch-driver_desc.c
Normal file
37
databases/mysql-connector-odbc/files/patch-driver_desc.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
--- driver/desc.c.orig 2014-06-19 02:50:16.000000000 +0400
|
||||
+++ driver/desc.c 2015-03-26 12:34:50.610931661 +0300
|
||||
@@ -63,13 +63,21 @@
|
||||
but in desc_get_rec we manually get a pointer to it. This avoids
|
||||
having to call set_dynamic after modifying the DESCREC.
|
||||
*/
|
||||
+#ifdef MARIADB_BASE_VERSION
|
||||
+ if (my_init_dynamic_array(&desc->records, sizeof(DESCREC), 0, 0, 0))
|
||||
+#else
|
||||
if (my_init_dynamic_array(&desc->records, sizeof(DESCREC), 0, 0))
|
||||
+#endif
|
||||
{
|
||||
x_free((char *)desc);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+#ifdef MARIADB_BASE_VERSION
|
||||
+ if (my_init_dynamic_array(&desc->bookmark, sizeof(DESCREC), 0, 0, 0))
|
||||
+#else
|
||||
if (my_init_dynamic_array(&desc->bookmark, sizeof(DESCREC), 0, 0))
|
||||
+#endif
|
||||
{
|
||||
delete_dynamic(&desc->records);
|
||||
x_free((char *)desc);
|
||||
@@ -997,7 +1005,12 @@
|
||||
delete_dynamic(&dest->records);
|
||||
if (my_init_dynamic_array(&dest->records, sizeof(DESCREC),
|
||||
src->records.max_element,
|
||||
+#ifdef MARIADB_BASE_VERSION
|
||||
+ src->records.alloc_increment,
|
||||
+ 0))
|
||||
+#else
|
||||
src->records.alloc_increment))
|
||||
+#endif
|
||||
{
|
||||
return set_desc_error(dest, "HY001",
|
||||
"Memory allocation error",
|
14
databases/mysql-connector-odbc/files/patch-driver_handle.c
Normal file
14
databases/mysql-connector-odbc/files/patch-driver_handle.c
Normal file
|
@ -0,0 +1,14 @@
|
|||
--- driver/handle.c.orig 2014-06-19 02:50:16.000000000 +0400
|
||||
+++ driver/handle.c 2015-03-26 12:36:14.548929818 +0300
|
||||
@@ -403,7 +403,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#ifdef MARIADB_BASE_VERSION
|
||||
+ my_init_dynamic_array(*param_bind, sizeof(MYSQL_BIND), elements, 10, 0);
|
||||
+#else
|
||||
my_init_dynamic_array(*param_bind, sizeof(MYSQL_BIND), elements, 10);
|
||||
+#endif
|
||||
memset((*param_bind)->buffer, 0, sizeof(MYSQL_BIND) *
|
||||
(*param_bind)->max_element);
|
||||
|
16
databases/mysql-connector-odbc/files/patch-driver_parse.c
Normal file
16
databases/mysql-connector-odbc/files/patch-driver_parse.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
--- driver/parse.c.orig 2014-06-19 02:50:16.000000000 +0400
|
||||
+++ driver/parse.c 2015-03-26 12:37:12.112907082 +0300
|
||||
@@ -129,8 +129,13 @@
|
||||
|
||||
/* TODO: Store offsets rather than ptrs. In this case we will be fine
|
||||
if work with copy of the originally parsed string */
|
||||
+#ifdef MARIADB_BASE_VERSION
|
||||
+ my_init_dynamic_array(&pq->token, sizeof(uint), 20, 10, 0);
|
||||
+ my_init_dynamic_array(&pq->param_pos, sizeof(uint), 10, 10, 0);
|
||||
+#else
|
||||
my_init_dynamic_array(&pq->token, sizeof(uint), 20, 10);
|
||||
my_init_dynamic_array(&pq->param_pos, sizeof(uint), 10, 10);
|
||||
+#endif
|
||||
}
|
||||
|
||||
return pq;
|
12
databases/mysql-connector-odbc/files/patch-util_odbcinstw.c
Normal file
12
databases/mysql-connector-odbc/files/patch-util_odbcinstw.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
--- util/odbcinstw.c.orig 2015-03-26 15:10:03.189270855 +0300
|
||||
+++ util/odbcinstw.c 2015-03-26 15:10:43.503271192 +0300
|
||||
@@ -105,7 +105,8 @@
|
||||
x_free(section);
|
||||
x_free(entry);
|
||||
x_free(def);
|
||||
- x_free(ret);
|
||||
+ if (ret)
|
||||
+ free(ret);
|
||||
x_free(filename);
|
||||
|
||||
return rc;
|
Loading…
Add table
Reference in a new issue