You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/02/20 12:46:32 UTC
[13/38] ignite git commit: IGNITE-2652: CPP: Fixed a bug in
QueryFieldsRow::GetNext() method. This closes #483.
IGNITE-2652: CPP: Fixed a bug in QueryFieldsRow::GetNext() method. This closes #483.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8562b001
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8562b001
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8562b001
Branch: refs/heads/ignite-961
Commit: 8562b001052e398287ef288b4226fa1cf07fcd0e
Parents: 933d314
Author: isapego <is...@gridgain.com>
Authored: Wed Feb 17 12:44:12 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Feb 17 12:44:12 2016 +0300
----------------------------------------------------------------------
.../cpp/core-test/src/cache_query_test.cpp | 45 ++++++++++++++++++++
.../ignite/cache/query/query_fields_row.h | 2 +-
2 files changed, 46 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/8562b001/modules/platforms/cpp/core-test/src/cache_query_test.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/src/cache_query_test.cpp b/modules/platforms/cpp/core-test/src/cache_query_test.cpp
index 18fe24f..05e6477 100644
--- a/modules/platforms/cpp/core-test/src/cache_query_test.cpp
+++ b/modules/platforms/cpp/core-test/src/cache_query_test.cpp
@@ -713,6 +713,51 @@ BOOST_AUTO_TEST_CASE(TestFieldsQuerySingle)
}
/**
+ * Test fields query with single entry.
+ */
+BOOST_AUTO_TEST_CASE(TestFieldsQueryExceptions)
+{
+ // Test simple query.
+ Cache<int, QueryPerson> cache = GetCache();
+
+ // Test query with two fields of different type.
+ SqlFieldsQuery qry("select age, name from QueryPerson");
+
+ QueryFieldsCursor cursor = cache.Query(qry);
+ CheckEmpty(cursor);
+
+ // Test simple query.
+ cache.Put(1, QueryPerson("A1", 10));
+
+ cursor = cache.Query(qry);
+
+ try
+ {
+ BOOST_REQUIRE(cursor.HasNext());
+
+ QueryFieldsRow row = cursor.GetNext();
+
+ BOOST_REQUIRE(row.HasNext());
+
+ int age = row.GetNext<int>();
+
+ BOOST_REQUIRE(age == 10);
+
+ std::string name = row.GetNext<std::string>();
+
+ BOOST_REQUIRE(name == "A1");
+
+ BOOST_REQUIRE(!row.HasNext());
+
+ CheckEmpty(cursor);
+ }
+ catch (IgniteError& error)
+ {
+ BOOST_FAIL(error.GetText());
+ }
+}
+
+/**
* Test fields query with two simultaneously handled rows.
*/
BOOST_AUTO_TEST_CASE(TestFieldsQueryTwo)
http://git-wip-us.apache.org/repos/asf/ignite/blob/8562b001/modules/platforms/cpp/core/include/ignite/cache/query/query_fields_row.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/cache/query/query_fields_row.h b/modules/platforms/cpp/core/include/ignite/cache/query/query_fields_row.h
index bb10e9e..4f3be4c 100644
--- a/modules/platforms/cpp/core/include/ignite/cache/query/query_fields_row.h
+++ b/modules/platforms/cpp/core/include/ignite/cache/query/query_fields_row.h
@@ -109,7 +109,7 @@ namespace ignite
{
IgniteError err;
- QueryFieldsRow res = GetNext<T>(err);
+ T res = GetNext<T>(err);
IgniteError::ThrowIfNeeded(err);