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/12/05 12:38:19 UTC
[15/52] ignite git commit: IGNITE-4288: ODBC: Fixed DML
interoperability. This closes #1272.
IGNITE-4288: ODBC: Fixed DML interoperability. This closes #1272.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/4a758d1a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4a758d1a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4a758d1a
Branch: refs/heads/master
Commit: 4a758d1a6285f9441af7c894e2a31e0df895cb03
Parents: d2b915e
Author: isapego <ig...@gmail.com>
Authored: Thu Nov 24 15:49:08 2016 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Thu Nov 24 15:49:08 2016 +0300
----------------------------------------------------------------------
.../internal/processors/odbc/OdbcNioListener.java | 2 +-
.../internal/processors/odbc/OdbcRequestHandler.java | 14 +++++++-------
.../ignite/internal/processors/odbc/OdbcUtils.java | 4 ++--
.../cpp/odbc/include/ignite/odbc/common_types.h | 1 +
.../platforms/cpp/odbc/include/ignite/odbc/message.h | 9 +--------
.../cpp/odbc/include/ignite/odbc/statement.h | 4 ++--
modules/platforms/cpp/odbc/src/connection.cpp | 4 +++-
modules/platforms/cpp/odbc/src/statement.cpp | 4 ++--
modules/platforms/cpp/odbc/src/utility.cpp | 6 ------
9 files changed, 19 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4a758d1a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java
index e7baaff..378e5f2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java
@@ -137,7 +137,7 @@ public class OdbcNioListener extends GridNioServerListenerAdapter<byte[]> {
catch (Exception e) {
log.error("Failed to process ODBC request [id=" + reqId + ", err=" + e + ']');
- ses.send(parser.encode(new OdbcResponse(OdbcResponse.STATUS_FAILED, e.getMessage())));
+ ses.send(parser.encode(new OdbcResponse(OdbcResponse.STATUS_FAILED, e.toString())));
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/4a758d1a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java
index 588fc66..32fb9db 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java
@@ -164,7 +164,7 @@ public class OdbcRequestHandler {
catch (Exception e) {
U.error(log, "Failed to perform handshake [reqId=" + reqId + ", req=" + req + ']', e);
- return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.getMessage());
+ return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.toString());
}
}
@@ -220,7 +220,7 @@ public class OdbcRequestHandler {
U.error(log, "Failed to execute SQL query [reqId=" + reqId + ", req=" + req + ']', e);
- return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.getMessage());
+ return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.toString());
}
}
@@ -255,7 +255,7 @@ public class OdbcRequestHandler {
U.error(log, "Failed to close SQL query [reqId=" + reqId + ", req=" + req.queryId() + ']', e);
- return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.getMessage());
+ return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.toString());
}
}
@@ -295,7 +295,7 @@ public class OdbcRequestHandler {
catch (Exception e) {
U.error(log, "Failed to fetch SQL query result [reqId=" + reqId + ", req=" + req + ']', e);
- return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.getMessage());
+ return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.toString());
}
}
@@ -352,7 +352,7 @@ public class OdbcRequestHandler {
catch (Exception e) {
U.error(log, "Failed to get columns metadata [reqId=" + reqId + ", req=" + req + ']', e);
- return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.getMessage());
+ return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.toString());
}
}
@@ -397,7 +397,7 @@ public class OdbcRequestHandler {
catch (Exception e) {
U.error(log, "Failed to get tables metadata [reqId=" + reqId + ", req=" + req + ']', e);
- return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.getMessage());
+ return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.toString());
}
}
@@ -429,7 +429,7 @@ public class OdbcRequestHandler {
catch (Exception e) {
U.error(log, "Failed to get params metadata [reqId=" + reqId + ", req=" + req + ']', e);
- return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.getMessage());
+ return new OdbcResponse(OdbcResponse.STATUS_FAILED, e.toString());
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/4a758d1a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcUtils.java
index 300b079..3903562 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcUtils.java
@@ -28,7 +28,7 @@ public class OdbcUtils {
* @return String surrounded with quotation marks.
*/
public static String addQuotationMarksIfNeeded(String str) {
- if (!str.startsWith("\"") && !str.isEmpty())
+ if (str != null && !str.isEmpty() && !(str.startsWith("\"") && str.endsWith("\"")))
return "\"" + str + "\"";
return str;
@@ -41,7 +41,7 @@ public class OdbcUtils {
* @return String without leading and trailing quotation marks.
*/
public static String removeQuotationMarksIfNeeded(String str) {
- if (str.startsWith("\"") && str.endsWith("\""))
+ if (str != null && str.startsWith("\"") && str.endsWith("\""))
return str.substring(1, str.length() - 1);
return str;
http://git-wip-us.apache.org/repos/asf/ignite/blob/4a758d1a/modules/platforms/cpp/odbc/include/ignite/odbc/common_types.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/include/ignite/odbc/common_types.h b/modules/platforms/cpp/odbc/include/ignite/odbc/common_types.h
index a61be53..517fe4e 100644
--- a/modules/platforms/cpp/odbc/include/ignite/odbc/common_types.h
+++ b/modules/platforms/cpp/odbc/include/ignite/odbc/common_types.h
@@ -30,6 +30,7 @@ namespace ignite
namespace odbc
{
typedef SQLLEN SqlLen;
+ typedef SQLULEN SqlUlen;
/**
* SQL result.
http://git-wip-us.apache.org/repos/asf/ignite/blob/4a758d1a/modules/platforms/cpp/odbc/include/ignite/odbc/message.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/include/ignite/odbc/message.h b/modules/platforms/cpp/odbc/include/ignite/odbc/message.h
index 5c6a933..a2bbd99 100644
--- a/modules/platforms/cpp/odbc/include/ignite/odbc/message.h
+++ b/modules/platforms/cpp/odbc/include/ignite/odbc/message.h
@@ -461,16 +461,9 @@ namespace ignite
status = reader.ReadInt8();
if (status == RESPONSE_STATUS_SUCCESS)
- {
ReadOnSuccess(reader);
- }
else
- {
- int32_t errorLen = reader.ReadString(0, 0);
- error.resize(errorLen);
-
- reader.ReadString(&error[0], static_cast<int32_t>(error.size()));
- }
+ utility::ReadString(reader, error);;
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/4a758d1a/modules/platforms/cpp/odbc/include/ignite/odbc/statement.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/include/ignite/odbc/statement.h b/modules/platforms/cpp/odbc/include/ignite/odbc/statement.h
index 8adcc60..db56660 100644
--- a/modules/platforms/cpp/odbc/include/ignite/odbc/statement.h
+++ b/modules/platforms/cpp/odbc/include/ignite/odbc/statement.h
@@ -357,7 +357,7 @@ namespace ignite
* @param nullable - Nullability flag.
*/
void DescribeParam(int16_t paramNum, int16_t* dataType,
- size_t* paramSize, int16_t* decimalDigits, int16_t* nullable);
+ SqlUlen* paramSize, int16_t* decimalDigits, int16_t* nullable);
private:
IGNITE_NO_COPY_ASSIGNMENT(Statement);
@@ -583,7 +583,7 @@ namespace ignite
* @return Operation result.
*/
SqlResult InternalDescribeParam(int16_t paramNum, int16_t* dataType,
- size_t* paramSize, int16_t* decimalDigits, int16_t* nullable);
+ SqlUlen* paramSize, int16_t* decimalDigits, int16_t* nullable);
/**
* Make request to data source to update parameters metadata.
http://git-wip-us.apache.org/repos/asf/ignite/blob/4a758d1a/modules/platforms/cpp/odbc/src/connection.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/src/connection.cpp b/modules/platforms/cpp/odbc/src/connection.cpp
index e8db376..38f8cba 100644
--- a/modules/platforms/cpp/odbc/src/connection.cpp
+++ b/modules/platforms/cpp/odbc/src/connection.cpp
@@ -180,7 +180,9 @@ namespace ignite
if (!connected)
IGNITE_ERROR_1(IgniteError::IGNITE_ERR_ILLEGAL_STATE, "Connection is not established");
- common::FixedSizeArray<int8_t> msg(len + sizeof(OdbcProtocolHeader));
+ int32_t newLen = static_cast<int32_t>(len + sizeof(OdbcProtocolHeader));
+
+ common::FixedSizeArray<int8_t> msg(newLen);
OdbcProtocolHeader *hdr = reinterpret_cast<OdbcProtocolHeader*>(msg.GetData());
http://git-wip-us.apache.org/repos/asf/ignite/blob/4a758d1a/modules/platforms/cpp/odbc/src/statement.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/src/statement.cpp b/modules/platforms/cpp/odbc/src/statement.cpp
index a0b38d7..02c6dd9 100644
--- a/modules/platforms/cpp/odbc/src/statement.cpp
+++ b/modules/platforms/cpp/odbc/src/statement.cpp
@@ -821,14 +821,14 @@ namespace ignite
}
void Statement::DescribeParam(int16_t paramNum, int16_t* dataType,
- size_t* paramSize, int16_t* decimalDigits, int16_t* nullable)
+ SqlUlen* paramSize, int16_t* decimalDigits, int16_t* nullable)
{
IGNITE_ODBC_API_CALL(InternalDescribeParam(paramNum,
dataType, paramSize, decimalDigits, nullable));
}
SqlResult Statement::InternalDescribeParam(int16_t paramNum, int16_t* dataType,
- size_t* paramSize, int16_t* decimalDigits, int16_t* nullable)
+ SqlUlen* paramSize, int16_t* decimalDigits, int16_t* nullable)
{
query::Query *qry = currentQuery.get();
if (!qry)
http://git-wip-us.apache.org/repos/asf/ignite/blob/4a758d1a/modules/platforms/cpp/odbc/src/utility.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/src/utility.cpp b/modules/platforms/cpp/odbc/src/utility.cpp
index 9763144..22191eb 100644
--- a/modules/platforms/cpp/odbc/src/utility.cpp
+++ b/modules/platforms/cpp/odbc/src/utility.cpp
@@ -63,13 +63,7 @@ namespace ignite
reader.ReadString(&str[0], static_cast<int32_t>(str.size()));
}
else
- {
str.clear();
-
- char dummy;
-
- reader.ReadString(&dummy, sizeof(dummy));
- }
}
void WriteString(ignite::impl::binary::BinaryWriterImpl& writer, const std::string & str)