Hello community,

here is the log from the commit of package mariadb-connector-odbc for 
openSUSE:Factory checked in at 2020-11-10 13:40:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mariadb-connector-odbc (Old)
 and      /work/SRC/openSUSE:Factory/.mariadb-connector-odbc.new.11331 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mariadb-connector-odbc"

Tue Nov 10 13:40:07 2020 rev:11 rq:846299 version:3.1.10

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/mariadb-connector-odbc/mariadb-connector-odbc.changes
    2020-09-25 16:31:18.911878713 +0200
+++ 
/work/SRC/openSUSE:Factory/.mariadb-connector-odbc.new.11331/mariadb-connector-odbc.changes
 2020-11-10 13:47:04.403573548 +0100
@@ -1,0 +2,21 @@
+Thu Nov  5 12:17:02 UTC 2020 - Adam Majer <adam.ma...@suse.de>
+
+- New upstream version 3.1.10
+  * ODBC-288 - Connector misses "interactive client" option. Added
+    INTERACTIVE connection string option to tell server, that
+    the client application is interactive, and interactive_timeout
+    has to be used.
+  * ODBC-202 - Add charsets recoding function to C/ODBC. Iconv-based
+    conversion function has been moved and adapted from MariaDB Connector/C.
+  * ODBC-289 - Fixes a crash fetching from statement after closing and 
re-executing
+
+- remove upstreamed patches: fix_macros.patch,
+  implicit_decleration.patch, wrong_types.patch
+- iconv.patch: compilation fixes
+
+-------------------------------------------------------------------
+Thu Nov  5 11:19:12 UTC 2020 - Fabian Vogt <fv...@suse.com>
+
+- Fix Driver in sample_odbc.ini
+
+-------------------------------------------------------------------

Old:
----
  fix_macros.patch
  implicit_decleration.patch
  mariadb-connector-odbc-3.1.9-ga-src.tar.gz
  mariadb-connector-odbc-3.1.9-ga-src.tar.gz.asc
  wrong_types.patch

New:
----
  iconv.patch
  mariadb-connector-odbc-3.1.10-ga-src.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mariadb-connector-odbc.spec ++++++
--- /var/tmp/diff_new_pack.m9iuVQ/_old  2020-11-10 13:47:05.379571704 +0100
+++ /var/tmp/diff_new_pack.m9iuVQ/_new  2020-11-10 13:47:05.383571697 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           mariadb-connector-odbc
-Version:        3.1.9
+Version:        3.1.10
 Release:        0
 Summary:        MariaDB ODBC Connector
 License:        LGPL-2.1-or-later
@@ -25,22 +25,21 @@
 URL:            https://downloads.mariadb.org/connector-odbc/
 Source:         
https://downloads.mariadb.org/interstitial/connector-odbc-%{version}/mariadb-connector-odbc-%{version}-ga-src.tar.gz
 # signature is from copy/pasted stuff found on the download page, not actual 
file
-Source1:        mariadb-connector-odbc-%{version}-ga-src.tar.gz.asc
+# Source1:        mariadb-connector-odbc-%{version}-ga-src.tar.gz.asc
 Source2:        README
 Source3:        sample_odbc.ini
 Source4:        mariadb-connector-odbc-rpmlintrc
 Patch1:         mysql_header_path.patch
 Patch6:         DSN_names.patch
 Patch8:         nosoname.patch
-Patch9:         fix_macros.patch
-Patch10:        implicit_decleration.patch
-Patch11:        wrong_types.patch
+Patch9:         iconv.patch
 BuildRequires:  cmake > 3.5.0
 BuildRequires:  gcc-c++
 # This is actually MariaDB -devel package(s)
-BuildRequires:  libmariadb-devel >= 3.1.7
-BuildRequires:  libmariadbprivate >= 3.1.7
+BuildRequires:  libmariadb-devel >= 3.1.11
+BuildRequires:  libmariadbprivate >= 3.1.11
 BuildRequires:  openssl-devel
+BuildRequires:  sed
 BuildRequires:  unixODBC-devel
 Obsoletes:      MyODBC-unixODBC <= 5.1.9
 
@@ -55,17 +54,15 @@
   -DWITH_UNIXODBC=1 \
   -DWITH_OPENSSL=ON \
   -DMARIADB_LINK_DYNAMIC=1 \
-  -DINSTALL_DOC_DIR=%{_docdir}/%{name} \
+  -DINSTALL_DOCDIR=%{_docdir}/%{name} \
   -DINSTALL_LAYOUT=RPM \
-  -DINSTALL_LICENSE_DIR=%{_licensedir}/%{name}
+  -DINSTALL_LICENSEDIR=%{_licensedir}/%{name}
 %cmake_build
 
 %install
 %cmake_install
-rm %{buildroot}/usr/docs/COPYING
-rm %{buildroot}/usr/docs/README
-rmdir %{buildroot}/usr/docs
 install -Dpm 0644 -t %{buildroot}%{_docdir}/%{name} %{SOURCE2} %{SOURCE3}
+sed -i 's#^Driver.*$#Driver = %{_libdir}/mariadb/libmaodbc.so#' 
%{buildroot}%{_docdir}/%{name}/sample_odbc.ini
 
 %post   -p /sbin/ldconfig
 %postun -p /sbin/ldconfig

++++++ DSN_names.patch ++++++
--- /var/tmp/diff_new_pack.m9iuVQ/_old  2020-11-10 13:47:05.411571644 +0100
+++ /var/tmp/diff_new_pack.m9iuVQ/_new  2020-11-10 13:47:05.411571644 +0100
@@ -8,11 +8,11 @@
 The sample DSN config file is manually maintained based on
 these options.
 
-Index: mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c
+Index: mariadb-connector-odbc-3.1.10-ga-src/ma_dsn.c
 ===================================================================
---- mariadb-connector-odbc-3.1.9-ga-src.orig/ma_dsn.c
-+++ mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c
-@@ -33,54 +33,54 @@
+--- mariadb-connector-odbc-3.1.10-ga-src.orig/ma_dsn.c
++++ mariadb-connector-odbc-3.1.10-ga-src/ma_dsn.c
+@@ -34,56 +34,56 @@
  
  MADB_DsnKey DsnKeys[]=
  {
@@ -44,7 +44,21 @@
 -  {"CHARSET",        offsetof(MADB_Dsn, CharacterSet),      DSN_TYPE_COMBO,  
0, 0},
 -  {"TRACE",          offsetof(MADB_Dsn, TraceFile),         DSN_TYPE_STRING, 
0, 0},
 -  {"PLUGIN_DIR",     offsetof(MADB_Dsn, ConnCPluginsDir),   DSN_TYPE_STRING, 
0, 0},
--  /* SSL */
++    {"NamedPipe",      offsetof(MADB_Dsn, IsNamedPipe),       
DSN_TYPE_OPTION, MADB_OPT_FLAG_NAMED_PIPE, 0}, /* MADB_DSNKEY_NAMEDPIPE_INDEX */
++    {"TCPIP",          offsetof(MADB_Dsn, IsTcpIp),           DSN_TYPE_BOOL,  
 0, 0}, /* DSNKEY_TCPIP_INDEX */
++    {"SERVER",         offsetof(MADB_Dsn, ServerName),        
DSN_TYPE_STRING, 0, 0}, /* DSNKEY_SERVER_INDEX     */
++    {"UID",            offsetof(MADB_Dsn, UserName),          
DSN_TYPE_STRING, 0, 0}, /* DSNKEY_UID_INDEX        */
++    {"PWD",            offsetof(MADB_Dsn, Password),          
DSN_TYPE_STRING, 0, 0}, /* DSNKEY_PWD_INDEX        */
++    {"DATABASE",       offsetof(MADB_Dsn, Catalog),           DSN_TYPE_COMBO, 
 0, 0}, /* 10 DSNKEY_DATABASE_INDEX */
++    {"PORT",           offsetof(MADB_Dsn, Port),              DSN_TYPE_INT,   
 0, 0},
++    {"INITSTMT",       offsetof(MADB_Dsn, InitCommand),       
DSN_TYPE_STRING, 0, 0},
++    {"CONN_TIMEOUT",   offsetof(MADB_Dsn, ConnectionTimeout), DSN_TYPE_INT,   
 0, 0},
++    {"AUTO_RECONNECT", offsetof(MADB_Dsn, Reconnect),         
DSN_TYPE_OPTION, MADB_OPT_FLAG_AUTO_RECONNECT,0},
++    {"NO_PROMPT",      offsetof(MADB_Dsn, ConnectPrompt),     
DSN_TYPE_OPTION, MADB_OPT_FLAG_NO_PROMPT,0},
++    {"CHARSET",        offsetof(MADB_Dsn, CharacterSet),      DSN_TYPE_COMBO, 
 0, 0},
++    {"TRACE",          offsetof(MADB_Dsn, TraceFile),         
DSN_TYPE_STRING, 0, 0},
++    {"PLUGIN_DIR",     offsetof(MADB_Dsn, ConnCPluginsDir),   
DSN_TYPE_STRING, 0, 0},
+   /* SSL */
 -  {"SSLKEY",         offsetof(MADB_Dsn, SslKey),            DSN_TYPE_STRING, 
0, 0},
 -  {"SSLCERT",        offsetof(MADB_Dsn, SslCert),           DSN_TYPE_STRING, 
0, 0}, /* 20 */
 -  {"SSLCA",          offsetof(MADB_Dsn, SslCa),             DSN_TYPE_STRING, 
0, 0},
@@ -62,28 +76,8 @@
 -  {"FORCETLS",       offsetof(MADB_Dsn, ForceTls),          DSN_TYPE_BOOL,   
0, 0},
 -  {"SERVERKEY",      offsetof(MADB_Dsn, ServerKey),         DSN_TYPE_STRING, 
0, 0},
 -  {"TLSKEYPWD",      offsetof(MADB_Dsn, TlsKeyPwd),         DSN_TYPE_STRING, 
0, 0},
--  /* Aliases. Here offset is index of aliased key */
--  {"SERVERNAME",     DSNKEY_SERVER_INDEX,                   DSN_TYPE_STRING, 
0, 1},
--  {"USER",           DSNKEY_UID_INDEX,                      DSN_TYPE_STRING, 
0, 1},
--  {"PASSWORD",       DSNKEY_PWD_INDEX,                      DSN_TYPE_STRING, 
0, 1},
--  {"DB",             DSNKEY_DATABASE_INDEX,                 DSN_TYPE_COMBO,  
0, 1},
--  {"SSLFP",          DSNKEY_FP_INDEX,                       DSN_TYPE_STRING, 
0, 1},
--  {"SSLFPLIST",      DSNKEY_FPLIST_INDEX,                   DSN_TYPE_STRING, 
0, 1},
-+    {"NamedPipe",      offsetof(MADB_Dsn, IsNamedPipe),       
DSN_TYPE_OPTION, MADB_OPT_FLAG_NAMED_PIPE, 0}, /* MADB_DSNKEY_NAMEDPIPE_INDEX */
-+    {"TCPIP",          offsetof(MADB_Dsn, IsTcpIp),           DSN_TYPE_BOOL,  
 0, 0}, /* DSNKEY_TCPIP_INDEX */
-+    {"SERVER",         offsetof(MADB_Dsn, ServerName),        
DSN_TYPE_STRING, 0, 0}, /* DSNKEY_SERVER_INDEX     */
-+    {"UID",            offsetof(MADB_Dsn, UserName),          
DSN_TYPE_STRING, 0, 0}, /* DSNKEY_UID_INDEX        */
-+    {"PWD",            offsetof(MADB_Dsn, Password),          
DSN_TYPE_STRING, 0, 0}, /* DSNKEY_PWD_INDEX        */
-+    {"DATABASE",       offsetof(MADB_Dsn, Catalog),           DSN_TYPE_COMBO, 
 0, 0}, /* 10 DSNKEY_DATABASE_INDEX */
-+    {"PORT",           offsetof(MADB_Dsn, Port),              DSN_TYPE_INT,   
 0, 0},
-+    {"INITSTMT",       offsetof(MADB_Dsn, InitCommand),       
DSN_TYPE_STRING, 0, 0},
-+    {"CONN_TIMEOUT",   offsetof(MADB_Dsn, ConnectionTimeout), DSN_TYPE_INT,   
 0, 0},
-+    {"AUTO_RECONNECT", offsetof(MADB_Dsn, Reconnect),         
DSN_TYPE_OPTION, MADB_OPT_FLAG_AUTO_RECONNECT,0},
-+    {"NO_PROMPT",      offsetof(MADB_Dsn, ConnectPrompt),     
DSN_TYPE_OPTION, MADB_OPT_FLAG_NO_PROMPT,0},
-+    {"CHARSET",        offsetof(MADB_Dsn, CharacterSet),      DSN_TYPE_COMBO, 
 0, 0},
-+    {"TRACE",          offsetof(MADB_Dsn, TraceFile),         
DSN_TYPE_STRING, 0, 0},
-+    {"PLUGIN_DIR",     offsetof(MADB_Dsn, ConnCPluginsDir),   
DSN_TYPE_STRING, 0, 0},
-+    /* SSL */
+-  {"INTERACTIVE",    offsetof(MADB_Dsn, InteractiveClient), DSN_TYPE_BOOL,   
0, 0},
+-  {"FORWARDONLY",    offsetof(MADB_Dsn, ForceForwardOnly),  DSN_TYPE_OPTION, 
MADB_OPT_FLAG_FORWARD_CURSOR, 0},
 +    {"SSLKEY",         offsetof(MADB_Dsn, SslKey),            
DSN_TYPE_STRING, 0, 0},
 +    {"SSLCERT",        offsetof(MADB_Dsn, SslCert),           
DSN_TYPE_STRING, 0, 0}, /* 20 */
 +    {"SSLCA",          offsetof(MADB_Dsn, SslCa),             
DSN_TYPE_STRING, 0, 0},
@@ -101,7 +95,15 @@
 +    {"FORCETLS",       offsetof(MADB_Dsn, ForceTls),          DSN_TYPE_BOOL,  
 0, 0},
 +    {"SERVERKEY",      offsetof(MADB_Dsn, ServerKey),         
DSN_TYPE_STRING, 0, 0},
 +    {"TLSKEYPWD",      offsetof(MADB_Dsn, TlsKeyPwd),         
DSN_TYPE_STRING, 0, 0},
-+    /* Aliases. Here offset is index of aliased key */
++    {"INTERACTIVE",    offsetof(MADB_Dsn, InteractiveClient), DSN_TYPE_BOOL,  
 0, 0},
++    {"FORWARDONLY",    offsetof(MADB_Dsn, ForceForwardOnly),  
DSN_TYPE_OPTION, MADB_OPT_FLAG_FORWARD_CURSOR, 0},
+   /* Aliases. Here offset is index of aliased key */
+-  {"SERVERNAME",     DSNKEY_SERVER_INDEX,                   DSN_TYPE_STRING, 
0, 1},
+-  {"USER",           DSNKEY_UID_INDEX,                      DSN_TYPE_STRING, 
0, 1},
+-  {"PASSWORD",       DSNKEY_PWD_INDEX,                      DSN_TYPE_STRING, 
0, 1},
+-  {"DB",             DSNKEY_DATABASE_INDEX,                 DSN_TYPE_COMBO,  
0, 1},
+-  {"SSLFP",          DSNKEY_FP_INDEX,                       DSN_TYPE_STRING, 
0, 1},
+-  {"SSLFPLIST",      DSNKEY_FPLIST_INDEX,                   DSN_TYPE_STRING, 
0, 1},
 +    {"SERVERNAME",     DSNKEY_SERVER_INDEX,                   
DSN_TYPE_STRING, 0, 1},
 +    {"USER",           DSNKEY_UID_INDEX,                      
DSN_TYPE_STRING, 0, 1},
 +    {"PASSWORD",       DSNKEY_PWD_INDEX,                      
DSN_TYPE_STRING, 0, 1},

++++++ iconv.patch ++++++
Index: mariadb-connector-odbc-3.1.10-ga-src/ma_conv_charset.c
===================================================================
--- mariadb-connector-odbc-3.1.10-ga-src.orig/ma_conv_charset.c
+++ mariadb-connector-odbc-3.1.10-ga-src/ma_conv_charset.c
@@ -29,9 +29,10 @@
 #include <string.h>
 #endif
 #include <ma_odbc.h>
-#include "ma_global.h"
 
-#define HAVE_ICONV
+#include <errno.h>
+#include <iconv.h>
+// #include "ma_global.h"
 
 #ifdef HAVE_ICONV
 /* {{{ MADB_MapCharsetName
@@ -109,7 +110,7 @@ size_t STDCALL MADB_ConvertString(const
     *errorcode= errno;
     goto error;
   }
-  if ((rc= iconv(conv, IF_WIN(,IF_SOLARIS(,(char **)))&from, from_len, &to, 
to_len)) == (size_t)-1)
+  if ((rc= iconv(conv, (char **)&from, from_len, &to, to_len)) == (size_t)-1)
   {
     *errorcode= errno;
     goto error;
++++++ mariadb-connector-odbc-3.1.9-ga-src.tar.gz -> 
mariadb-connector-odbc-3.1.10-ga-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/CMakeLists.txt 
new/mariadb-connector-odbc-3.1.10-ga-src/CMakeLists.txt
--- old/mariadb-connector-odbc-3.1.9-ga-src/CMakeLists.txt      2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/CMakeLists.txt     2020-10-18 
22:42:58.000000000 +0200
@@ -22,10 +22,10 @@
 
 SET(MARIADB_ODBC_VERSION_MAJOR 3)
 SET(MARIADB_ODBC_VERSION_MINOR 1)
-SET(MARIADB_ODBC_VERSION_PATCH 9)
+SET(MARIADB_ODBC_VERSION_PATCH 10)
 SET(MARIADB_ODBC_VERSION_QUALITY "ga")
 
-SET(MARIADB_ODBC_VERSION "03.01.0009")
+SET(MARIADB_ODBC_VERSION "03.01.0010")
 
 SET(MARIADB_DEFAULT_PLUGINS_SUBDIR "plugin")
 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/ma_odbc_version.h.in
@@ -146,6 +146,10 @@
 
 ADD_OPTION(WITH_UNIT_TESTS "build test suite" ON)
 
+### Setting installation paths - should go before C/C subproject sets its own. 
We need to have control over those 
+INCLUDE("${CMAKE_SOURCE_DIR}/cmake/install.cmake")
+
+### Including C/C subproject
 IF(EXISTS ${CMAKE_SOURCE_DIR}/libmariadb)
   IF(GIT_BUILD_SRCPKG)
     # We don't want conn/c (wrong) src pkg to be built.
@@ -213,8 +217,6 @@
                           ma_legacy_helpers.h
                           ma_typeconv.h
                           ma_bulk.h)
-                        #  SET(DSN_DIALOG_FILES ${DSN_DIALOG_FILES}
-                        #  ma_platform_win32.c)
 
                        SET(PLATFORM_DEPENDENCIES ws2_32 Shlwapi Pathcch)
   IF (MSVC)
@@ -228,7 +230,9 @@
 ELSE()
   SEARCH_LIBRARY(LIB_MATH floor m)
   SET(PLATFORM_DEPENDENCIES ${LIB_MATH})
-  SET (MARIADB_ODBC_SOURCES ${MARIADB_ODBC_SOURCES} ma_platform_posix.c)
+  SET (MARIADB_ODBC_SOURCES ${MARIADB_ODBC_SOURCES}
+                        ma_platform_posix.c
+                        ma_conv_charset.c)
 ENDIF()
 
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
@@ -354,8 +358,6 @@
   )
 ENDIF()
 
-INCLUDE("${CMAKE_SOURCE_DIR}/cmake/install.cmake")
-
 SET(CPACK_PACKAGE_NAME "mariadb-connector-odbc")
 IF(WIN32)
   ADD_SUBDIRECTORY(wininstall)
@@ -371,16 +373,6 @@
           LIBRARY DESTINATION ${INSTALL_LIBDIR}
           COMPONENT ODBCLibs)
 
-  #IF(NOT DEFINED INSTALL_DOC_DIR)
-  #  SET(INSTALL_DOC_DIR 
"${CMAKE_INSTALL_PREFIX}/share/doc/${CPACK_PACKAGE_NAME}/" CACHE STRING 
"Directory, where to install documentation(README)")
-  #ENDIF()
-
-  #IF(NOT DEFINED INSTALL_LICENSE_DIR)
-  #  SET(INSTALL_LICENSE_DIR 
"${CMAKE_INSTALL_PREFIX}/share/doc/${CPACK_PACKAGE_NAME}/" CACHE STRING 
"Directory, where to install license file")   
-  #ENDIF()
-  MESSAGE(STATUS "Documentation and License file are installed to 
${INSTALL_DOCDIR}")
-  #  MESSAGE(STATUS "License file installed to ${INSTALL_LICENSE_DIR}")
-
   INSTALL(FILES
           ${CMAKE_SOURCE_DIR}/README
           DESTINATION
@@ -389,7 +381,7 @@
   INSTALL(FILES
           ${CMAKE_SOURCE_DIR}/COPYING
           DESTINATION
-          "${INSTALL_DOCDIR}"
+          "${INSTALL_LICENSEDIR}"
           COMPONENT Documentation)
 ENDIF()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/README.md 
new/mariadb-connector-odbc-3.1.10-ga-src/README.md
--- old/mariadb-connector-odbc-3.1.9-ga-src/README.md   2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/README.md  2020-10-18 
22:42:58.000000000 +0200
@@ -8,7 +8,7 @@
 
 ## Status
 [![License (LGPL version 
2.1)](https://img.shields.io/badge/license-GNU%20LGPL%20version%202.1-green.svg?style=flat-square)](http://opensource.org/licenses/LGPL-2.1)
-[![Linux 
Build](https://secure.travis-ci.org/MariaDB-Corporation/mariadb-connector-odbc.png?branch=master)](https://travis-ci.org/MariaDB/mariadb-connector-odbc)
+[![Linux 
Build](https://secure.travis-ci.org/MariaDB-Corporation/mariadb-connector-odbc.png?branch=master)](https://travis-ci.com/MariaDB-Corporation/mariadb-connector-odbc)
 [![Windows 
status](https://ci.appveyor.com/api/projects/status/1fv21j33a6mpkxq5/branch/master?svg=true)](https://ci.appveyor.com/project/LawrinNovitsky/mariadb-connector-odbc)
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-odbc-3.1.9-ga-src/cmake/COPYING-CMAKE-SCRIPTS 
new/mariadb-connector-odbc-3.1.10-ga-src/cmake/COPYING-CMAKE-SCRIPTS
--- old/mariadb-connector-odbc-3.1.9-ga-src/cmake/COPYING-CMAKE-SCRIPTS 
1970-01-01 01:00:00.000000000 +0100
+++ new/mariadb-connector-odbc-3.1.10-ga-src/cmake/COPYING-CMAKE-SCRIPTS        
2020-10-18 22:42:58.000000000 +0200
@@ -0,0 +1,22 @@
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products 
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-odbc-3.1.9-ga-src/cmake/FindDM.cmake 
new/mariadb-connector-odbc-3.1.10-ga-src/cmake/FindDM.cmake
--- old/mariadb-connector-odbc-3.1.9-ga-src/cmake/FindDM.cmake  2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/cmake/FindDM.cmake 2020-10-18 
22:42:58.000000000 +0200
@@ -1,4 +1,4 @@
-#   Copyright (C) 2015 MariaDB Corporation AB
+#   Copyright (C) 2015,2020 MariaDB Corporation AB
 #  
 #  This library is free software; you can redistribute it and/or
 #  modify it under the terms of the GNU Library General Public
@@ -41,6 +41,7 @@
                PATH
                /usr/bin
                ${DM_DIR}
+               "${DM_DIR}/bin"
                )
 
   IF(ODBC_CONFIG)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-odbc-3.1.9-ga-src/cmake/install.cmake 
new/mariadb-connector-odbc-3.1.10-ga-src/cmake/install.cmake
--- old/mariadb-connector-odbc-3.1.9-ga-src/cmake/install.cmake 2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/cmake/install.cmake        
2020-10-18 22:42:58.000000000 +0200
@@ -21,6 +21,8 @@
 # INSTALL_BINDIR    location of binaries (mariadb_config)
 # INSTALL_LIBDIR    location of libraries
 # INSTALL_PLUGINDIR location of plugins
+# INSTALL_DOCDIR    location of docs
+# INSTALL_LICENSEDIR location of license
 
 IF(NOT INSTALL_LAYOUT)
   SET(INSTALL_LAYOUT "DEFAULT")
@@ -61,10 +63,11 @@
 #
 
 SET(INSTALL_BINDIR_DEFAULT "bin")
-SET(INSTALL_LIBDIR_DEFAULT "lib/mariadb")
-SET(INSTALL_PCDIR_DEFAULT "lib/pkgconfig")
+SET(INSTALL_LIBDIR_DEFAULT "${INSTALL_LIB_SUFFIX}/mariadb")
+SET(INSTALL_PCDIR_DEFAULT "${INSTALL_LIB_SUFFIX}/pkgconfig")
 SET(INSTALL_INCLUDEDIR_DEFAULT "include/mariadb")
 SET(INSTALL_DOCDIR_DEFAULT "docs")
+SET(INSTALL_LICENSEDIR_DEFAULT ${INSTALL_DOCDIR_DEFAULT})
 IF(NOT IS_SUBPROJECT)
   SET(INSTALL_PLUGINDIR_DEFAULT "lib/mariadb/plugin")
 ELSE()
@@ -117,6 +120,14 @@
   SET(INSTALL_PLUGINDIR_${INSTALL_LAYOUT} ${INSTALL_PLUGINDIR})
 ENDIF()
 
+IF(INSTALL_DOCDIR)
+  SET(INSTALL_DOCDIR_${INSTALL_LAYOUT} ${INSTALL_DOCDIR})
+ENDIF()
+
+IF(INSTALL_LICENSEDIR)
+  SET(INSTALL_LICENSEDIR_${INSTALL_LAYOUT} ${INSTALL_LICENSEDIR})
+ENDIF()
+
 # Extra INSTALL_PLUGINDIR_CLIENT that overrides any INSTALL_PLUGINDIR override
 IF(INSTALL_PLUGINDIR_CLIENT)
   SET(INSTALL_PLUGINDIR_${INSTALL_LAYOUT} ${INSTALL_PLUGINDIR_CLIENT})
@@ -140,9 +151,9 @@
   SET(INSTALL_SUFFIXDIR_${INSTALL_LAYOUT} ${INSTALL_SUFFIXDIR})
 ENDIF()
 
-FOREACH(dir "BIN" "LIB" "PC" "INCLUDE" "DOC"  "PLUGIN")
+FOREACH(dir "BIN" "LIB" "PC" "INCLUDE" "DOC" "LICENSE" "PLUGIN")
   SET(INSTALL_${dir}DIR ${INSTALL_${dir}DIR_${INSTALL_LAYOUT}})
   MARK_AS_ADVANCED(INSTALL_${dir}DIR)
-  #MESSAGE1(INSTALL_${dir}DIR "MariaDB Connector ODBC: 
INSTALL_${dir}DIR=${INSTALL_${dir}DIR}")
+  MESSAGE(STATUS "MariaDB Connector ODBC: 
INSTALL_${dir}DIR=${INSTALL_${dir}DIR}")
 ENDFOREACH()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/dsn/odbc_dsn.c 
new/mariadb-connector-odbc-3.1.10-ga-src/dsn/odbc_dsn.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/dsn/odbc_dsn.c      2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/dsn/odbc_dsn.c     2020-10-18 
22:42:58.000000000 +0200
@@ -79,6 +79,7 @@
   {&DsnKeys[11], 1, txtPort,              5, 0},
   {&DsnKeys[12], 2, txtInitCmd,        2048, 0},
   {&DsnKeys[13], 2, txtConnectionTimeOut, 5, 0},
+  {&DsnKeys[36], 2, cbInteractive,        0, 0},
   {&DsnKeys[14], 2, ckReconnect,          0, 0},
   {&DsnKeys[15], 2, ckConnectPrompt,      0, 0},
   {&DsnKeys[16], 2, cbCharset,            0, 0},
@@ -95,8 +96,8 @@
   {&DsnKeys[32], 4, cbTls13,              4, 0},
   {&DsnKeys[33], 4, cbForceTls,           0, 0},
   {&DsnKeys[27], 4, txtCrl,               0, 0},
-  {&DsnKeys[25], 4, txtTlsPeerFp,       41, 0},
-  {&DsnKeys[26], 4, txtTlsPeerFpList,   260, 0 },
+  {&DsnKeys[25], 4, txtTlsPeerFp,        41, 0},
+  {&DsnKeys[26], 4, txtTlsPeerFpList,   260, 0},
   {NULL, 0, 0, 0, 0}
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/dsn/odbc_dsn.rc 
new/mariadb-connector-odbc-3.1.10-ga-src/dsn/odbc_dsn.rc
--- old/mariadb-connector-odbc-3.1.9-ga-src/dsn/odbc_dsn.rc     2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/dsn/odbc_dsn.rc    2020-10-18 
22:42:58.000000000 +0200
@@ -134,6 +134,7 @@
     LTEXT           "Statement(s):",IDC_STATIC,20,17,46,8,0,WS_EX_TRANSPARENT
     RTEXT           "Connection timeout in 
sec:",IDC_STATIC,17,62,86,8,0,WS_EX_TRANSPARENT
     EDITTEXT        txtConnectionTimeOut,111,60,40,14,ES_AUTOHSCROLL
+    CONTROL         "The client is 
interactive",cbInteractive,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,154,62,80,10
     CONTROL         "Enable automatic 
&reconnect",ckReconnect,"Button",BS_AUTOCHECKBOX | 
WS_TABSTOP,16,79,107,10,WS_EX_TRANSPARENT
     CONTROL         "Don't prompt when 
connecting",ckConnectPrompt,"Button",BS_AUTOCHECKBOX | 
WS_TABSTOP,16,95,113,10,WS_EX_TRANSPARENT
     CONTROL         "Use compression",ckCompressed,"Button",BS_AUTOCHECKBOX | 
WS_TABSTOP,163,79,107,10,WS_EX_TRANSPARENT
@@ -243,7 +244,7 @@
     CONTROL         "Return SQL_NULL_DATA for zero 
date",ckNullDate,"Button",BS_AUTOCHECKBOX | 
WS_TABSTOP,16,93,139,10,WS_EX_TRANSPARENT
 //    CONTROL         "Don't cache results of forward only 
cursors",ckDontCacheForwardCursor,
 //                   "Button",BS_AUTOCHECKBOX | 
WS_TABSTOP,16,108,153,10,WS_EX_TRANSPARENT
-//    CONTROL         "Force use of forward only 
cursors",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | 
WS_TABSTOP,16,123,124,10,WS_EX_TRANSPARENT
+    CONTROL         "Force use of forward only 
cursors",ckForwardCursorOnly,"Button",BS_AUTOCHECKBOX | 
WS_TABSTOP,16,108,124,10,WS_EX_TRANSPARENT
 //    CONTROL         "Prefetch rows",ckPrefetchRows,"Button",BS_AUTOCHECKBOX 
| WS_TABSTOP,197,33,61,10,WS_EX_TRANSPARENT
 END
 
Binary files old/mariadb-connector-odbc-3.1.9-ga-src/dsn/resource.h and 
new/mariadb-connector-odbc-3.1.10-ga-src/dsn/resource.h differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/ma_common.c 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_common.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_common.c 2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_common.c        2020-10-18 
22:42:58.000000000 +0200
@@ -21,6 +21,7 @@
  * Moved to avoid redundant dependencies */
 
 #include <ma_odbc.h>
+#include <wctype.h>
 
 static unsigned int ValidChar(const char *start, const char *end)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/ma_connection.c 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_connection.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_connection.c     2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_connection.c    2020-10-18 
22:42:58.000000000 +0200
@@ -686,6 +686,10 @@
   if (DSN_OPTION(Connection, MADB_OPT_FLAG_MULTI_STATEMENTS))
     client_flags|= CLIENT_MULTI_STATEMENTS;
 
+  if (Dsn->InteractiveClient)
+  {
+    mysql_optionsv(Connection->mariadb, MARIADB_OPT_INTERACTIVE, 1);
+  }
   /* enable truncation reporting */
   mysql_optionsv(Connection->mariadb, MYSQL_REPORT_DATA_TRUNCATION, 
&ReportDataTruncation);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-odbc-3.1.9-ga-src/ma_conv_charset.c 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_conv_charset.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_conv_charset.c   1970-01-01 
01:00:00.000000000 +0100
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_conv_charset.c  2020-10-18 
22:42:58.000000000 +0200
@@ -0,0 +1,125 @@
+/****************************************************************************
+   Copyright (C) 2012, 2020, MariaDB Corporation.
+   
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+   
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+   
+   You should have received a copy of the GNU Library General Public
+   License along with this library; if not see <http://www.gnu.org/licenses>
+   or write to the Free Software Foundation, Inc., 
+   51 Franklin St., Fifth Floor, Boston, MA 02110, USA
+
+   Part of this code includes code from the PHP project which
+   is freely available from http://www.php.net
+*****************************************************************************/
+
+
+#ifndef _WIN32
+#include <strings.h>
+#include <string.h>
+#include <iconv.h>
+#else
+#include <string.h>
+#endif
+#include <ma_odbc.h>
+#include "ma_global.h"
+
+#define HAVE_ICONV
+
+#ifdef HAVE_ICONV
+/* {{{ MADB_MapCharsetName
+   Changing charset name into something iconv understands, if necessary.
+   Another purpose it to avoid BOMs in result string, adding BE if necessary
+   e.g.UTF16 does not work form iconv, while UTF-16 does.
+ */
+static void MADB_MapCharsetName(const char *cs_name, my_bool target_cs, char 
*buffer, size_t buff_len)
+{
+  char digits[3], endianness[3]= "BE";
+
+  if (sscanf(cs_name, "UTF%2[0-9]%2[LBE]", digits, endianness))
+  {
+    /* We should have at least digits. Endianness we write either default(BE), 
or what we found in the string */
+    snprintf(buffer, buff_len, "UTF-%s%s", digits, endianness);
+  }
+  else
+  {
+    /* Not our client - copy as is*/
+    strncpy(buffer, cs_name, buff_len - 1);
+    buffer[buff_len - 1]= '\0';
+  }
+
+  if (target_cs)
+  {
+    strncat(buffer, "//TRANSLIT", buff_len - strlen(buffer));
+  }
+}
+/* }}} */
+#endif
+
+/* {{{ MADB_ConvertString
+   Converts string from one charset to another, and writes converted string to 
given buffer
+   @param[in]     from
+   @param[in/out] from_len
+   @param[in]     from_cs
+   @param[out]    to
+   @param[in/out] to_len
+   @param[in]     to_cs
+   @param[out]    errorcode
+
+   @return -1 in case of error, bytes used in the "to" buffer, otherwise
+ */
+size_t STDCALL MADB_ConvertString(const char *from __attribute__((unused)),
+                                   size_t *from_len __attribute__((unused)),
+                                   MARIADB_CHARSET_INFO *from_cs 
__attribute__((unused)),
+                                   char *to __attribute__((unused)),
+                                   size_t *to_len __attribute__((unused)),
+                                   MARIADB_CHARSET_INFO *to_cs 
__attribute__((unused)), int *errorcode)
+{
+#ifndef HAVE_ICONV
+  *errorcode= ENOTSUP;
+  return -1;
+#else
+  iconv_t conv= 0;
+  size_t rc= -1;
+  size_t save_len= *to_len;
+  char to_encoding[128], from_encoding[128];
+
+  *errorcode= 0;
+
+  /* check if conversion is supported */
+  if (!from_cs || !from_cs->encoding || !from_cs->encoding[0] ||
+      !to_cs || !to_cs->encoding || !to_cs->encoding[0])
+  {
+    *errorcode= EINVAL;
+    return rc;
+  }
+
+  MADB_MapCharsetName(to_cs->encoding, 1, to_encoding, sizeof(to_encoding));
+  MADB_MapCharsetName(from_cs->encoding, 0, from_encoding, 
sizeof(from_encoding));
+
+  if ((conv= iconv_open(to_encoding, from_encoding)) == (iconv_t)-1)
+  {
+    *errorcode= errno;
+    goto error;
+  }
+  if ((rc= iconv(conv, IF_WIN(,IF_SOLARIS(,(char **)))&from, from_len, &to, 
to_len)) == (size_t)-1)
+  {
+    *errorcode= errno;
+    goto error;
+  }
+  rc= save_len - *to_len;
+error:
+  if (conv != (iconv_t)-1)
+    iconv_close(conv);
+  return rc;
+#endif
+}
+/* }}} */
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-odbc-3.1.9-ga-src/ma_conv_charset.h 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_conv_charset.h
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_conv_charset.h   1970-01-01 
01:00:00.000000000 +0100
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_conv_charset.h  2020-10-18 
22:42:58.000000000 +0200
@@ -0,0 +1,34 @@
+/****************************************************************************
+   Copyright (C) 2012, 2020, MariaDB Corporation.
+   
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+   
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+   
+   You should have received a copy of the GNU Library General Public
+   License along with this library; if not see <http://www.gnu.org/licenses>
+   or write to the Free Software Foundation, Inc., 
+   51 Franklin St., Fifth Floor, Boston, MA 02110, USA
+
+   Part of this code includes code from the PHP project which
+   is freely available from http://www.php.net
+*****************************************************************************/
+
+#ifndef _MA_CONV_CHARSET_H_
+#define _MA_CONV_CHARSET_H_
+
+#include "mariadb_ctype.h"
+
+size_t MADB_ConvertString(const char *from __attribute__((unused)),
+                          size_t *from_len __attribute__((unused)),
+                          MARIADB_CHARSET_INFO *from_cs 
__attribute__((unused)),
+                          char *to __attribute__((unused)),
+                          size_t *to_len __attribute__((unused)),
+                          MARIADB_CHARSET_INFO *to_cs __attribute__((unused)), 
int *errorcode);
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/ma_debug.c 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_debug.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_debug.c  2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_debug.c 2020-10-18 
22:42:58.000000000 +0200
@@ -17,6 +17,7 @@
    51 Franklin St., Fifth Floor, Boston, MA 02110, USA
 
*************************************************************************************/
 #include <ma_odbc.h>
+#include <wchar.h>
 
 #ifdef MAODBC_DEBUG
 extern char LogFile[];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_dsn.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.c    2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_dsn.c   2020-10-18 
22:42:58.000000000 +0200
@@ -16,6 +16,7 @@
    or write to the Free Software Foundation, Inc., 
    51 Franklin St., Fifth Floor, Boston, MA 02110, USA
 
*************************************************************************************/
+#define _GNU_SOURCE
 #include <ma_odbc.h>
 
 
@@ -74,6 +75,8 @@
   {"FORCETLS",       offsetof(MADB_Dsn, ForceTls),          DSN_TYPE_BOOL,   
0, 0},
   {"SERVERKEY",      offsetof(MADB_Dsn, ServerKey),         DSN_TYPE_STRING, 
0, 0},
   {"TLSKEYPWD",      offsetof(MADB_Dsn, TlsKeyPwd),         DSN_TYPE_STRING, 
0, 0},
+  {"INTERACTIVE",    offsetof(MADB_Dsn, InteractiveClient), DSN_TYPE_BOOL,   
0, 0},
+  {"FORWARDONLY",    offsetof(MADB_Dsn, ForceForwardOnly),  DSN_TYPE_OPTION, 
MADB_OPT_FLAG_FORWARD_CURSOR, 0},
   /* Aliases. Here offset is index of aliased key */
   {"SERVERNAME",     DSNKEY_SERVER_INDEX,                   DSN_TYPE_STRING, 
0, 1},
   {"USER",           DSNKEY_UID_INDEX,                      DSN_TYPE_STRING, 
0, 1},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.h 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_dsn.h
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_dsn.h    2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_dsn.h   2020-10-18 
22:42:58.000000000 +0200
@@ -136,6 +136,8 @@
   char *ServerKey;
   char *SaveFile;
   my_bool ReadMycnf;
+  my_bool InteractiveClient;
+  my_bool ForceForwardOnly;
   /* --- Internal --- */
   int isPrompt;
   MADB_DsnKey *Keys;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/ma_error.c 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_error.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_error.c  2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_error.c 2020-10-18 
22:42:58.000000000 +0200
@@ -144,7 +144,7 @@
   { "S1000", "", "General error", SQL_ERROR},
   { "S1107", "", "Row value out of range", SQL_ERROR},
   { "S1C00", "", "Optional feature not implemented", SQL_ERROR},
-  { 0,0,0, -1}
+  { "", "", "", -1}
 };
 /* }}} */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/ma_error.h 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_error.h
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_error.h  2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_error.h 2020-10-18 
22:42:58.000000000 +0200
@@ -159,12 +159,13 @@
                             DiagInfoPtr, SQLSMALLINT BufferLength,
                             SQLSMALLINT *StringLengthPtr, my_bool isWChar);
 
-#define MADB_CLEAR_ERROR(a) \
+#define MADB_CLEAR_ERROR(a) do { \
   strcpy_s((a)->SqlState, SQL_SQLSTATE_SIZE+1, 
MADB_ErrorList[MADB_ERR_00000].SqlState); \
   (a)->SqlErrorMsg[(a)->PrefixLen]= 0; \
   (a)->NativeError= 0;\
   (a)->ReturnValue= SQL_SUCCESS;\
-  (a)->ErrorNum= 0;
+  (a)->ErrorNum= 0; \
+} while (0)
 
 #define MADB_CLEAR_HANDLE_ERROR(handle_type, handle) \
   switch (handle_type) { \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/ma_helper.h 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_helper.h
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_helper.h 2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_helper.h        2020-10-18 
22:42:58.000000000 +0200
@@ -93,9 +93,11 @@
 
 #define BUFFER_CHAR_LEN(blen,wchar) (wchar) ? (blen) / sizeof(SQLWCHAR) : 
(blen)
 
-#define MADB_FREE(a) \
+#define MADB_FREE(a) do { \
   free((a));\
-  (a)= NULL;
+  (a)= NULL; \
+} while(0)
+
 #define MADB_ALLOC(a) malloc((a))
 #define MADB_CALLOC(a) calloc((a) > 0 ? (a) : 1, sizeof(char))
 #define MADB_REALLOC(a,b) realloc((a),(b))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_posix.c 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_platform_posix.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_posix.c 2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_platform_posix.c        
2020-10-18 22:42:58.000000000 +0200
@@ -1,5 +1,5 @@
 
/************************************************************************************
-   Copyright (C) 2014,2016 MariaDB Corporation AB
+   Copyright (C) 2014,2020 MariaDB Corporation AB
    
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
@@ -25,6 +25,7 @@
 
 #include <ma_odbc.h>
 #include <stdarg.h>
+#include "ma_conv_charset.h"
 
 extern MARIADB_CHARSET_INFO *DmUnicodeCs;
 extern Client_Charset utf8;
@@ -163,8 +164,8 @@
   if ((WStr= (SQLWCHAR *)MADB_CALLOC(sizeof(SQLWCHAR) * (PtrLength + 1))))
   {
     size_t wstr_octet_len= sizeof(SQLWCHAR) * (PtrLength + 1);
-    /* TODO: Need error processing. i.e. if mariadb_convert_string returns -1 
*/
-    mariadb_convert_string(Ptr, &Length, cc->cs_info, (char*)WStr, 
&wstr_octet_len, DmUnicodeCs, NULL);
+    /* TODO: Need error processing. i.e. if MADB_ConvertString returns -1 */
+    MADB_ConvertString(Ptr, &Length, cc->cs_info, (char*)WStr, 
&wstr_octet_len, DmUnicodeCs, NULL);
   }
 
   return WStr;
@@ -203,7 +204,7 @@
   }
   else
   {
-    /* PtrLength is in characters. mariadb_convert_string(iconv) needs bytes */
+    /* PtrLength is in characters. MADB_ConvertString(iconv) needs bytes */
     PtrOctetLen= SqlwcsOctetLen(Ptr, &PtrLength);
     AscLen= PtrLength*cc->cs_info->char_maxlen;
   }
@@ -211,7 +212,7 @@
   if (!(AscStr = (char *)MADB_CALLOC(AscLen)))
     return NULL;
 
-  AscLen= mariadb_convert_string((char*)Ptr, &PtrOctetLen, DmUnicodeCs, 
AscStr, &AscLen, cc->cs_info, Error);
+  AscLen= MADB_ConvertString((char*)Ptr, &PtrOctetLen, DmUnicodeCs, AscStr, 
&AscLen, cc->cs_info, Error);
 
   if (AscLen != (size_t)-1)
   {
@@ -290,7 +291,7 @@
   SrcOctetLen= AnsiLength + IsNull;
   DestOctetLen= sizeof(SQLWCHAR) * RequiredLength;
 
-  RequiredLength= mariadb_convert_string(AnsiString, &SrcOctetLen, 
cc->cs_info, 
+  RequiredLength= MADB_ConvertString(AnsiString, &SrcOctetLen, cc->cs_info, 
                                         (char*)Tmp, &DestOctetLen, 
DmUnicodeCs, &error);
 
   if (RequiredLength < 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_win32.c 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_platform_win32.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_platform_win32.c 2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_platform_win32.c        
2020-10-18 22:42:58.000000000 +0200
@@ -306,7 +306,7 @@
   GetModuleFileNameW(hModule, wOurLocation, _MAX_PATH);
   hr= PathCchRemoveFileSpec(wOurLocation, _MAX_PATH);
 
-  WideCharToMultiByte(GetACP(), 0, wOurLocation, -1, Buffer, Size, NULL, NULL);
+  WideCharToMultiByte(GetACP(), 0, wOurLocation, -1, Buffer, (int)Size, NULL, 
NULL);
   if (strlen(Buffer) < Size - strlen(PluginsSubDirName))
   {
     strcpy(Buffer + strlen(Buffer), PluginsSubDirName);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-odbc-3.1.9-ga-src/ma_statement.c 
new/mariadb-connector-odbc-3.1.10-ga-src/ma_statement.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/ma_statement.c      2020-06-30 
19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/ma_statement.c     2020-10-18 
22:42:58.000000000 +0200
@@ -50,8 +50,8 @@
   UNLOCK_MARIADB(Connection);
   Stmt->PutParam= -1;
   Stmt->Methods= &MADB_StmtMethods;
-  /* default behaviour is SQL_CURSOR_STATIC */
-  Stmt->Options.CursorType= SQL_CURSOR_STATIC;
+  /* default behaviour is SQL_CURSOR_STATIC. But should be 
SQL_CURSOR_FORWARD_ONLY according to specs(see bug ODBC-290) */
+  Stmt->Options.CursorType= MA_ODBC_CURSOR_FORWARD_ONLY(Connection) ? 
SQL_CURSOR_FORWARD_ONLY : SQL_CURSOR_STATIC;
   Stmt->Options.UseBookmarks= SQL_UB_OFF;
   Stmt->Options.MetadataId= Connection->MetadataId;
 
@@ -2000,14 +2000,23 @@
   }
 
   Stmt->LastRowFetched= 0;
+  Rows2Fetch= MADB_RowsToFetch(&Stmt->Cursor, Stmt->Ard->Header.ArraySize, 
mysql_stmt_num_rows(Stmt->stmt));
 
-  if (Stmt->result == NULL && !(Stmt->result= (MYSQL_BIND 
*)MADB_CALLOC(sizeof(MYSQL_BIND) * mysql_stmt_field_count(Stmt->stmt))))
+  if (Stmt->result == NULL)
   {
-    MADB_SetError(&Stmt->Error, MADB_ERR_HY001, NULL, 0);
-    return Stmt->Error.ReturnValue;
+    if (!(Stmt->result= (MYSQL_BIND *)MADB_CALLOC(sizeof(MYSQL_BIND) * 
mysql_stmt_field_count(Stmt->stmt))))
+    {
+      MADB_SetError(&Stmt->Error, MADB_ERR_HY001, NULL, 0);
+      return Stmt->Error.ReturnValue;
+    }
+    if (Rows2Fetch > 1)
+    {
+      // We need something to be bound after executing for MoveNext function
+      mysql_stmt_bind_result(Stmt->stmt, Stmt->result);
+    }
   }
 
-  Rows2Fetch= MADB_RowsToFetch(&Stmt->Cursor, Stmt->Ard->Header.ArraySize, 
mysql_stmt_num_rows(Stmt->stmt));
+  
   if (Rows2Fetch == 0)
   {
     return SQL_NO_DATA;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-odbc-3.1.9-ga-src/wininstall/change_dsns_driver.c 
new/mariadb-connector-odbc-3.1.10-ga-src/wininstall/change_dsns_driver.c
--- old/mariadb-connector-odbc-3.1.9-ga-src/wininstall/change_dsns_driver.c     
2020-06-30 19:43:44.000000000 +0200
+++ new/mariadb-connector-odbc-3.1.10-ga-src/wininstall/change_dsns_driver.c    
2020-10-18 22:42:58.000000000 +0200
@@ -229,7 +229,7 @@
   char  DsnSubkey[64 /*> sizeof("Software\\ODBC\\ODBC.INI\\ODBC Data Sources") 
*/ + SQL_MAX_DSN_LENGTH],
     **DsnToChange= (char**)NULL;
   HKEY  OdbcIni, OdbcDataSources;
-  DWORD DriverLen, NewDriverNameLen= strlen(NewDriverName) + 1/*Should be with 
TN*/;
+  DWORD DriverLen, NewDriverNameLen= (DWORD)(strlen(NewDriverName) + 
1)/*Should be with TN*/;
   DWORD DsNameLen= sizeof(DsName), DsnCount= 0, i, TargetDsnCount= 0;
 
   OdbcIni= MA_OpenRegKey(Branch, "Software\\ODBC\\ODBC.INI", TRUE);

++++++ sample_odbc.ini ++++++
--- /var/tmp/diff_new_pack.m9iuVQ/_old  2020-11-10 13:47:05.643571205 +0100
+++ /var/tmp/diff_new_pack.m9iuVQ/_new  2020-11-10 13:47:05.643571205 +0100
@@ -57,6 +57,8 @@
 #SaveFile =
 
 #ReadMycnf =
+#InteractiveClient =
+#ForceForwardOnly
 
 # Options is a numeric combination of the following constants
 #


Reply via email to