--- /usr/ports/databases/mysql-connector-odbc/Makefile 2015-03-26 14:44:07.689475083 +0300 +++ /usr/ports/databases/mysql-connector-odbc/Makefile 2015-03-26 15:09:09.205289830 +0300 @@ -19,7 +19,7 @@ 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 --- /usr/ports/databases/mysql-connector-odbc/files/patch-driver__execute.c 2015-03-26 14:44:07.700203075 +0300 +++ /usr/ports/databases/mysql-connector-odbc/files/patch-driver__execute.c 1970-01-01 03:00:00.000000000 +0300 @@ -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: --- /usr/ports/databases/mysql-connector-odbc/files/patch-driver_catalog_no_i_s.c 1970-01-01 03:00:00.000000000 +0300 +++ /usr/ports/databases/mysql-connector-odbc/files/patch-driver_catalog_no_i_s.c 2015-03-26 12:31:37.534944323 +0300 @@ -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); --- /usr/ports/databases/mysql-connector-odbc/files/patch-driver_desc.c 1970-01-01 03:00:00.000000000 +0300 +++ /usr/ports/databases/mysql-connector-odbc/files/patch-driver_desc.c 2015-03-26 12:35:21.326918996 +0300 @@ -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", --- /usr/ports/databases/mysql-connector-odbc/files/patch-driver_handle.c 1970-01-01 03:00:00.000000000 +0300 +++ /usr/ports/databases/mysql-connector-odbc/files/patch-driver_handle.c 2015-03-26 12:36:34.279905891 +0300 @@ -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); + --- /usr/ports/databases/mysql-connector-odbc/files/patch-driver_parse.c 1970-01-01 03:00:00.000000000 +0300 +++ /usr/ports/databases/mysql-connector-odbc/files/patch-driver_parse.c 2015-03-26 12:37:33.851901840 +0300 @@ -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; --- /usr/ports/databases/mysql-connector-odbc/files/patch-util_odbcinstw.c 1970-01-01 03:00:00.000000000 +0300 +++ /usr/ports/databases/mysql-connector-odbc/files/patch-util_odbcinstw.c 2015-03-26 15:11:08.352275654 +0300 @@ -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;