You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/01/25 12:55:42 UTC

[40/50] ignite git commit: IGNITE-2243: SQL_ATTR_OUTPUT_NTS implemented.

IGNITE-2243: SQL_ATTR_OUTPUT_NTS implemented.


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

Branch: refs/heads/ignite-1786
Commit: 0346daf3739cc77c0ad9c0181533730e444350d4
Parents: b60b3dc
Author: isapego <is...@gridgain.com>
Authored: Wed Jan 20 21:28:19 2016 +0300
Committer: isapego <is...@gridgain.com>
Committed: Wed Jan 20 21:28:19 2016 +0300

----------------------------------------------------------------------
 .../include/ignite/odbc/common_types.h          |  7 +++--
 .../include/ignite/odbc/environment.h           |  3 ++
 .../cpp/odbc/odbc-driver/src/common_types.cpp   |  3 ++
 .../cpp/odbc/odbc-driver/src/environment.cpp    | 30 ++++++++++++++++++--
 4 files changed, 38 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/0346daf3/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/common_types.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/common_types.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/common_types.h
index e79a572..c065872 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/common_types.h
+++ b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/common_types.h
@@ -186,8 +186,11 @@ namespace ignite
             /** ODBC attribute is unknown to the driver. */
             IGNITE_SQL_ENV_ATTR_UNKNOWN,
 
-            /** ODBC attribute. */
-            IGNITE_SQL_ENV_ATTR_ODBC_VERSION
+            /** ODBC version. */
+            IGNITE_SQL_ENV_ATTR_ODBC_VERSION,
+
+            /** Null-termination of strings. */
+            IGNITE_SQL_ENV_ATTR_OUTPUT_NTS
         };
 
         /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/0346daf3/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/environment.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/environment.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/environment.h
index a9c4889..7168aa3 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/environment.h
+++ b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/environment.h
@@ -127,6 +127,9 @@ namespace ignite
 
             /** ODBC version. */
             int32_t odbcVersion;
+
+            /** ODBC null-termintaion of string behaviour. */
+            int32_t odbcNts;
         };
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/0346daf3/modules/platforms/cpp/odbc/odbc-driver/src/common_types.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/odbc-driver/src/common_types.cpp b/modules/platforms/cpp/odbc/odbc-driver/src/common_types.cpp
index 83bfe4c..276d9fd 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/src/common_types.cpp
+++ b/modules/platforms/cpp/odbc/odbc-driver/src/common_types.cpp
@@ -106,6 +106,9 @@ namespace ignite
                 case SQL_ATTR_ODBC_VERSION:
                     return IGNITE_SQL_ENV_ATTR_ODBC_VERSION;
 
+                case SQL_ATTR_OUTPUT_NTS:
+                    return IGNITE_SQL_ENV_ATTR_OUTPUT_NTS;
+
                 default:
                     break;
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/0346daf3/modules/platforms/cpp/odbc/odbc-driver/src/environment.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/odbc-driver/src/environment.cpp b/modules/platforms/cpp/odbc/odbc-driver/src/environment.cpp
index 078d546..01f606f 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/src/environment.cpp
+++ b/modules/platforms/cpp/odbc/odbc-driver/src/environment.cpp
@@ -24,7 +24,7 @@ namespace ignite
     namespace odbc
     {
         Environment::Environment() : 
-            odbcVersion(SQL_OV_ODBC3)
+            odbcVersion(SQL_OV_ODBC3), odbcNts(SQL_TRUE)
         {
             // No-op.
         }
@@ -105,7 +105,24 @@ namespace ignite
                         return SQL_RESULT_SUCCESS_WITH_INFO;
                     }
 
-                    break;
+                    return SQL_RESULT_SUCCESS;
+                }
+
+                case IGNITE_SQL_ENV_ATTR_OUTPUT_NTS:
+                {
+                    int32_t* nts = reinterpret_cast<int32_t*>(value);
+
+                    if (*nts != odbcNts)
+                    {
+                        AddStatusRecord(SQL_STATE_01S02_OPTION_VALUE_CHANGED,
+                            "Only null-termination of strings is supported.");
+
+                        *nts = odbcNts;
+
+                        return SQL_RESULT_SUCCESS_WITH_INFO;
+                    }
+
+                    return SQL_RESULT_SUCCESS;
                 }
 
                 case IGNITE_SQL_ENV_ATTR_UNKNOWN:
@@ -134,7 +151,14 @@ namespace ignite
                 {
                     buffer.PutInt32(odbcVersion);
 
-                    break;
+                    return SQL_RESULT_SUCCESS;
+                }
+
+                case IGNITE_SQL_ENV_ATTR_OUTPUT_NTS:
+                {
+                    buffer.PutInt32(odbcNts);
+
+                    return SQL_RESULT_SUCCESS;
                 }
 
                 case IGNITE_SQL_ENV_ATTR_UNKNOWN: