remove null.
Project: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/commit/cdfa0c3d Tree: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/tree/cdfa0c3d Diff: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/diff/cdfa0c3d Branch: refs/heads/master Commit: cdfa0c3d27d646481955c22f3b389e6cf5980a2a Parents: 87394b9 Author: DO YUNG YOON <[email protected]> Authored: Fri Nov 3 16:48:34 2017 +0900 Committer: DO YUNG YOON <[email protected]> Committed: Fri Nov 3 16:48:34 2017 +0900 ---------------------------------------------------------------------- .../org/apache/s2graph/core/S2EdgeLike.scala | 1 + .../tall/IndexEdgeDeserializable.scala | 27 ++++++++++++-------- .../wide/IndexEdgeDeserializable.scala | 26 +++++++++++-------- 3 files changed, 34 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/cdfa0c3d/s2core/src/main/scala/org/apache/s2graph/core/S2EdgeLike.scala ---------------------------------------------------------------------- diff --git a/s2core/src/main/scala/org/apache/s2graph/core/S2EdgeLike.scala b/s2core/src/main/scala/org/apache/s2graph/core/S2EdgeLike.scala index bb58554..f823d60 100644 --- a/s2core/src/main/scala/org/apache/s2graph/core/S2EdgeLike.scala +++ b/s2core/src/main/scala/org/apache/s2graph/core/S2EdgeLike.scala @@ -48,6 +48,7 @@ trait S2EdgeLike extends Edge with GraphElement { lazy val labelName = innerLabel.label lazy val direction = GraphUtil.fromDirection(dir) + def setTgtVertex(v: S2VertexLike): Unit = tgtVertex = v def getOp(): Byte = op def setOp(newOp: Byte): Unit = op = newOp def getVersion(): Long = version http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/cdfa0c3d/s2core/src/main/scala/org/apache/s2graph/core/storage/serde/indexedge/tall/IndexEdgeDeserializable.scala ---------------------------------------------------------------------- diff --git a/s2core/src/main/scala/org/apache/s2graph/core/storage/serde/indexedge/tall/IndexEdgeDeserializable.scala b/s2core/src/main/scala/org/apache/s2graph/core/storage/serde/indexedge/tall/IndexEdgeDeserializable.scala index 01f268b..8e3fdf3 100644 --- a/s2core/src/main/scala/org/apache/s2graph/core/storage/serde/indexedge/tall/IndexEdgeDeserializable.scala +++ b/s2core/src/main/scala/org/apache/s2graph/core/storage/serde/indexedge/tall/IndexEdgeDeserializable.scala @@ -62,9 +62,6 @@ class IndexEdgeDeserializable(graph: S2Graph, val label = Label.findById(labelWithDir.labelId) val schemaVer = label.schemaVersion val srcVertex = graph.newVertex(srcVertexId, version) - //TODO: - val edge = graph.newEdge(srcVertex, null, - label, labelWithDir.dir, GraphUtil.defaultOpByte, version, S2Edge.EmptyState) var tsVal = version val isTallSchema = tallSchemaVersions(label.schemaVersion) val isDegree = if (isTallSchema) pos == kv.row.length else kv.qualifier.isEmpty @@ -74,12 +71,17 @@ class IndexEdgeDeserializable(graph: S2Graph, // val degreeVal = Bytes.toLong(kv.value) val degreeVal = bytesToLongFunc(kv.value, 0) val tgtVertexId = VertexId(ServiceColumn.Default, InnerVal.withStr("0", schemaVer)) + val tgtVertex = graph.newVertex(tgtVertexId, version) + val edge = graph.newEdge(srcVertex, tgtVertex, + label, labelWithDir.dir, GraphUtil.defaultOpByte, version, S2Edge.EmptyState) edge.propertyInner(LabelMeta.timestamp.name, version, version) edge.propertyInner(LabelMeta.degree.name, degreeVal, version) edge.tgtVertex = graph.newVertex(tgtVertexId, version) edge.setOp(GraphUtil.defaultOpByte) edge.setTsInnerValOpt(Option(InnerVal.withLong(tsVal, schemaVer))) + + Option(edge) } else { // not degree edge val (idxPropsRaw, endAt) = @@ -111,6 +113,10 @@ class IndexEdgeDeserializable(graph: S2Graph, else kv.qualifier(kv.qualifier.length - 1) } + val tgtVertex = graph.newVertex(tgtVertexIdRaw, version) + val edge = graph.newEdge(srcVertex, tgtVertex, + label, labelWithDir.dir, GraphUtil.defaultOpByte, version, S2Edge.EmptyState) + val index = label.indicesMap.getOrElse(labelIdxSeq, throw new RuntimeException(s"invalid index seq: ${label.id.get}, ${labelIdxSeq}")) /* process indexProps */ val size = idxPropsRaw.length @@ -141,18 +147,19 @@ class IndexEdgeDeserializable(graph: S2Graph, } /* process tgtVertexId */ - val tgtVertexId = - if (edge.checkProperty(LabelMeta.to.name)) { - val vId = edge.property(LabelMeta.to.name).asInstanceOf[S2Property[_]].innerValWithTs - TargetVertexId(ServiceColumn.Default, vId.innerVal) - } else tgtVertexIdRaw + + if (edge.checkProperty(LabelMeta.to.name)) { + val vId = edge.property(LabelMeta.to.name).asInstanceOf[S2Property[_]].innerValWithTs + val tgtVertex = graph.newVertex(TargetVertexId(ServiceColumn.Default, vId.innerVal), version) + edge.setTgtVertex(tgtVertex) + } edge.propertyInner(LabelMeta.timestamp.name, tsVal, version) - edge.tgtVertex = graph.newVertex(tgtVertexId, version) edge.setOp(op) edge.setTsInnerValOpt(Option(InnerVal.withLong(tsVal, schemaVer))) + + Option(edge) } - Option(edge) } } catch { case e: Exception => http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/cdfa0c3d/s2core/src/main/scala/org/apache/s2graph/core/storage/serde/indexedge/wide/IndexEdgeDeserializable.scala ---------------------------------------------------------------------- diff --git a/s2core/src/main/scala/org/apache/s2graph/core/storage/serde/indexedge/wide/IndexEdgeDeserializable.scala b/s2core/src/main/scala/org/apache/s2graph/core/storage/serde/indexedge/wide/IndexEdgeDeserializable.scala index a7fe8a1..f5d9af9 100644 --- a/s2core/src/main/scala/org/apache/s2graph/core/storage/serde/indexedge/wide/IndexEdgeDeserializable.scala +++ b/s2core/src/main/scala/org/apache/s2graph/core/storage/serde/indexedge/wide/IndexEdgeDeserializable.scala @@ -57,19 +57,22 @@ class IndexEdgeDeserializable(graph: S2Graph, val schemaVer = label.schemaVersion val srcVertex = graph.newVertex(srcVertexId, version) //TODO: - val edge = graph.newEdge(srcVertex, null, - label, labelWithDir.dir, GraphUtil.defaultOpByte, version, S2Edge.EmptyState) var tsVal = version if (kv.qualifier.isEmpty) { val degreeVal = bytesToLongFunc(kv.value, 0) val tgtVertexId = VertexId(ServiceColumn.Default, InnerVal.withStr("0", schemaVer)) + val tgtVertex = graph.newVertex(tgtVertexId, version) + val edge = graph.newEdge(srcVertex, tgtVertex, + label, labelWithDir.dir, GraphUtil.defaultOpByte, version, S2Edge.EmptyState) edge.propertyInner(LabelMeta.timestamp.name, version, version) edge.propertyInner(LabelMeta.degree.name, degreeVal, version) edge.tgtVertex = graph.newVertex(tgtVertexId, version) edge.setOp(GraphUtil.defaultOpByte) edge.setTsInnerValOpt(Option(InnerVal.withLong(tsVal, schemaVer))) + + Option(edge) } else { pos = 0 val (idxPropsRaw, endAt) = bytesToProps(kv.qualifier, pos, schemaVer) @@ -85,6 +88,10 @@ class IndexEdgeDeserializable(graph: S2Graph, if (kv.qualifier.length == pos) GraphUtil.defaultOpByte else kv.qualifier(kv.qualifier.length-1) + val tgtVertex = graph.newVertex(tgtVertexIdRaw, version) + val edge = graph.newEdge(srcVertex, tgtVertex, + label, labelWithDir.dir, GraphUtil.defaultOpByte, version, S2Edge.EmptyState) + val index = label.indicesMap.getOrElse(labelIdxSeq, throw new RuntimeException(s"invalid index seq: ${label.id.get}, ${labelIdxSeq}")) /* process indexProps */ @@ -115,19 +122,18 @@ class IndexEdgeDeserializable(graph: S2Graph, } } /* process tgtVertexId */ - val tgtVertexId = - if (edge.checkProperty(LabelMeta.to.name)) { - val vId = edge.property(LabelMeta.to.name).asInstanceOf[S2Property[_]].innerValWithTs - TargetVertexId(ServiceColumn.Default, vId.innerVal) - } else tgtVertexIdRaw + if (edge.checkProperty(LabelMeta.to.name)) { + val vId = edge.property(LabelMeta.to.name).asInstanceOf[S2Property[_]].innerValWithTs + val tgtVertex = graph.newVertex(TargetVertexId(ServiceColumn.Default, vId.innerVal), version) + edge.setTgtVertex(tgtVertex) + } edge.propertyInner(LabelMeta.timestamp.name, tsVal, version) - edge.tgtVertex = graph.newVertex(tgtVertexId, version) edge.setOp(op) edge.setTsInnerValOpt(Option(InnerVal.withLong(tsVal, schemaVer))) - } - Option(edge) + Option(edge) + } } } catch { case e: Exception => None
