skip storing vertex's belongsTo property when insert edge unless label's extra 
option is set as {"skipVertex": false}.


Project: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/commit/b5a44d93
Tree: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/tree/b5a44d93
Diff: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/diff/b5a44d93

Branch: refs/heads/master
Commit: b5a44d9321c46f2d4c3296ea6d05e0198bd06e3c
Parents: 03af01e
Author: DO YUNG YOON <steams...@apache.org>
Authored: Tue Mar 29 17:34:20 2016 +0900
Committer: DO YUNG YOON <steams...@apache.org>
Committed: Thu Nov 10 06:05:37 2016 +0900

----------------------------------------------------------------------
 .../org/apache/s2graph/core/storage/Storage.scala     | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/b5a44d93/s2core/src/main/scala/org/apache/s2graph/core/storage/Storage.scala
----------------------------------------------------------------------
diff --git 
a/s2core/src/main/scala/org/apache/s2graph/core/storage/Storage.scala 
b/s2core/src/main/scala/org/apache/s2graph/core/storage/Storage.scala
index 70e47a7..f5cc4f4 100644
--- a/s2core/src/main/scala/org/apache/s2graph/core/storage/Storage.scala
+++ b/s2core/src/main/scala/org/apache/s2graph/core/storage/Storage.scala
@@ -326,6 +326,7 @@ abstract class Storage[R](val config: Config)(implicit ec: 
ExecutionContext) {
         val (_, edgeUpdate) =
           if (edge.op == GraphUtil.operations("delete")) 
Edge.buildDeleteBulk(None, edge)
           else Edge.buildOperation(None, Seq(edge))
+
         buildVertexPutsAsync(edge) ++ indexedEdgeMutations(edgeUpdate) ++
           snapshotEdgeMutations(edgeUpdate) ++ increments(edgeUpdate)
       }
@@ -1322,10 +1323,15 @@ abstract class Storage[R](val config: Config)(implicit 
ec: ExecutionContext) {
   }
 
   def buildVertexPutsAsync(edge: Edge): Seq[SKeyValue] =
-    if (edge.op == GraphUtil.operations("delete"))
-      buildDeleteBelongsToId(edge.srcForVertex) ++ 
buildDeleteBelongsToId(edge.tgtForVertex)
-    else
-      vertexSerializer(edge.srcForVertex).toKeyValues ++ 
vertexSerializer(edge.tgtForVertex).toKeyValues
+    edge.label.extraOptions.get("skipVertex") match {
+      case Some(v) if v == false =>
+        if (edge.op == GraphUtil.operations("delete"))
+          buildDeleteBelongsToId(edge.srcForVertex) ++ 
buildDeleteBelongsToId(edge.tgtForVertex)
+        else
+          vertexSerializer(edge.srcForVertex).toKeyValues ++ 
vertexSerializer(edge.tgtForVertex).toKeyValues
+      case _ => Seq.empty
+    }
+
 
   def buildPutsAll(vertex: Vertex): Seq[SKeyValue] = {
     vertex.op match {

Reply via email to