summaryrefslogtreecommitdiff
blob: 96720618a58633c62d4ddfbf2be3fd602d7f7f7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
diff -aurN a/driver/catalog_no_i_s.c b/driver/catalog_no_i_s.c
--- a/driver/catalog_no_i_s.c	2016-11-29 07:40:13.000000000 -0500
+++ b/driver/catalog_no_i_s.c	2017-02-17 14:07:03.979683613 -0500
@@ -1093,7 +1093,11 @@
   unsigned long *lengths;
   SQLRETURN rc= SQL_SUCCESS;
 
+#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
+  myodbc_init_dynamic_array(&records, sizeof(MY_FOREIGN_KEY_FIELD), 0, 0, MYF(0));
+#else
   myodbc_init_dynamic_array(&records, sizeof(MY_FOREIGN_KEY_FIELD), 0, 0);
+#endif
 
   /* Get the list of tables that match szCatalog and szTable */
   myodbc_mutex_lock(&stmt->dbc->lock);
diff -aurN a/driver/desc.c b/driver/desc.c
--- a/driver/desc.c	2016-11-29 07:40:13.000000000 -0500
+++ b/driver/desc.c	2017-02-17 14:09:30.139954232 -0500
@@ -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.
   */
+#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
+  if (myodbc_init_dynamic_array(&desc->records, sizeof(DESCREC), 0, 0, MYF(0)))
+#else
   if (myodbc_init_dynamic_array(&desc->records, sizeof(DESCREC), 0, 0))
+#endif
   {
     x_free((char *)desc);
     return NULL;
   }
 
+#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
+  if (myodbc_init_dynamic_array(&desc->bookmark, sizeof(DESCREC), 0, 0, MYF(0)))
+#else
   if (myodbc_init_dynamic_array(&desc->bookmark, sizeof(DESCREC), 0, 0))
+#endif
   {
     delete_dynamic(&desc->records);
     x_free((char *)desc);
@@ -997,7 +1005,11 @@
   delete_dynamic(&dest->records);
   if (myodbc_init_dynamic_array(&dest->records, sizeof(DESCREC),
                             src->records.max_element,
+#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
+                            src->records.alloc_increment, MYF(0)))
+#else
                             src->records.alloc_increment))
+#endif
   {
     return set_desc_error(dest, "HY001",
               "Memory allocation error",
diff -aurN a/driver/handle.c b/driver/handle.c
--- a/driver/handle.c	2016-11-29 07:40:13.000000000 -0500
+++ b/driver/handle.c	2017-02-17 14:10:32.078797593 -0500
@@ -409,7 +409,11 @@
     }
   }
 
+#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
+  myodbc_init_dynamic_array(*param_bind, sizeof(MYSQL_BIND), elements, 10, MYF(0));
+#else
   myodbc_init_dynamic_array(*param_bind, sizeof(MYSQL_BIND), elements, 10);
+#endif
   memset((*param_bind)->buffer, 0, sizeof(MYSQL_BIND) *
 											(*param_bind)->max_element);
 
diff -aurN a/driver/parse.c b/driver/parse.c
--- a/driver/parse.c	2016-11-29 07:40:13.000000000 -0500
+++ b/driver/parse.c	2017-02-17 14:12:00.638143846 -0500
@@ -139,8 +139,13 @@
 
     /* TODO: Store offsets rather than ptrs. In this case we will be fine
        if work with copy of the originally parsed string */
+#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID > 100001
+    myodbc_init_dynamic_array(&pq->token,     sizeof(uint), 20, 10, MYF(0));
+    myodbc_init_dynamic_array(&pq->param_pos, sizeof(uint), 10, 10, MYF(0));
+#else
     myodbc_init_dynamic_array(&pq->token,     sizeof(uint), 20, 10);
     myodbc_init_dynamic_array(&pq->param_pos, sizeof(uint), 10, 10);
+#endif
   }
 
   return pq;
diff -aurN a/MYODBC_MYSQL.h b/MYODBC_MYSQL.h
--- a/MYODBC_MYSQL.h	2016-11-29 07:40:13.000000000 -0500
+++ b/MYODBC_MYSQL.h	2017-02-17 15:04:47.153994839 -0500
@@ -44,7 +44,7 @@
 #endif
 
 #ifdef THREAD
-#if MYSQL_VERSION_ID < 50703
+#if MYSQL_VERSION_ID < 50703 || defined(MARIADB_BASE_VERSION)
 #include <my_pthread.h>
 #define myodbc_mutex_t pthread_mutex_t
 #define myodbc_key_t pthread_key_t