IGNITE-2241: Moved to type_traits.

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

Branch: refs/heads/ignite-1786
Commit: 77ba349b7cf69253e69c94ccb9b691e76e972106
Parents: 34834c6
Author: isapego <[email protected]>
Authored: Wed Jan 13 18:11:38 2016 +0300
Committer: isapego <[email protected]>
Committed: Wed Jan 13 18:11:38 2016 +0300

----------------------------------------------------------------------
 .../include/ignite/odbc/common_types.h          | 53 ------------
 .../include/ignite/odbc/type_traits.h           | 53 ++++++++++++
 .../cpp/odbc/odbc-driver/src/common_types.cpp   | 88 -------------------
 .../odbc/odbc-driver/src/meta/column_meta.cpp   |  3 +-
 .../src/query/column_metadata_query.cpp         |  2 +
 .../src/query/foreign_keys_query.cpp            |  2 +
 .../src/query/primary_keys_query.cpp            |  2 +
 .../src/query/table_metadata_query.cpp          |  2 +
 .../cpp/odbc/odbc-driver/src/type_traits.cpp    | 89 ++++++++++++++++++++
 9 files changed, 152 insertions(+), 142 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/77ba349b/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 187568f..80562c5 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
@@ -20,56 +20,11 @@
 
 #include <stdint.h>
 
-#include <string>
-
 namespace ignite
 {
     namespace odbc
     {
         /**
-         * SQL type name constants.
-         */
-        class SqlTypeName
-        {
-        public:
-            /** VARCHAR SQL type name constant. */
-            static const std::string VARCHAR;
-
-            /** SMALLINT SQL type name constant. */
-            static const std::string SMALLINT;
-
-            /** INTEGER SQL type name constant. */
-            static const std::string INTEGER;
-
-            /** DECIMAL SQL type name constant. */
-            static const std::string DECIMAL;
-
-            /** FLOAT SQL type name constant. */
-            static const std::string FLOAT;
-
-            /** DOUBLE SQL type name constant. */
-            static const std::string DOUBLE;
-
-            /** BIT SQL type name constant. */
-            static const std::string BIT;
-
-            /** TINYINT SQL type name constant. */
-            static const std::string TINYINT;
-
-            /** BIGINT SQL type name constant. */
-            static const std::string BIGINT;
-
-            /** BINARY SQL type name constant. */
-            static const std::string BINARY;
-
-            /** DATE SQL type name constant. */
-            static const std::string DATE;
-
-            /** GUID SQL type name constant. */
-            static const std::string GUID;
-        };
-
-        /**
          * SQL result.
          */
         enum SqlResult
@@ -211,14 +166,6 @@ namespace ignite
         };
 
         /**
-         * Get SQL type name for the binary type.
-         *
-         * @param binaryType Binary type.
-         * @return Corresponding SQL type name.
-         */
-        const std::string& BinaryTypeToSqlTypeName(int8_t binaryType);
-
-        /**
          * Convert internal Ignite type into ODBC SQL return code.
          *
          * @param result Internal result type.

http://git-wip-us.apache.org/repos/asf/ignite/blob/77ba349b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/type_traits.h
----------------------------------------------------------------------
diff --git 
a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/type_traits.h 
b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/type_traits.h
index 7dac73f..094e189 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/type_traits.h
+++ b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/type_traits.h
@@ -20,6 +20,8 @@
 
 #include <stdint.h>
 
+#include <string>
+
 namespace ignite
 {
     namespace odbc
@@ -108,6 +110,57 @@ namespace ignite
             };
 
             /**
+             * SQL type name constants.
+             */
+            class SqlTypeName
+            {
+            public:
+                /** VARCHAR SQL type name constant. */
+                static const std::string VARCHAR;
+
+                /** SMALLINT SQL type name constant. */
+                static const std::string SMALLINT;
+
+                /** INTEGER SQL type name constant. */
+                static const std::string INTEGER;
+
+                /** DECIMAL SQL type name constant. */
+                static const std::string DECIMAL;
+
+                /** FLOAT SQL type name constant. */
+                static const std::string FLOAT;
+
+                /** DOUBLE SQL type name constant. */
+                static const std::string DOUBLE;
+
+                /** BIT SQL type name constant. */
+                static const std::string BIT;
+
+                /** TINYINT SQL type name constant. */
+                static const std::string TINYINT;
+
+                /** BIGINT SQL type name constant. */
+                static const std::string BIGINT;
+
+                /** BINARY SQL type name constant. */
+                static const std::string BINARY;
+
+                /** DATE SQL type name constant. */
+                static const std::string DATE;
+
+                /** GUID SQL type name constant. */
+                static const std::string GUID;
+            };
+
+            /**
+             * Get SQL type name for the binary type.
+             *
+             * @param binaryType Binary type.
+             * @return Corresponding SQL type name.
+             */
+            const std::string& BinaryTypeToSqlTypeName(int8_t binaryType);
+
+            /**
              * Check if the C type supported by the current implementation.
              *
              * @param type Application type.

http://git-wip-us.apache.org/repos/asf/ignite/blob/77ba349b/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 f438717..9086321 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/src/common_types.cpp
+++ b/modules/platforms/cpp/odbc/odbc-driver/src/common_types.cpp
@@ -24,94 +24,6 @@ namespace ignite
 {
     namespace odbc
     {
-        const std::string SqlTypeName::VARCHAR("LONG VARCHAR");
-
-        const std::string SqlTypeName::SMALLINT("SMALLINT");
-
-        const std::string SqlTypeName::INTEGER("INTEGER");
-
-        const std::string SqlTypeName::DECIMAL("DECIMAL");
-
-        const std::string SqlTypeName::FLOAT("FLOAT");
-
-        const std::string SqlTypeName::DOUBLE("DOUBLE");
-
-        const std::string SqlTypeName::BIT("BIT");
-
-        const std::string SqlTypeName::TINYINT("TINYINT");
-
-        const std::string SqlTypeName::BIGINT("BIGINT");
-
-        const std::string SqlTypeName::BINARY("LONG VARBINARY");
-
-        const std::string SqlTypeName::DATE("DATE");
-
-        const std::string SqlTypeName::GUID("GUID");
-
-        const std::string& BinaryTypeToSqlTypeName(int8_t binaryType)
-        {
-            using namespace ignite::impl::binary;
-
-            switch (binaryType)
-            {
-                case IGNITE_TYPE_STRING:
-                    return SqlTypeName::VARCHAR;
-
-                case IGNITE_TYPE_SHORT:
-                    return SqlTypeName::SMALLINT;
-
-                case IGNITE_TYPE_INT:
-                    return SqlTypeName::INTEGER;
-
-                case IGNITE_TYPE_DECIMAL:
-                    return SqlTypeName::DECIMAL;
-
-                case IGNITE_TYPE_FLOAT:
-                    return SqlTypeName::FLOAT;
-
-                case IGNITE_TYPE_DOUBLE:
-                    return SqlTypeName::DOUBLE;
-
-                case IGNITE_TYPE_BOOL:
-                    return SqlTypeName::BIT;
-
-                case IGNITE_TYPE_BYTE:
-                case IGNITE_TYPE_CHAR:
-                    return SqlTypeName::TINYINT;
-
-                case IGNITE_TYPE_LONG:
-                    return SqlTypeName::BIGINT;
-
-                case IGNITE_TYPE_UUID:
-                    return SqlTypeName::GUID;
-
-                case IGNITE_TYPE_DATE:
-                    return SqlTypeName::DATE;
-
-                case IGNITE_TYPE_OBJECT:
-                case IGNITE_TYPE_ARRAY_BYTE:
-                case IGNITE_TYPE_ARRAY_SHORT:
-                case IGNITE_TYPE_ARRAY_INT:
-                case IGNITE_TYPE_ARRAY_LONG:
-                case IGNITE_TYPE_ARRAY_FLOAT:
-                case IGNITE_TYPE_ARRAY_DOUBLE:
-                case IGNITE_TYPE_ARRAY_CHAR:
-                case IGNITE_TYPE_ARRAY_BOOL:
-                case IGNITE_TYPE_ARRAY_DECIMAL:
-                case IGNITE_TYPE_ARRAY_STRING:
-                case IGNITE_TYPE_ARRAY_UUID:
-                case IGNITE_TYPE_ARRAY_DATE:
-                case IGNITE_TYPE_ARRAY:
-                case IGNITE_TYPE_COLLECTION:
-                case IGNITE_TYPE_MAP:
-                case IGNITE_TYPE_MAP_ENTRY:
-                case IGNITE_TYPE_BINARY:
-                default:
-                    return SqlTypeName::BINARY;
-            }
-
-            return SqlTypeName::BINARY;
-        }
 
         int SqlResultToReturnCode(SqlResult result)
         {

http://git-wip-us.apache.org/repos/asf/ignite/blob/77ba349b/modules/platforms/cpp/odbc/odbc-driver/src/meta/column_meta.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/odbc-driver/src/meta/column_meta.cpp 
b/modules/platforms/cpp/odbc/odbc-driver/src/meta/column_meta.cpp
index b2eff6a..b0d5015 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/src/meta/column_meta.cpp
+++ b/modules/platforms/cpp/odbc/odbc-driver/src/meta/column_meta.cpp
@@ -69,6 +69,7 @@ namespace ignite
             }
 
 #undef DBG_STR_CASE
+
 #endif
 
             void ColumnMeta::Read(ignite::impl::binary::BinaryReaderImpl& 
reader)
@@ -132,7 +133,7 @@ namespace ignite
                     case SQL_DESC_TYPE_NAME:
                     case SQL_DESC_LOCAL_TYPE_NAME:
                     {
-                        value = BinaryTypeToSqlTypeName(dataType);
+                        value = type_traits::BinaryTypeToSqlTypeName(dataType);
 
                         return true;
                     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/77ba349b/modules/platforms/cpp/odbc/odbc-driver/src/query/column_metadata_query.cpp
----------------------------------------------------------------------
diff --git 
a/modules/platforms/cpp/odbc/odbc-driver/src/query/column_metadata_query.cpp 
b/modules/platforms/cpp/odbc/odbc-driver/src/query/column_metadata_query.cpp
index a17fd36..a4db450 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/src/query/column_metadata_query.cpp
+++ b/modules/platforms/cpp/odbc/odbc-driver/src/query/column_metadata_query.cpp
@@ -83,6 +83,8 @@ namespace ignite
                 columnsMeta()
             {
                 using namespace ignite::impl::binary;
+                using namespace ignite::odbc::type_traits;
+
                 using meta::ColumnMeta;
 
                 columnsMeta.reserve(12);

http://git-wip-us.apache.org/repos/asf/ignite/blob/77ba349b/modules/platforms/cpp/odbc/odbc-driver/src/query/foreign_keys_query.cpp
----------------------------------------------------------------------
diff --git 
a/modules/platforms/cpp/odbc/odbc-driver/src/query/foreign_keys_query.cpp 
b/modules/platforms/cpp/odbc/odbc-driver/src/query/foreign_keys_query.cpp
index 7fb16ce..83aba0c 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/src/query/foreign_keys_query.cpp
+++ b/modules/platforms/cpp/odbc/odbc-driver/src/query/foreign_keys_query.cpp
@@ -44,6 +44,8 @@ namespace ignite
                 columnsMeta()
             {
                 using namespace ignite::impl::binary;
+                using namespace ignite::odbc::type_traits;
+
                 using meta::ColumnMeta;
 
                 columnsMeta.reserve(14);

http://git-wip-us.apache.org/repos/asf/ignite/blob/77ba349b/modules/platforms/cpp/odbc/odbc-driver/src/query/primary_keys_query.cpp
----------------------------------------------------------------------
diff --git 
a/modules/platforms/cpp/odbc/odbc-driver/src/query/primary_keys_query.cpp 
b/modules/platforms/cpp/odbc/odbc-driver/src/query/primary_keys_query.cpp
index 0b7ad9d..b1a508e 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/src/query/primary_keys_query.cpp
+++ b/modules/platforms/cpp/odbc/odbc-driver/src/query/primary_keys_query.cpp
@@ -64,6 +64,8 @@ namespace ignite
                 columnsMeta()
             {
                 using namespace ignite::impl::binary;
+                using namespace ignite::odbc::type_traits;
+
                 using meta::ColumnMeta;
 
                 columnsMeta.reserve(6);

http://git-wip-us.apache.org/repos/asf/ignite/blob/77ba349b/modules/platforms/cpp/odbc/odbc-driver/src/query/table_metadata_query.cpp
----------------------------------------------------------------------
diff --git 
a/modules/platforms/cpp/odbc/odbc-driver/src/query/table_metadata_query.cpp 
b/modules/platforms/cpp/odbc/odbc-driver/src/query/table_metadata_query.cpp
index 779eb22..d381ee4 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/src/query/table_metadata_query.cpp
+++ b/modules/platforms/cpp/odbc/odbc-driver/src/query/table_metadata_query.cpp
@@ -63,6 +63,8 @@ namespace ignite
                 columnsMeta()
             {
                 using namespace ignite::impl::binary;
+                using namespace ignite::odbc::type_traits;
+
                 using meta::ColumnMeta;
 
                 columnsMeta.reserve(5);

http://git-wip-us.apache.org/repos/asf/ignite/blob/77ba349b/modules/platforms/cpp/odbc/odbc-driver/src/type_traits.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/odbc-driver/src/type_traits.cpp 
b/modules/platforms/cpp/odbc/odbc-driver/src/type_traits.cpp
index 2986077..813d606 100644
--- a/modules/platforms/cpp/odbc/odbc-driver/src/type_traits.cpp
+++ b/modules/platforms/cpp/odbc/odbc-driver/src/type_traits.cpp
@@ -35,6 +35,29 @@ namespace ignite
     {
         namespace type_traits
         {
+            const std::string SqlTypeName::VARCHAR("LONG VARCHAR");
+
+            const std::string SqlTypeName::SMALLINT("SMALLINT");
+
+            const std::string SqlTypeName::INTEGER("INTEGER");
+
+            const std::string SqlTypeName::DECIMAL("DECIMAL");
+
+            const std::string SqlTypeName::FLOAT("FLOAT");
+
+            const std::string SqlTypeName::DOUBLE("DOUBLE");
+
+            const std::string SqlTypeName::BIT("BIT");
+
+            const std::string SqlTypeName::TINYINT("TINYINT");
+
+            const std::string SqlTypeName::BIGINT("BIGINT");
+
+            const std::string SqlTypeName::BINARY("LONG VARBINARY");
+
+            const std::string SqlTypeName::DATE("DATE");
+
+            const std::string SqlTypeName::GUID("GUID");
 
 #ifdef _DEBUG
 
@@ -86,6 +109,72 @@ namespace ignite
 #undef DBG_STR_CASE
 #endif
 
+            const std::string& BinaryTypeToSqlTypeName(int8_t binaryType)
+            {
+                using namespace ignite::impl::binary;
+
+                switch (binaryType)
+                {
+                case IGNITE_TYPE_STRING:
+                    return SqlTypeName::VARCHAR;
+
+                case IGNITE_TYPE_SHORT:
+                    return SqlTypeName::SMALLINT;
+
+                case IGNITE_TYPE_INT:
+                    return SqlTypeName::INTEGER;
+
+                case IGNITE_TYPE_DECIMAL:
+                    return SqlTypeName::DECIMAL;
+
+                case IGNITE_TYPE_FLOAT:
+                    return SqlTypeName::FLOAT;
+
+                case IGNITE_TYPE_DOUBLE:
+                    return SqlTypeName::DOUBLE;
+
+                case IGNITE_TYPE_BOOL:
+                    return SqlTypeName::BIT;
+
+                case IGNITE_TYPE_BYTE:
+                case IGNITE_TYPE_CHAR:
+                    return SqlTypeName::TINYINT;
+
+                case IGNITE_TYPE_LONG:
+                    return SqlTypeName::BIGINT;
+
+                case IGNITE_TYPE_UUID:
+                    return SqlTypeName::GUID;
+
+                case IGNITE_TYPE_DATE:
+                    return SqlTypeName::DATE;
+
+                case IGNITE_TYPE_OBJECT:
+                case IGNITE_TYPE_ARRAY_BYTE:
+                case IGNITE_TYPE_ARRAY_SHORT:
+                case IGNITE_TYPE_ARRAY_INT:
+                case IGNITE_TYPE_ARRAY_LONG:
+                case IGNITE_TYPE_ARRAY_FLOAT:
+                case IGNITE_TYPE_ARRAY_DOUBLE:
+                case IGNITE_TYPE_ARRAY_CHAR:
+                case IGNITE_TYPE_ARRAY_BOOL:
+                case IGNITE_TYPE_ARRAY_DECIMAL:
+                case IGNITE_TYPE_ARRAY_STRING:
+                case IGNITE_TYPE_ARRAY_UUID:
+                case IGNITE_TYPE_ARRAY_DATE:
+                case IGNITE_TYPE_ARRAY:
+                case IGNITE_TYPE_COLLECTION:
+                case IGNITE_TYPE_MAP:
+                case IGNITE_TYPE_MAP_ENTRY:
+                case IGNITE_TYPE_BINARY:
+                default:
+                    return SqlTypeName::BINARY;
+                }
+
+                return SqlTypeName::BINARY;
+            }
+
+
             bool IsApplicationTypeSupported(int16_t type)
             {
                 return ToDriverType(type) != IGNITE_ODBC_C_TYPE_UNSUPPORTED;

Reply via email to