You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2014/06/02 18:43:37 UTC
git commit: Fixed integration/unittest for previous commit
Repository: incubator-metamodel
Updated Branches:
refs/heads/master 0344dfc06 -> 1d7270c12
Fixed integration/unittest for previous commit
Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/1d7270c1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/1d7270c1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/1d7270c1
Branch: refs/heads/master
Commit: 1d7270c12f21626cd560ea4486ada7e2175f2104
Parents: 0344dfc
Author: Kasper Sørensen <i....@gmail.com>
Authored: Mon Jun 2 18:42:45 2014 +0200
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Mon Jun 2 18:42:45 2014 +0200
----------------------------------------------------------------------
.../metamodel/couchdb/CouchDbDataContext.java | 9 ++++++++-
.../couchdb/CouchDbDataContextTest.java | 20 ++++++++++++++++++--
2 files changed, 26 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/1d7270c1/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
----------------------------------------------------------------------
diff --git a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
index e0ef5f9..89950d4 100644
--- a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
+++ b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
@@ -249,11 +249,18 @@ public class CouchDbDataContext extends QueryPostprocessDataContext implements U
@Override
protected org.apache.metamodel.data.Row executePrimaryKeyLookupQuery(Table table, List<SelectItem> selectItems,
Column primaryKeyColumn, Object keyValue) {
+ if (keyValue == null) {
+ return null;
+ }
+
final String databaseName = table.getName();
final CouchDbConnector connector = _couchDbInstance.createConnector(databaseName, false);
- final String keyString = (String) keyValue;
+ final String keyString = keyValue.toString();
final JsonNode node = connector.find(JsonNode.class, keyString);
+ if (node == null) {
+ return null;
+ }
return CouchDbUtils.jsonNodeToMetaModelRow(node, new SimpleDataSetHeader(selectItems));
}
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/1d7270c1/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java
----------------------------------------------------------------------
diff --git a/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java b/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java
index 48d9497..d9e361e 100644
--- a/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java
+++ b/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java
@@ -253,13 +253,29 @@ public class CouchDbDataContextTest extends CouchDbTestCase {
assertFalse(ds.next());
ds.close();
+ ds = dc.query().from(getDatabaseName()).select("_id").where("name").eq("Jane Doe").execute();
+ assertTrue(ds.next());
+ Object pkValue = ds.getRow().getValue(0);
+ assertFalse(ds.next());
+ ds.close();
+
// test primary key lookup query
- ds = dc.query().from(getDatabaseName()).select("name").and("gender").where("_id")
- .eq("jane_doe_some_unique_test_id").execute();
+ ds = dc.query().from(getDatabaseName()).select("name").and("gender").where("_id").eq(pkValue).execute();
assertTrue(ds.next());
assertEquals("Row[values=[Jane Doe, F]]", ds.getRow().toString());
assertFalse(ds.next());
ds.close();
+
+ // test primary key null
+ ds = dc.query().from(getDatabaseName()).select("name").and("gender").where("_id").isNull().execute();
+ assertFalse(ds.next());
+ ds.close();
+
+ // test primary key not found
+ ds = dc.query().from(getDatabaseName()).select("name").and("gender").where("_id").eq("this id does not exist")
+ .execute();
+ assertFalse(ds.next());
+ ds.close();
}
public void testFirstRowAndLastRow() throws Exception {