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 <[email protected]>
+
+- 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 <[email protected]>
+
+- 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
[](http://opensource.org/licenses/LGPL-2.1)
-[](https://travis-ci.org/MariaDB/mariadb-connector-odbc)
+[](https://travis-ci.com/MariaDB-Corporation/mariadb-connector-odbc)
[](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
#