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 2016/05/16 03:53:44 UTC

[09/42] metamodel git commit: METAMODEL-231: Fixed

METAMODEL-231: Fixed

Fixes #88

Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/4f4cefdb
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/4f4cefdb
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/4f4cefdb

Branch: refs/heads/5.x
Commit: 4f4cefdbbe890291def12107b1b20ca6a5b96141
Parents: 63262e9
Author: Tomasz Guzialek <to...@guzialek.info>
Authored: Sat Jan 30 12:31:44 2016 +0100
Committer: Kasper S�rensen <i....@gmail.com>
Committed: Sat Jan 30 12:31:44 2016 +0100

----------------------------------------------------------------------
 CHANGES.md                                                |  1 +
 .../java/org/apache/metamodel/neo4j/Neo4jDataContext.java |  4 +++-
 .../org/apache/metamodel/neo4j/Neo4jDataContextTest.java  | 10 ++++++++++
 3 files changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metamodel/blob/4f4cefdb/CHANGES.md
----------------------------------------------------------------------
diff --git a/CHANGES.md b/CHANGES.md
index 773a57d..13f1694 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -2,6 +2,7 @@
 
  * [METAMODEL-227] - Fix for respecting CSV escape character also when no quote character is set.
  * [METAMODEL-183] - MongoDB module split into three: common, Mongo2 and Mongo3 to allow use of either old or new MongoDB API.
+ * [METAMODEL-231] - Fixed a bug causing the Neo4j to represent the same table multiple times within a schema.
 
 ### Apache MetaModel 4.5.0
 

http://git-wip-us.apache.org/repos/asf/metamodel/blob/4f4cefdb/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
----------------------------------------------------------------------
diff --git a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
index 568ad71..cb0b2ac 100644
--- a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
+++ b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
@@ -19,7 +19,9 @@
 package org.apache.metamodel.neo4j;
 
 import java.util.ArrayList;
+import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.http.HttpHost;
 import org.apache.http.client.methods.HttpGet;
@@ -170,7 +172,7 @@ public class Neo4jDataContext extends QueryPostprocessDataContext implements Dat
                     }
                 }
 
-                List<String> relationshipPropertiesPerLabel = new ArrayList<String>();
+                Set<String> relationshipPropertiesPerLabel = new LinkedHashSet<String>();
                 for (JSONObject node : nodesPerLabel) {
                     Integer nodeId = (Integer) node.getJSONObject("metadata").get("id");
                     List<JSONObject> relationshipsPerNode = getOutgoingRelationshipsPerNode(nodeId);

http://git-wip-us.apache.org/repos/asf/metamodel/blob/4f4cefdb/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
----------------------------------------------------------------------
diff --git a/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java b/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
index d4e3774..1246ce2 100644
--- a/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
+++ b/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
@@ -100,12 +100,22 @@ public class Neo4jDataContextTest extends Neo4jTestCase {
         requestWrapper.executeCypherQuery("CREATE (n:JUnitPerson { name: 'Tomasz', age: 26})");
         requestWrapper.executeCypherQuery("CREATE (n:JUnitPerson { name: 'Philomeena', age: 18})");
         requestWrapper.executeCypherQuery("CREATE (n:JUnitBook { title: 'Introduction to algorithms'})");
+        requestWrapper.executeCypherQuery("CREATE (n:JUnitBook { title: 'Rich Dad Poor Dad'})");
         requestWrapper.executeCypherQuery("MATCH (a:JUnitPerson),(b:JUnitBook)"
                 + "WHERE a.name = 'Tomasz' AND b.title = 'Introduction to algorithms'"
                 + "CREATE (a)-[r:HAS_READ { rating : 5 }]->(b)");
         requestWrapper.executeCypherQuery("MATCH (a:JUnitPerson),(b:JUnitBook)"
                 + "WHERE a.name = 'Philomeena' AND b.title = 'Introduction to algorithms'"
                 + "CREATE (a)-[r:HAS_BROWSED]->(b)");
+        requestWrapper.executeCypherQuery("MATCH (a:JUnitPerson),(b:JUnitBook)"
+                + "WHERE a.name = 'Philomeena' AND b.title = 'Introduction to algorithms'"
+                + "CREATE (a)-[r:HAS_BROWSED]->(b)");
+        requestWrapper.executeCypherQuery("MATCH (a:JUnitPerson),(b:JUnitBook)"
+                + "WHERE a.name = 'Tomasz' AND b.title = 'Rich Dad Poor Dad'"
+                + "CREATE (a)-[r:HAS_READ { rating : 4 }]->(b)");
+        requestWrapper.executeCypherQuery("MATCH (a:JUnitPerson),(b:JUnitBook)"
+                + "WHERE a.name = 'Philomeena' AND b.title = 'Rich Dad Poor Dad'"
+                + "CREATE (a)-[r:HAS_READ { rating : 2 }]->(b)");
 
         Neo4jDataContext strategy = new Neo4jDataContext(getHostname(), getPort(), getUsername(), getPassword());
         Schema schema = strategy.getSchemaByName(strategy.getDefaultSchemaName());