Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mysql-connector-cpp for 
openSUSE:Factory checked in at 2022-04-12 21:50:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mysql-connector-cpp (Old)
 and      /work/SRC/openSUSE:Factory/.mysql-connector-cpp.new.1900 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mysql-connector-cpp"

Tue Apr 12 21:50:39 2022 rev:32 rq:969377 version:8.0.28

Changes:
--------
--- /work/SRC/openSUSE:Factory/mysql-connector-cpp/mysql-connector-cpp.changes  
2021-11-05 22:59:24.756312189 +0100
+++ 
/work/SRC/openSUSE:Factory/.mysql-connector-cpp.new.1900/mysql-connector-cpp.changes
        2022-04-12 21:51:04.238459279 +0200
@@ -1,0 +2,9 @@
+Fri Apr  8 10:01:37 UTC 2022 - Mykola Krachkovsky <[email protected]>
+
+- Updated to version 8.0.28
+  * release notes:
+    https://dev.mysql.com/doc/relnotes/connector-cpp/en/news-8-0-28.html
+- Updated patch due to code changes
+  * modified mysql-connector-cpp-mariadb.patch
+
+-------------------------------------------------------------------

Old:
----
  mysql-connector-c++-8.0.27-src.tar.gz

New:
----
  mysql-connector-c++-8.0.28-src.tar.gz

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

Other differences:
------------------
++++++ mysql-connector-cpp.spec ++++++
--- /var/tmp/diff_new_pack.Dw4DKc/_old  2022-04-12 21:51:04.878452090 +0200
+++ /var/tmp/diff_new_pack.Dw4DKc/_new  2022-04-12 21:51:04.886452000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package mysql-connector-cpp
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %define libname libmysqlcppconn9
 %define x_libname libmysqlcppconn8-2
 Name:           mysql-connector-cpp
-Version:        8.0.27
+Version:        8.0.28
 Release:        0
 Summary:        MySQL Connector/C++: Standardized database driver for C++ 
development
 License:        SUSE-GPL-2.0-with-FLOSS-exception

++++++ mysql-connector-c++-8.0.27-src.tar.gz -> 
mysql-connector-c++-8.0.28-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysql-connector-c++-8.0.27-src/INFO_SRC 
new/mysql-connector-c++-8.0.28-src/INFO_SRC
--- old/mysql-connector-c++-8.0.27-src/INFO_SRC 2021-09-24 07:32:52.000000000 
+0200
+++ new/mysql-connector-c++-8.0.28-src/INFO_SRC 2021-11-17 16:18:43.000000000 
+0100
@@ -1,7 +1,7 @@
 MySQL Connector/C++ Sources Information
 
-version              :  8.0.27
-branch               :  release/8.0.27
-commit               :  cf30171c211edbf82c06e329cc1a3fe60e00ad2e
-short                :  cf30171c
+version              :  8.0.28
+branch               :  release/8.0.28
+commit               :  bbdd0dc2cb87217b8939535c90bc9b24c9e87466
+short                :  bbdd0dc2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysql-connector-c++-8.0.27-src/LICENSE.txt 
new/mysql-connector-c++-8.0.28-src/LICENSE.txt
--- old/mysql-connector-c++-8.0.27-src/LICENSE.txt      2021-09-24 
07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/LICENSE.txt      2021-11-17 
16:03:52.000000000 +0100
@@ -10,7 +10,7 @@
    third-party software which may be included in this distribution of
    MySQL Connector/C++ 8.0.
 
-   Last updated: July 2021
+   Last updated: November 2021
 
 Licensing Information
 
@@ -428,6 +428,7 @@
    Software with Other FOSS, and the constants, function signatures, data
    structures and other invocation methods used to run or interact with
    each of them (as to each, such software's "Interfaces"):
+
     i. The Software's Interfaces may, to the extent permitted by the
        license of the Other FOSS, be copied into, used and distributed in
        the Other FOSS in order to enable interoperability, without
@@ -437,6 +438,7 @@
        including without limitation as used in the Other FOSS (which upon
        any such use also then contains a portion of the Software under the
        Software License).
+
    ii. The Other FOSS's Interfaces may, to the extent permitted by the
        license of the Other FOSS, be copied into, used and distributed in
        the Software in order to enable interoperability, without requiring
@@ -444,6 +446,7 @@
        License or otherwise altering their original terms, if this does
        not require any portion of the Software other than such Interfaces
        to be licensed under the terms other than the Software License.
+
    iii. If only Interfaces and no other code is copied between the
        Software and the Other FOSS in either direction, the use and/or
        distribution of the Software with the Other FOSS shall not be
@@ -477,6 +480,7 @@
 Cyrus SASL
 
    Cyrus SASL
+
 * Copyright (c) 1994-2012 Carnegie Mellon University.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
@@ -1918,6 +1922,7 @@
    the original SSLeay license, separate from the Oracle product. If you
    do not wish to install this library, you may remove it, but the Oracle
    program might not operate properly or at all without it.
+
   LICENSE ISSUES
   ==============
 
@@ -2158,6 +2163,7 @@
 ZSTD
 
    Zstandard
+
 Zstandard is dual-licensed under [BSD](LICENSE) and [GPLv2](COPYING).
 
  /*
@@ -2563,6 +2569,7 @@
    request to the address listed below or by sending an email to Oracle
    using the following link:
    http://www.oracle.com/goto/opensourcecode/request.
+
   Oracle America, Inc.
   Attn: Senior Vice President
   Development and Engineering Legal
@@ -2570,20 +2577,30 @@
   Redwood Shores, CA 94065
 
    Your request should include:
+
      * The name of the binary for which you are requesting the source code
+
      * The name and version number of the Oracle product containing the
        binary
+
      * The date you received the Oracle product
+
      * Your name
+
      * Your company name (if applicable)
+
      * Your return mailing address and email, and
+
      * A telephone number in the event we need to reach you.
 
+
    We may charge you a fee to cover the cost of physical media and
    processing.
 
    Your request must be sent
+
     a. within three (3) years of the date you received the Oracle product
        that included the binary that is the subject of your request, or
+
     b. in the case of code licensed under the GPL v3 for as long as Oracle
        offers spare parts or customer support for that product model.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysql-connector-c++-8.0.27-src/README.txt 
new/mysql-connector-c++-8.0.28-src/README.txt
--- old/mysql-connector-c++-8.0.27-src/README.txt       2021-09-24 
07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/README.txt       2021-11-17 
16:03:52.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright (c) 2008, 2021, Oracle and/or its affiliates.
+Copyright (c) 2008, 2022, Oracle and/or its affiliates.
 
 This is a release of MySQL Connector/C++, the C++ interface for communicating
 with MySQL servers.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/cdk/foundation/connection_openssl.cc 
new/mysql-connector-c++-8.0.28-src/cdk/foundation/connection_openssl.cc
--- old/mysql-connector-c++-8.0.27-src/cdk/foundation/connection_openssl.cc     
2021-09-24 07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/cdk/foundation/connection_openssl.cc     
2021-11-17 16:03:52.000000000 +0100
@@ -79,8 +79,6 @@
 // Note: this list must be in increasing order.
 
 #define TLS_VERSIONS(X) \
-  X("TLSv1",   TLS1_VERSION,   1,0) \
-  X("TLSv1.1", TLS1_1_VERSION, 1,1) \
   X("TLSv1.2", TLS1_2_VERSION, 1,2) \
   X("TLSv1.3", TLS1_3_VERSION, 1,3) \
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/cdk/include/mysql/cdk/codec.h 
new/mysql-connector-c++-8.0.28-src/cdk/include/mysql/cdk/codec.h
--- old/mysql-connector-c++-8.0.27-src/cdk/include/mysql/cdk/codec.h    
2021-09-24 07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/cdk/include/mysql/cdk/codec.h    
2021-11-17 16:03:52.000000000 +0100
@@ -67,7 +67,7 @@
 {
 public:
 
-  enum Fmt { UINT, SINT };
+  enum Fmt { UINT, SINT, BIT };
 
   Format(const Format_info &fi)
     : Format_base(TYPE_INTEGER, fi)
@@ -76,7 +76,8 @@
     fi.get_info(*this);
   }
 
-  bool is_unsigned() const { return UINT == m_fmt; }
+  bool is_bit() const { return BIT == m_fmt;}
+  bool is_unsigned() const { return UINT == m_fmt || BIT == m_fmt; }
   size_t length() const { return m_length; }
 
 protected:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/cdk/include/mysql/cdk/mysqlx/result.h 
new/mysql-connector-c++-8.0.28-src/cdk/include/mysql/cdk/mysqlx/result.h
--- old/mysql-connector-c++-8.0.27-src/cdk/include/mysql/cdk/mysqlx/result.h    
2021-09-24 07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/cdk/include/mysql/cdk/mysqlx/result.h    
2021-11-17 16:03:52.000000000 +0100
@@ -155,6 +155,7 @@
   {
     switch (m_type)
     {
+    case protocol::mysqlx::col_type::BIT:
     case protocol::mysqlx::col_type::SINT:
     case protocol::mysqlx::col_type::UINT:
       return TYPE_INTEGER == type;
@@ -199,6 +200,9 @@
     case protocol::mysqlx::col_type::UINT:
       Format<TYPE_INTEGER>::Access::set_fmt(fmt, Format<TYPE_INTEGER>::UINT);
       break;
+    case protocol::mysqlx::col_type::BIT:
+      Format<TYPE_INTEGER>::Access::set_fmt(fmt, Format<TYPE_INTEGER>::BIT);
+      break;
     }
     Format<TYPE_INTEGER>::Access::set_length(fmt, m_length);
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysql-connector-c++-8.0.27-src/cdk/mysqlx/result.cc 
new/mysql-connector-c++-8.0.28-src/cdk/mysqlx/result.cc
--- old/mysql-connector-c++-8.0.27-src/cdk/mysqlx/result.cc     2021-09-24 
07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/cdk/mysqlx/result.cc     2021-11-17 
16:03:52.000000000 +0100
@@ -653,6 +653,7 @@
 
   switch (md.m_type)
   {
+  case col_type::BIT:
   case col_type::SINT:
   case col_type::UINT:
     return TYPE_INTEGER;
@@ -680,7 +681,7 @@
     return TYPE_STRING;
 
   default:
-    // TODO: correctly handle all X types (BIT)
+    // TODO: correctly handle all X types
     return TYPE_BYTES;
   }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysql-connector-c++-8.0.27-src/common/session.cc 
new/mysql-connector-c++-8.0.28-src/common/session.cc
--- old/mysql-connector-c++-8.0.27-src/common/session.cc        2021-09-24 
07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/common/session.cc        2021-11-17 
16:03:52.000000000 +0100
@@ -364,7 +364,12 @@
       switch (opt_val.first)
       {
       case Option::TLS_VERSIONS:
+        try {
         tls_opt.add_version(opt_val.second.get_string());
+      }  catch (const cdk::Error&) {
+          //unexpected TLS versions are not errors. Only if no valid tls 
version
+          //is available, an error will be thrown below.
+        }
         break;
       case Option::TLS_CIPHERSUITES:
         tls_opt.add_ciphersuite(opt_val.second.get_string());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysql-connector-c++-8.0.27-src/devapi/result.cc 
new/mysql-connector-c++-8.0.28-src/devapi/result.cc
--- old/mysql-connector-c++-8.0.27-src/devapi/result.cc 2021-09-24 
07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/devapi/result.cc 2021-11-17 
16:03:52.000000000 +0100
@@ -115,6 +115,9 @@
     const Format_descr<cdk::TYPE_INTEGER> &fd
       = fmt.get<cdk::TYPE_INTEGER>();
 
+    if(fd.m_format.is_bit())
+      return Type::BIT;
+
     size_t f_len = fd.m_format.length();
 
     if (f_len < 5)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysql-connector-c++-8.0.27-src/devapi/session.cc 
new/mysql-connector-c++-8.0.28-src/devapi/session.cc
--- old/mysql-connector-c++-8.0.27-src/devapi/session.cc        2021-09-24 
07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/devapi/session.cc        2021-11-17 
16:03:52.000000000 +0100
@@ -257,7 +257,7 @@
   catch(const cdk::Error &e)
   {
     if (e.code() == cdk::cdkerrc::tls_versions)
-      throw_error("No supported TLS protocol version found in the 
'tls-versions' list");
+      throw_error("No valid TLS version was given, valid versions are: 
TLSv1.2, TLSv1.3");
 
     else if (e.code() == cdk::cdkerrc::tls_ciphers)
       throw_error("No valid cipher suite found in the 'tls-ciphersuites' 
list");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/devapi/tests/session-t.cc 
new/mysql-connector-c++-8.0.28-src/devapi/tests/session-t.cc
--- old/mysql-connector-c++-8.0.27-src/devapi/tests/session-t.cc        
2021-09-24 07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/devapi/tests/session-t.cc        
2021-11-17 16:03:52.000000000 +0100
@@ -4123,3 +4123,59 @@
 
   }
 }
+
+TEST_F(Sess, tls_ver_deprecate)
+{
+  SKIP_IF_NO_XPLUGIN;
+
+  struct TEST_CASES
+  {
+    std::string tls_versions;
+    bool succeed;
+  };
+
+  bool has_tlsv1_3 = check_tls_ver("TLSv1.3");
+
+  TEST_CASES test_cases[] =
+  {
+    {"TLSv1.1,TLSv1.2" ,true        },
+    {"foo,TLSv1.3"     ,has_tlsv1_3 },
+    {"TLSv1.0,TLSv1.1" ,false       },
+    {"foo,TLSv1.1"     ,false       },
+    {"foo,bar"         ,false       },
+    {""                ,false       }
+  };
+
+  for(auto test : test_cases)
+  {
+
+    std::cout << "Testing:" << test.tls_versions << std::endl;
+
+    {
+      SessionSettings opt(SessionOption::HOST, get_host(),
+                          SessionOption::PORT, get_port(),
+                          SessionOption::USER, get_user(),
+                          SessionOption::PWD, get_password(),
+                          SessionOption::SSL_MODE,  SSLMode::REQUIRED);
+      EXPECT_EQ(test.succeed, check_tls_ver(test.tls_versions.c_str()));
+    }
+    //URI
+    std::stringstream uri;
+    uri << get_uri() << "/?tls-versions=[" << test.tls_versions << "]";
+
+    if(test.succeed)
+    {
+      EXPECT_NO_THROW(mysqlx::Session(uri.str()));
+    }
+    else
+    {
+      try {
+        mysqlx::Session(uri.str());
+
+      }  catch (const std::exception& e) {
+        EXPECT_EQ(std::string(e.what()), "No valid TLS version was given, 
valid versions are: TLSv1.2, TLSv1.3");
+      }
+    }
+  }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/devapi/tests/types-t.cc 
new/mysql-connector-c++-8.0.28-src/devapi/tests/types-t.cc
--- old/mysql-connector-c++-8.0.27-src/devapi/tests/types-t.cc  2021-09-24 
07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/devapi/tests/types-t.cc  2021-11-17 
16:03:52.000000000 +0100
@@ -221,7 +221,8 @@
     "  c1 DECIMAL(4,2),"
     "  c2 FLOAT,"
     "  c3 DOUBLE,"
-    "  c4 VARCHAR(32)"
+    "  c4 VARCHAR(32),"
+    "  c5 BIT(64)"
     ")");
 
   Table types = getSchema("test").getTable("types");
@@ -231,14 +232,15 @@
   float  data_float[]   = { 3.1415F, -2.7182F };
   double data_double[]  = { 3.141592, -2.718281 };
   string data_string[]  = { "First row", "Second row" };
+  uint64_t data_bit[]   = {0xFEDCBA9876543210,0x0123456789ABCDEF};
 
   Row row(data_int[0], data_decimal[0], data_float[0], data_double[0],
-          data_string[0]);
+          data_string[0], data_bit[0]);
 
   types.insert()
     .values(row)
     .values(data_int[1], data_decimal[1], data_float[1], data_double[1],
-            data_string[1])
+            data_string[1], data_bit[1])
     .execute();
 
   cout << "Table prepared, querying it..." << endl;
@@ -279,6 +281,13 @@
     << c4.getLength();
   cout << ", collation: " << c4.getCollationName() << endl;
 
+  const Column &c5 = res.getColumn(5);
+  EXPECT_EQ(string("c5"), c5.getColumnName());
+  EXPECT_EQ(Type::BIT, c5.getType());
+  cout << "column " << res.getColumn(5) << " length: "
+    << c5.getLength();
+  EXPECT_EQ(64, c5.getLength());
+
   for (unsigned i = 0; (row = res.fetchOne()); ++i)
   {
     cout << "== next row ==" << endl;
@@ -294,15 +303,50 @@
     EXPECT_EQ(Value::FLOAT,  row[2].getType());
     EXPECT_EQ(Value::DOUBLE, row[3].getType());
     EXPECT_EQ(Value::STRING, row[4].getType());
+    EXPECT_EQ(Value::UINT64, row[5].getType());
 
     EXPECT_EQ(data_int[i], (int)row[0]);
     EXPECT_EQ(data_decimal[i], (double)row[1]);
     EXPECT_EQ(data_float[i], (float)row[2]);
     EXPECT_EQ(data_double[i], (double)row[3]);
     EXPECT_EQ(data_string[i], (string)row[4]);
+    EXPECT_EQ(data_bit[i], (uint64_t)row[5]);
 
     EXPECT_GT(row[1].getRawBytes().size(), 1);
     EXPECT_EQ(data_string[i].length(), string(row[4]).length());
+
+  }
+
+  cout << "Testing null value" << endl;
+
+  types.update()
+      .set("c0", nullvalue)
+      .set("c1", nullvalue)
+      .set("c2", nullvalue)
+      .set("c3", nullvalue)
+      .set("c4", nullvalue)
+      .set("c5", nullvalue)
+      .where("c0 = 7")
+      .execute();
+
+  types.update()
+      .set("c0", nullptr)
+      .set("c1", nullptr)
+      .set("c2", nullptr)
+      .set("c3", nullptr)
+      .set("c4", nullptr)
+      .set("c5", nullptr)
+      .where("c0 = -7")
+      .execute();
+
+  res = types.select().execute();
+  for(auto row : res)
+  {
+    EXPECT_TRUE(row);
+    for(unsigned i=0; i <res.getColumnCount(); ++i)
+    {
+      EXPECT_TRUE(row[i].isNull());
+    }
   }
 
   cout << "Testing Boolean value" << endl;
@@ -320,16 +364,6 @@
   cout << "value: " << row[0] << endl;
   EXPECT_FALSE((bool)row[0]);
 
-  cout << "Testing null value" << endl;
-
-  types.update().set("c0", nullvalue).set("c1", nullptr).execute();
-  res = types.select("c0","c1").execute();
-  row = res.fetchOne();
-
-  EXPECT_TRUE(row);
-  EXPECT_TRUE(row[0].isNull());
-  EXPECT_TRUE(row[1].isNull());
-
   cout << "Done!" << endl;
 }
 
@@ -595,6 +629,99 @@
 
   cout << "Data matches!" << endl;
 }
+
+TEST_F(Types, bit)
+{
+  SKIP_IF_NO_XPLUGIN;
+
+  cout << "Preparing test.types..." << endl;
+
+  sql("DROP TABLE IF EXISTS test.types");
+  sql(
+    "CREATE TABLE test.types("
+    "  c64 BIT(64),"
+    "  c32 BIT(32),"
+    "  c16 BIT(16),"
+    "  c8  BIT( 8),"
+    "  c1  BIT( 1)"
+    ")"
+  );
+
+  Table types = getSchema("test").getTable("types");
+
+
+  uint64_t data64 = std::numeric_limits<uint64_t>::max();
+  uint32_t data32 = std::numeric_limits<uint32_t>::max();
+  uint16_t data16 = std::numeric_limits<uint16_t>::max();
+  uint8_t data8 = std::numeric_limits<uint8_t>::max();
+  uint8_t data1 = 1;
+
+  types.insert().values(data64, data32, data16, data8, data1)
+                .values(nullptr, nullptr, nullptr,nullptr,nullptr).execute();
+
+  cout << "Table prepared, querying it..." << endl;
+
+  RowResult res = types.select().execute();
+
+  auto column_type = [&res](int idx)
+  {
+    const Column &c = res.getColumn(idx);
+    EXPECT_EQ(Type::BIT, c.getType());
+  };
+
+  column_type(0);
+  column_type(1);
+  column_type(2);
+  column_type(3);
+  column_type(4);
+
+  Row row = res.fetchOne();
+
+  cout << "Got a row, checking data..." << endl;
+
+
+  Value v64 = row[0];
+  Value v32 = row[1];
+  Value v16 = row[2];
+  Value v8  = row[3];
+  Value v1  = row[4];
+
+  EXPECT_EQ(Value::UINT64, v64.getType());
+  EXPECT_EQ(Value::UINT64, v32.getType());
+  EXPECT_EQ(Value::UINT64, v16.getType());
+  EXPECT_EQ(Value::UINT64, v8 .getType());
+  EXPECT_EQ(Value::UINT64, v1 .getType());
+
+
+  EXPECT_EQ(v64.get<uint64_t>(), data64);
+  EXPECT_EQ(v32.get<uint64_t>(), data32);
+  EXPECT_EQ(v16.get<uint64_t>(), data16);
+  EXPECT_EQ(v8 .get<uint64_t>(), data8 );
+  EXPECT_EQ(v1 .get<uint64_t>(), data1 );
+
+  EXPECT_EQ(v64.get<uint64_t>(), data64);
+  EXPECT_EQ(v32.get<uint64_t>(), data32);
+  EXPECT_EQ(v16.get<uint64_t>(), data16);
+  EXPECT_EQ(v8 .get<uint64_t>(), data8 );
+  EXPECT_EQ(v1 .get<uint64_t>(), data1 );
+
+  //second row
+  row = res.fetchOne();
+
+  v64 = row[0];
+  v32 = row[1];
+  v16 = row[2];
+  v8  = row[3];
+  v1  = row[4];
+
+  EXPECT_EQ(Value::VNULL, v64.getType());
+  EXPECT_EQ(Value::VNULL, v32.getType());
+  EXPECT_EQ(Value::VNULL, v16.getType());
+  EXPECT_EQ(Value::VNULL, v8 .getType());
+  EXPECT_EQ(Value::VNULL, v1 .getType());
+
+  cout << "Data matches!" << endl;
+}
 
 
 TEST_F(Types, json)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/jdbc/driver/mysql_connection.cpp 
new/mysql-connector-c++-8.0.28-src/jdbc/driver/mysql_connection.cpp
--- old/mysql-connector-c++-8.0.27-src/jdbc/driver/mysql_connection.cpp 
2021-09-10 18:31:29.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/jdbc/driver/mysql_connection.cpp 
2021-10-09 09:23:31.000000000 +0200
@@ -301,7 +301,7 @@
     {OPT_READ_DEFAULT_FILE,    MYSQL_READ_DEFAULT_FILE, false},
     {OPT_CHARSET_NAME,         MYSQL_SET_CHARSET_NAME, true},
 #if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 50700
-    {OPT_TLS_VERSION,          MYSQL_OPT_TLS_VERSION, false},
+    {OPT_TLS_VERSION,          MYSQL_OPT_TLS_VERSION, true},
 #endif
     {OPT_LOAD_DATA_LOCAL_DIR, MYSQL_OPT_LOAD_DATA_LOCAL_DIR, false}
   };
@@ -755,6 +755,23 @@
         throw sql::InvalidArgumentException("No string value passed for 
sslCipher");
       }
       ssl_used = true;
+    } else if (!it->first.compare(OPT_TLS_VERSION)) {
+      try {
+        p_s = (it->second).get< sql::SQLString >();
+      } catch (sql::InvalidArgumentException&) {
+        throw sql::InvalidArgumentException("Wrong type passed for 
OPT_TLS_VERSION expected sql::SQLString");
+      }
+      if (p_s) {
+        try {
+          proxy->options(sql::mysql::MYSQL_OPT_TLS_VERSION, *p_s);
+        }  catch (const sql::InvalidArgumentException&) {
+          //We will not throw error here, but wait for connection error
+          //libmysqlclient treats not valid TLS versions as invalid options.
+        }
+
+      } else {
+        throw sql::InvalidArgumentException("No string value passed for 
OPT_TLS_VERSION");
+      }
     } else if (!it->first.compare(OPT_DEFAULT_STMT_RESULT_TYPE)) {
       try {
         p_i = (it->second).get< int >();
@@ -1103,7 +1120,13 @@
                        " the password with mysql client that is capable to do 
that,"
                        " or rebuild your instance of Connector/C++ against 
mysql client"
                        " library that supports resetting of an expired 
password.";
-      } else {
+      } else if(native_error == CR_SSL_CONNECTION_ERROR){
+        error_message= proxy->error();
+        if(error_message.find("TLS version") != std::string::npos)
+        {
+          error_message+=", valid versions are: TLSv1.2, TLSv1.3";
+        }
+      }else {
         error_message= proxy->error();
       }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/jdbc/test/unit/bugs/bugs.cpp 
new/mysql-connector-c++-8.0.28-src/jdbc/test/unit/bugs/bugs.cpp
--- old/mysql-connector-c++-8.0.27-src/jdbc/test/unit/bugs/bugs.cpp     
2021-09-10 18:31:29.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/jdbc/test/unit/bugs/bugs.cpp     
2021-10-09 09:23:31.000000000 +0200
@@ -1182,12 +1182,12 @@
   logMsg("bugs::bug32695580");
   sql::ConnectOptionsMap opt;
   opt[OPT_HOSTNAME] = "127.0.0.1";
-  opt[OPT_PORT] = 111;
+  opt[OPT_PORT] = 65000;
 
   try {
     Connection con2(getConnection(&opt));
   }  catch (const sql::SQLException &e) {
-    ASSERT_EQUALS(2003,e.getErrorCode());
+    ASSERT_GT(2000,e.getErrorCode());
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/jdbc/test/unit/classes/connection.cpp 
new/mysql-connector-c++-8.0.28-src/jdbc/test/unit/classes/connection.cpp
--- old/mysql-connector-c++-8.0.27-src/jdbc/test/unit/classes/connection.cpp    
2021-09-10 18:31:29.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/jdbc/test/unit/classes/connection.cpp    
2021-10-09 09:23:31.000000000 +0200
@@ -2457,9 +2457,6 @@
 {
   logMsg("connection::connectAttr - 
MYSQL_OPT_CONNECT_ATTR_ADD|MYSQL_OPT_CONNECT_ATTR_DELETE");
 
-  //TODO: Enable it after fixing
-  SKIP("Removed untill fixed");
-
   int serverVersion=getMySQLVersion(con);
   if ( serverVersion < 56006)
   {
@@ -2628,11 +2625,11 @@
     if (perf_conn_attr_size < 512) {
       SKIP("The performance_schema_session_connect_attrs_size is less then 
512");
     } else if (perf_conn_attr_size >= 512 && perf_conn_attr_size < 1024) {
-      max_count= 32;
+      max_count= 20;
     } else if (perf_conn_attr_size >= 1024 && perf_conn_attr_size < 2048) {
-      max_count= 64;
+      max_count= 50;
     } else if (perf_conn_attr_size >= 2048) {
-      max_count= 128;
+      max_count= 100;
     }
 
     try
@@ -2645,7 +2642,7 @@
 
       for (i=1; i <= max_count; ++i) {
         skey.str("");
-        skey << "keymu" << i;
+        skey << "keymu" <<  std::setw(3) << std::setfill('0') << i;
         connectAttrMap[skey.str()] = "value";
       }
 
@@ -2659,12 +2656,12 @@
       stmt.reset(conn2->createStatement());
       res.reset(stmt->executeQuery("SELECT ATTR_NAME, ATTR_VALUE FROM "
             "performance_schema.session_account_connect_attrs WHERE "
-            "ATTR_NAME LIKE '%keymu%' ORDER BY SUBSTRING(ATTR_NAME, 6)+0 
ASC;"));
+            "ATTR_NAME LIKE '%keymu%' ORDER BY SUBSTRING(ATTR_NAME, 6) ASC;"));
 
       i=0;
       while (res->next()) {
         skey.str("");
-        skey << "keymu" << ++i;
+        skey << "keymu" << std::setw(3) << std::setfill('0') << ++i;
         ASSERT_EQUALS(res->getString("ATTR_NAME"), skey.str());
         ASSERT_EQUALS(res->getString("ATTR_VALUE"), "value");
       }
@@ -3078,7 +3075,7 @@
 
       sql::SQLString orig_dir_path = load_data_path;
       sql::SQLString dir_path = conn->getClientOption(OPT_LOAD_DATA_LOCAL_DIR);
-      ASSERT_EQUALS(orig_dir_path, dir_path);
+      ASSERT( dir_path->find(orig_dir_path) != sql::SQLString::npos);
 
       conn->setClientOption(OPT_LOAD_DATA_LOCAL_DIR, nullptr);
 
@@ -3239,19 +3236,25 @@
       temp_dir = "/tmp/";
 #endif
 
-      dir = temp_dir + "test/";
+#ifndef _WIN32
+      std::string pid = std::to_string(getpid());
+#else
+      std::string pid = std::to_string(GetCurrentProcessId());
+#endif
+
+      dir = temp_dir + std::string("test")+pid+"/";
       file_path = dir + "infile.txt";
 
       dataDir dir_test(dir);
-      dataDir dir_link(temp_dir + "test_link/");
-      dataDir dir_subdir_link(temp_dir + "test_subdir_link/");
+      dataDir dir_link(temp_dir + "test_link" + pid +"/");
+      dataDir dir_subdir_link(temp_dir + "test_subdir_link" + pid + "/");
 
       dataFile infile(dir, "infile.txt");
 
 #ifndef _WIN32
-      dataFile infile_wo("/tmp/test/", "infile_wo.txt", true);
-      dataSymlink sl(file_path, temp_dir + "test_link/link_infile.txt");
-      dataSymlink sld(dir, temp_dir + "test_subdir_link/subdir");
+      dataFile infile_wo(dir, "infile_wo.txt", true);
+      dataSymlink sl(file_path, temp_dir + "test_link"+ pid + 
"/link_infile.txt");
+      dataSymlink sld(dir, temp_dir + "test_subdir_link"+ pid + "/subdir");
       std::string sld_file = sld.path();
       sld_file.append("/infile.txt");
 #endif
@@ -3569,6 +3572,21 @@
 
   connection_properties["OPT_SSL_MODE"] = sql::SSL_MODE_REQUIRED;
 
+  // Using ALL TLS version... should connect
+  connection_properties["OPT_TLS_VERSION"] = tls_available;
+
+  created_objects.clear();
+  try
+  {
+    con.reset(driver->connect(connection_properties));
+  }
+  catch (sql::SQLException &)
+  {
+    FAIL("ALL TLS available versions used and still can't connect!");
+  }
+
+
+
   // Using wrong TLS version... should fail to connect
   connection_properties["OPT_TLS_VERSION"] = sql::SQLString("TLSv999");
 
@@ -3584,6 +3602,8 @@
   }
 
 
+
+
   for (std::vector<std::string>::const_iterator version = tls_versions.begin();
        version != tls_versions.end();
        ++version)
@@ -3877,6 +3897,60 @@
     }
   }
 
+}
+
+void connection::tls_deprecation()
+{
+  sql::ConnectOptionsMap opt;
+  opt[OPT_HOSTNAME]=url;
+  opt[OPT_USERNAME]=user;
+  opt[OPT_PASSWORD]=passwd;
+  opt[OPT_SSL_MODE]=sql::SSL_MODE_REQUIRED;
+
+  struct TEST_CASES
+  {
+    const std::string& tls_versions;
+    bool succeed;
+  };
+
+  TEST_CASES test_cases[] =
+  {
+    {"TLSv1.1,TLSv1.2" ,true },
+    {"foo,TLSv1.3"     ,true },
+    {"TLSv1.0,TLSv1.1" ,false},
+    {"foo,TLSv1.1"     ,false},
+    {"foo,bar"         ,false},
+    {""                ,false}
+  };
+
+  for(auto test : test_cases)
+  {
+    logMsg(test.tls_versions);
+    opt[OPT_TLS_VERSION] = test.tls_versions;
+    try {
+      Connection test_connection(driver->connect(opt));
+      if(!test.succeed)
+      {
+        std::stringstream err;
+        err << "TLS versions (" << test.tls_versions << ") SHOULD THROW 
EXCEPTION";
+        FAIL(err.str());
+      }
+      stmt.reset(test_connection->createStatement());
+      res.reset(stmt->executeQuery("select @@version"));
+
+      res->next();
+      std::string version = res->getString(1);
+
+      logMsg(std::string("Server Version ")+version);
+
+    }  catch (sql::SQLException &e) {
+      logMsg(e.what());
+      ASSERT_EQUALS(false, test.succeed);
+      ASSERT_EQUALS(2026, e.getErrorCode());
+      ASSERT_EQUALS("SSL connection error: TLS version is invalid, valid 
versions are: TLSv1.2, TLSv1.3", e.what());
+    }
+  }
+
 }
 
 } /* namespace connection */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/jdbc/test/unit/classes/connection.h 
new/mysql-connector-c++-8.0.28-src/jdbc/test/unit/classes/connection.h
--- old/mysql-connector-c++-8.0.27-src/jdbc/test/unit/classes/connection.h      
2021-09-10 18:31:29.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/jdbc/test/unit/classes/connection.h      
2021-10-09 09:23:31.000000000 +0200
@@ -92,6 +92,7 @@
   TEST_CASE(socket);
   TEST_CASE(dns_srv);
   TEST_CASE(mfa);
+  TEST_CASE(tls_deprecation);
   }
 
   /**
@@ -290,6 +291,12 @@
    */
   void mfa();
 
+  /*
+   * Test of MySQL_Connection::tls_deprecation()
+   *
+   */
+  void tls_deprecation();
+
 
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/jdbc/test/unit/classes/resultsetmetadata.cpp 
new/mysql-connector-c++-8.0.28-src/jdbc/test/unit/classes/resultsetmetadata.cpp
--- 
old/mysql-connector-c++-8.0.27-src/jdbc/test/unit/classes/resultsetmetadata.cpp 
    2021-09-10 18:31:29.000000000 +0200
+++ 
new/mysql-connector-c++-8.0.28-src/jdbc/test/unit/classes/resultsetmetadata.cpp 
    2021-10-09 09:23:31.000000000 +0200
@@ -201,7 +201,8 @@
   ASSERT_EQUALS((unsigned int) 1, meta->getColumnDisplaySize(2));
   ASSERT_EQUALS((unsigned int) 5, meta->getColumnDisplaySize(3));
   ASSERT_EQUALS((unsigned int) 1, meta->getColumnDisplaySize(4));
-  ASSERT_EQUALS((unsigned int) 3, meta->getColumnDisplaySize(5));
+  // Integer now adds +1 for sign
+  ASSERT_EQUALS((unsigned int) 4, meta->getColumnDisplaySize(5));
 
   try
   {
@@ -1286,9 +1287,6 @@
 {
   logMsg("resultsetmetadata::isSigned() - MySQL_ResultSetMetaData::isSigned");
 
-  //TODO: Enable it after fixing
-  SKIP("Removed untill fixed");
-
   std::stringstream sql;
   std::vector<columndefinition>::iterator it;
   ResultSetMetaData * meta_st;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/jdbc/test/unit/unit_fixture.cpp 
new/mysql-connector-c++-8.0.28-src/jdbc/test/unit/unit_fixture.cpp
--- old/mysql-connector-c++-8.0.27-src/jdbc/test/unit/unit_fixture.cpp  
2021-09-10 18:31:29.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/jdbc/test/unit/unit_fixture.cpp  
2021-10-09 09:23:31.000000000 +0200
@@ -130,7 +130,7 @@
   columns.push_back(columndefinition("DATETIME", "DATETIME NOT NULL DEFAULT 
'2009-02-12 21:36:54'", sql::DataType::TIMESTAMP, "2009-02-12 17:49:21", true, 
19, 0, false, "2009-02-12 21:36:54", 0, "NO", false));
   // TODO this might be server dependent!
 
-  columns.push_back(columndefinition("TIMESTAMP", "TIMESTAMP", 
sql::DataType::TIMESTAMP, "2038-01-09 03:14:07", false, 19, 0, true, "", 0, 
"NO", false));
+  columns.push_back(columndefinition("TIMESTAMP", "TIMESTAMP", 
sql::DataType::TIMESTAMP, "2038-01-09 03:14:07", true, 19, 0, true, "", 0, 
"NO", false));
   columns.push_back(columndefinition("TIME", "TIME", sql::DataType::TIME, 
"-838:59:59", true, 8, 0, true, "", 0, "NO", true));
   columns.push_back(columndefinition("TIME", "TIME NOT NULL", 
sql::DataType::TIME, "838:59:59", true, 8, 0, false, "", 0, "NO", false));
   columns.push_back(columndefinition("TIME", "TIME DEFAULT '12:39:41'", 
sql::DataType::TIME, "-838:59:59", true, 8, 0, true, "12:39:41", 0, "NO", 
true));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/packaging/deb-in/CMakeLists.txt 
new/mysql-connector-c++-8.0.28-src/packaging/deb-in/CMakeLists.txt
--- old/mysql-connector-c++-8.0.27-src/packaging/deb-in/CMakeLists.txt  
2021-09-24 07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/packaging/deb-in/CMakeLists.txt  
2021-11-17 16:03:52.000000000 +0100
@@ -100,6 +100,8 @@
   SET (DEB_PLATFORMRELEASE "ubuntu20.04")
 ELSEIF(DEB_CODENAME STREQUAL "hirsute")
   SET (DEB_PLATFORMRELEASE "ubuntu21.04")
+ELSEIF(DEB_CODENAME STREQUAL "impish")
+  SET (DEB_PLATFORMRELEASE "ubuntu21.10")
 ELSE()
   MESSAGE(STATUS
     "Skipping deb packaging on unsupported platform ${DEB_CODENAME}.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/packaging/deb-in/compat 
new/mysql-connector-c++-8.0.28-src/packaging/deb-in/compat
--- old/mysql-connector-c++-8.0.27-src/packaging/deb-in/compat  2021-09-24 
07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/packaging/deb-in/compat  2021-11-17 
16:03:52.000000000 +0100
@@ -1 +1 @@
-10
+11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/packaging/mysql-connector-c++.spec.in 
new/mysql-connector-c++-8.0.28-src/packaging/mysql-connector-c++.spec.in
--- old/mysql-connector-c++-8.0.27-src/packaging/mysql-connector-c++.spec.in    
2021-09-24 07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/packaging/mysql-connector-c++.spec.in    
2021-11-17 16:03:52.000000000 +0100
@@ -91,22 +91,6 @@
 %description    devel
 This package contains the development header files and libraries necessary
 to develop MySQL client applications in C++.
-%if 0%{?with_tests:1} && 0%{?with_gtest:1}
-
-%package        test
-Summary:        Regression tests for MySQL Connector/C++
-%if 0%{?commercial}
-Requires:       mysql-connector-c++-commercial =  %{version}-%{release}
-Requires:       mysql-connector-c++-commercial-jdbc =  %{version}-%{release}
-Obsoletes:      mysql-connector-c++-test < %{version}-%{release}
-%else
-Requires:       mysql-connector-c++ =  %{version}-%{release}
-Requires:       mysql-connector-c++-jdbc =  %{version}-%{release}
-%endif
-%description    test
-This package contains the test files necessary to run regression
-test suite for MySQL Connector/C++
-%endif
 
 %prep
 %setup -q -n mysql-connector-c++%{product_suffix}-%{version}-src
@@ -139,29 +123,9 @@
 
 pushd build-dynamic
 make DESTDIR=%{buildroot} install
-%if 0%{?with_tests:1} && 0%{?with_gtest:1}
-# Generating the test groups and run CMake again
-# to process the generated TestGroups.cmake file
-LD_LIBRARY_PATH=. ./run_unit_tests --generate_test_groups=TestGroups.cmake
-%__cmake_cmd
-# Move the test executable and test definition to private libdir
-install -d -m0755 %{buildroot}%{_libdir}/mysql-cppconn-8/dynamic
-mv CTestTestfile.cmake %{buildroot}%{_libdir}/mysql-cppconn-8/dynamic/
-mv run_unit_tests      %{buildroot}%{_libdir}/mysql-cppconn-8/dynamic/
-%endif
 popd
 pushd build-static
 make DESTDIR=%{buildroot} install
-%if 0%{?with_tests:1} && 0%{?with_gtest:1}
-# Generating the test groups and run CMake again
-# to process the generated TestGroups.cmake file
-./run_unit_tests --generate_test_groups=TestGroups.cmake
-%__cmake_cmd -DBUILD_STATIC=ON
-# Move the test executable and test definition to private libdir
-install -d -m0755 %{buildroot}%{_libdir}/mysql-cppconn-8/static
-mv CTestTestfile.cmake %{buildroot}%{_libdir}/mysql-cppconn-8/static/
-mv run_unit_tests      %{buildroot}%{_libdir}/mysql-cppconn-8/static/
-%endif
 popd
 # Add compat dir and remove unwanted file
 ln -s mysql-cppconn-8 %{buildroot}%{_includedir}/mysql-cppconn
@@ -194,19 +158,11 @@
 %{_includedir}/mysql-cppconn-8/mysqlx
 %{_includedir}/mysql-cppconn-8/mysql
 %{_includedir}/mysql-cppconn-8/jdbc
-%if 0%{?with_tests:1} && 0%{?with_gtest:1}
-
-%files test
-%dir %{_libdir}/mysql-cppconn-8
-%dir %{_libdir}/mysql-cppconn-8/dynamic
-%dir %{_libdir}/mysql-cppconn-8/static
-%{_libdir}/mysql-cppconn-8/dynamic/run_unit_tests
-%{_libdir}/mysql-cppconn-8/dynamic/CTestTestfile.cmake
-%{_libdir}/mysql-cppconn-8/static/run_unit_tests
-%{_libdir}/mysql-cppconn-8/static/CTestTestfile.cmake
-%endif
 
 %changelog
+* Tue Nov 09 2021 Gipson Pulla <[email protected]> - 8.0.28-1
+- Removed the internal testing package
+
 * Thu Jun 10 2021 Gipson Pulla <[email protected]> - 8.0.26-1
 - Updated the platforms that need cmake3
 - The cmake3 binary isn't required for el8 platforms
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysql-connector-c++-8.0.27-src/version.cmake 
new/mysql-connector-c++-8.0.28-src/version.cmake
--- old/mysql-connector-c++-8.0.27-src/version.cmake    2021-09-24 
07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/version.cmake    2021-11-17 
16:03:52.000000000 +0100
@@ -32,7 +32,7 @@
 
 set(CONCPP_VERSION_MAJOR  8 CACHE INTERNAL "version info")
 set(CONCPP_VERSION_MINOR  0 CACHE INTERNAL "version info")
-set(CONCPP_VERSION_MICRO 27 CACHE INTERNAL "version info")
+set(CONCPP_VERSION_MICRO 28 CACHE INTERNAL "version info")
 # Level is "-alpha", "-beta", empty if GA
 set(CONCPP_VERSION_LEVEL  "" CACHE INTERNAL "version info")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysql-connector-c++-8.0.27-src/xapi/result.cc 
new/mysql-connector-c++-8.0.28-src/xapi/result.cc
--- old/mysql-connector-c++-8.0.27-src/xapi/result.cc   2021-09-24 
07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/xapi/result.cc   2021-11-17 
16:03:52.000000000 +0100
@@ -45,6 +45,9 @@
   {
     auto &format = fi.get<cdk::TYPE_INTEGER>().m_format;
 
+    if(format.is_bit())
+      return MYSQLX_TYPE_BIT;
+
     if (format.length() == 1)
       return MYSQLX_TYPE_BOOL;
 
@@ -72,17 +75,17 @@
 
     switch(format.type())
     {
-      case cdk::Format<cdk::TYPE_DATETIME>::TIME:
-        return MYSQLX_TYPE_TIME;
-      case cdk::Format<cdk::TYPE_DATETIME>::TIMESTAMP:
-        return MYSQLX_TYPE_TIMESTAMP;
-      default:
-        return MYSQLX_TYPE_DATETIME;
+    case cdk::Format<cdk::TYPE_DATETIME>::TIME:
+      return MYSQLX_TYPE_TIME;
+    case cdk::Format<cdk::TYPE_DATETIME>::TIMESTAMP:
+      return MYSQLX_TYPE_TIMESTAMP;
+    default:
+      return MYSQLX_TYPE_DATETIME;
     }
     break;
   }
 
-  // TODO: differ the blob types by their length
+    // TODO: differ the blob types by their length
   case cdk::TYPE_BYTES:
   {
     // TODO: use it when GEOMETRY type is supported by CDK
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-connector-c++-8.0.27-src/xapi/tests/xapi_crud-t.cc 
new/mysql-connector-c++-8.0.28-src/xapi/tests/xapi_crud-t.cc
--- old/mysql-connector-c++-8.0.27-src/xapi/tests/xapi_crud-t.cc        
2021-09-24 07:30:40.000000000 +0200
+++ new/mysql-connector-c++-8.0.28-src/xapi/tests/xapi_crud-t.cc        
2021-11-17 16:03:52.000000000 +0100
@@ -2342,7 +2342,7 @@
   EXPECT_EQ(MYSQLX_TYPE_DATETIME, 
(mysqlx_data_type_t)mysqlx_column_get_type(res, 11));
   EXPECT_EQ(MYSQLX_TYPE_TIME, (mysqlx_data_type_t)mysqlx_column_get_type(res, 
12));
   EXPECT_EQ(MYSQLX_TYPE_DECIMAL, 
(mysqlx_data_type_t)mysqlx_column_get_type(res, 13));
-  EXPECT_EQ(MYSQLX_TYPE_BYTES, (mysqlx_data_type_t)mysqlx_column_get_type(res, 
14));
+  EXPECT_EQ(MYSQLX_TYPE_BIT, (mysqlx_data_type_t)mysqlx_column_get_type(res, 
14));
   EXPECT_EQ(MYSQLX_TYPE_ENUM, (mysqlx_data_type_t)mysqlx_column_get_type(res, 
15));
   EXPECT_EQ(MYSQLX_TYPE_SET, (mysqlx_data_type_t)mysqlx_column_get_type(res, 
16));
   EXPECT_EQ(MYSQLX_TYPE_GEOMETRY, 
(mysqlx_data_type_t)mysqlx_column_get_type(res, 17));

++++++ mysql-connector-cpp-mariadb.patch ++++++
--- /var/tmp/diff_new_pack.Dw4DKc/_old  2022-04-12 21:51:05.450445666 +0200
+++ /var/tmp/diff_new_pack.Dw4DKc/_new  2022-04-12 21:51:05.450445666 +0200
@@ -33,7 +33,7 @@
    };
 @@ -303,7 +303,7 @@
  #if MYCPPCONN_STATIC_MYSQL_VERSION_ID >= 50700
-     {OPT_TLS_VERSION,          MYSQL_OPT_TLS_VERSION, false},
+     {OPT_TLS_VERSION,          MYSQL_OPT_TLS_VERSION, true},
  #endif
 -    {OPT_LOAD_DATA_LOCAL_DIR, MYSQL_OPT_LOAD_DATA_LOCAL_DIR, false}
 +    //{OPT_LOAD_DATA_LOCAL_DIR, MYSQL_OPT_LOAD_DATA_LOCAL_DIR, false}

Reply via email to