IGNITE-6841: Increased ODBC protocol version for multiple statements.
This closes #2995


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/954e47b9
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/954e47b9
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/954e47b9

Branch: refs/heads/ignite-zk
Commit: 954e47b9cf37dc24a7c859f7eda9af41b6d7d1e7
Parents: c11fc41
Author: Igor Sapego <isap...@gridgain.com>
Authored: Fri Nov 10 13:12:24 2017 +0300
Committer: Igor Sapego <isap...@gridgain.com>
Committed: Fri Nov 10 13:12:24 2017 +0300

----------------------------------------------------------------------
 .../processors/odbc/odbc/OdbcConnectionContext.java         | 6 +++++-
 .../internal/processors/odbc/odbc/OdbcMessageParser.java    | 2 +-
 modules/platforms/cpp/odbc-test/src/queries_test.cpp        | 8 ++++++++
 .../cpp/odbc/include/ignite/odbc/protocol_version.h         | 9 ++++++++-
 modules/platforms/cpp/odbc/src/message.cpp                  | 2 +-
 modules/platforms/cpp/odbc/src/protocol_version.cpp         | 4 +++-
 6 files changed, 26 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/954e47b9/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcConnectionContext.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcConnectionContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcConnectionContext.java
index 88a2e0f..6a922bf 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcConnectionContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcConnectionContext.java
@@ -40,8 +40,11 @@ public class OdbcConnectionContext implements 
ClientListenerConnectionContext {
     /** Version 2.3.0: added "skipReducerOnUpdate" flag. */
     public static final ClientListenerProtocolVersion VER_2_3_0 = 
ClientListenerProtocolVersion.create(2, 3, 0);
 
+    /** Version 2.3.2: added multiple statements support. */
+    public static final ClientListenerProtocolVersion VER_2_3_2 = 
ClientListenerProtocolVersion.create(2, 3, 2);
+
     /** Current version. */
-    private static final ClientListenerProtocolVersion CURRENT_VER = VER_2_3_0;
+    private static final ClientListenerProtocolVersion CURRENT_VER = VER_2_3_2;
 
     /** Supported versions. */
     private static final Set<ClientListenerProtocolVersion> SUPPORTED_VERS = 
new HashSet<>();
@@ -63,6 +66,7 @@ public class OdbcConnectionContext implements 
ClientListenerConnectionContext {
 
     static {
         SUPPORTED_VERS.add(CURRENT_VER);
+        SUPPORTED_VERS.add(VER_2_3_0);
         SUPPORTED_VERS.add(VER_2_1_5);
         SUPPORTED_VERS.add(VER_2_1_0);
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/954e47b9/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcMessageParser.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcMessageParser.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcMessageParser.java
index bf74bc5..fb17d2a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcMessageParser.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcMessageParser.java
@@ -362,7 +362,7 @@ public class OdbcMessageParser implements 
ClientListenerMessageParser {
      * @param affectedRows Affected rows.
      */
     private void writeAffectedRows(BinaryWriterExImpl writer, Collection<Long> 
affectedRows) {
-        if (ver.compareTo(OdbcConnectionContext.VER_2_3_0) < 0) {
+        if (ver.compareTo(OdbcConnectionContext.VER_2_3_2) < 0) {
             long summ = 0;
 
             for (Long value : affectedRows)

http://git-wip-us.apache.org/repos/asf/ignite/blob/954e47b9/modules/platforms/cpp/odbc-test/src/queries_test.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc-test/src/queries_test.cpp 
b/modules/platforms/cpp/odbc-test/src/queries_test.cpp
index 0b0bf82..6fcf7c9 100644
--- a/modules/platforms/cpp/odbc-test/src/queries_test.cpp
+++ b/modules/platforms/cpp/odbc-test/src/queries_test.cpp
@@ -771,6 +771,14 @@ BOOST_AUTO_TEST_CASE(TestConnectionProtocolVersion_2_3_0)
     InsertTestBatch(11, 20, 9);
 }
 
+BOOST_AUTO_TEST_CASE(TestConnectionProtocolVersion_2_3_2)
+{
+    Connect("DRIVER={Apache 
Ignite};ADDRESS=127.0.0.1:11110;SCHEMA=cache;PROTOCOL_VERSION=2.3.2");
+
+    InsertTestStrings(10, false);
+    InsertTestBatch(11, 20, 9);
+}
+
 BOOST_AUTO_TEST_CASE(TestTwoRowsInt8)
 {
     CheckTwoRowsInt<signed char>(SQL_C_STINYINT);

http://git-wip-us.apache.org/repos/asf/ignite/blob/954e47b9/modules/platforms/cpp/odbc/include/ignite/odbc/protocol_version.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/include/ignite/odbc/protocol_version.h 
b/modules/platforms/cpp/odbc/include/ignite/odbc/protocol_version.h
index e6088a7..f39c11e 100644
--- a/modules/platforms/cpp/odbc/include/ignite/odbc/protocol_version.h
+++ b/modules/platforms/cpp/odbc/include/ignite/odbc/protocol_version.h
@@ -31,11 +31,18 @@ namespace ignite
         class ProtocolVersion
         {
         public:
-            /** Current protocol version. */
+            /** Version 2.1.0. */
             static const ProtocolVersion VERSION_2_1_0;
+
+            /** Version 2.1.5: added "lazy" flag. */
             static const ProtocolVersion VERSION_2_1_5;
+
+            /** Version 2.3.0: added "skipReducerOnUpdate" flag. */
             static const ProtocolVersion VERSION_2_3_0;
 
+            /** Version 2.3.2: added multiple statements support. */
+            static const ProtocolVersion VERSION_2_3_2;
+
             typedef std::set<ProtocolVersion> VersionSet;
 
             /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/954e47b9/modules/platforms/cpp/odbc/src/message.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/src/message.cpp 
b/modules/platforms/cpp/odbc/src/message.cpp
index 5595ddb..32a5d91 100644
--- a/modules/platforms/cpp/odbc/src/message.cpp
+++ b/modules/platforms/cpp/odbc/src/message.cpp
@@ -28,7 +28,7 @@ namespace
     {
         affectedRows.clear();
 
-        if (protocolVersion < ProtocolVersion::VERSION_2_3_0)
+        if (protocolVersion < ProtocolVersion::VERSION_2_3_2)
             affectedRows.push_back(reader.ReadInt64());
         else
         {

http://git-wip-us.apache.org/repos/asf/ignite/blob/954e47b9/modules/platforms/cpp/odbc/src/protocol_version.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/src/protocol_version.cpp 
b/modules/platforms/cpp/odbc/src/protocol_version.cpp
index b0b9121..d7d85ad 100644
--- a/modules/platforms/cpp/odbc/src/protocol_version.cpp
+++ b/modules/platforms/cpp/odbc/src/protocol_version.cpp
@@ -29,11 +29,13 @@ namespace ignite
         const ProtocolVersion ProtocolVersion::VERSION_2_1_0(2, 1, 0);
         const ProtocolVersion ProtocolVersion::VERSION_2_1_5(2, 1, 5);
         const ProtocolVersion ProtocolVersion::VERSION_2_3_0(2, 3, 0);
+        const ProtocolVersion ProtocolVersion::VERSION_2_3_2(2, 3, 2);
 
         ProtocolVersion::VersionSet::value_type supportedArray[] = {
             ProtocolVersion::VERSION_2_1_0,
             ProtocolVersion::VERSION_2_1_5,
             ProtocolVersion::VERSION_2_3_0,
+            ProtocolVersion::VERSION_2_3_2,
         };
 
         const ProtocolVersion::VersionSet 
ProtocolVersion::supported(supportedArray,
@@ -62,7 +64,7 @@ namespace ignite
 
         const ProtocolVersion& ProtocolVersion::GetCurrent()
         {
-            return VERSION_2_3_0;
+            return VERSION_2_3_2;
         }
 
         void ThrowParseError()

Reply via email to