Repository: atlas
Updated Branches:
  refs/heads/master 572c5d648 -> da78c4831


ATLAS-2927: Update lineage query for Process entities #2


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

Branch: refs/heads/master
Commit: da78c48314c67f2998eab2190324ca3786b3bafc
Parents: 572c5d6
Author: Sarath Subramanian <ssubraman...@hortonworks.com>
Authored: Fri Oct 26 16:02:55 2018 -0700
Committer: Sarath Subramanian <ssubraman...@hortonworks.com>
Committed: Fri Oct 26 16:02:55 2018 -0700

----------------------------------------------------------------------
 .../java/org/apache/atlas/discovery/EntityLineageService.java    | 3 ++-
 .../java/org/apache/atlas/util/AtlasGremlin3QueryProvider.java   | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/atlas/blob/da78c483/repository/src/main/java/org/apache/atlas/discovery/EntityLineageService.java
----------------------------------------------------------------------
diff --git 
a/repository/src/main/java/org/apache/atlas/discovery/EntityLineageService.java 
b/repository/src/main/java/org/apache/atlas/discovery/EntityLineageService.java
index 89c969b..9a02046 100644
--- 
a/repository/src/main/java/org/apache/atlas/discovery/EntityLineageService.java
+++ 
b/repository/src/main/java/org/apache/atlas/discovery/EntityLineageService.java
@@ -309,7 +309,8 @@ public class EntityLineageService implements 
AtlasLineageService {
         bindings.put("guid", entityGuid);
         bindings.put("incomingEdgeLabel", incomingFrom);
         bindings.put("outgoingEdgeLabel", outgoingTo);
-        bindings.put("depth", depth);
+        bindings.put("dataSetDepth", depth);
+        bindings.put("processDepth", depth - 1);
 
         if (depth < 1) {
             ret = isDataSet ? 
gremlinQueryProvider.getQuery(FULL_LINEAGE_DATASET) :

http://git-wip-us.apache.org/repos/asf/atlas/blob/da78c483/repository/src/main/java/org/apache/atlas/util/AtlasGremlin3QueryProvider.java
----------------------------------------------------------------------
diff --git 
a/repository/src/main/java/org/apache/atlas/util/AtlasGremlin3QueryProvider.java
 
b/repository/src/main/java/org/apache/atlas/util/AtlasGremlin3QueryProvider.java
index 6d3b1a8..20c570f 100644
--- 
a/repository/src/main/java/org/apache/atlas/util/AtlasGremlin3QueryProvider.java
+++ 
b/repository/src/main/java/org/apache/atlas/util/AtlasGremlin3QueryProvider.java
@@ -48,11 +48,11 @@ public class AtlasGremlin3QueryProvider extends 
AtlasGremlin2QueryProvider {
             case FULL_LINEAGE_DATASET:
                 return "g.V().has('__guid', 
guid).repeat(__.inE(incomingEdgeLabel).as('e1').outV().outE(outgoingEdgeLabel).as('e2').inV()).emit().select('e1',
 'e2').toList()";
             case PARTIAL_LINEAGE_DATASET:
-                return "g.V().has('__guid', 
guid).repeat(__.inE(incomingEdgeLabel).as('e1').outV().outE(outgoingEdgeLabel).as('e2').inV()).times(depth).emit().select('e1',
 'e2').toList()";
+                return "g.V().has('__guid', 
guid).repeat(__.inE(incomingEdgeLabel).as('e1').outV().outE(outgoingEdgeLabel).as('e2').inV()).times(dataSetDepth).emit().select('e1',
 'e2').toList()";
             case FULL_LINEAGE_PROCESS:
                 return "g.V().has('__guid', 
guid).outE(outgoingEdgeLabel).store('e').inV().repeat(__.inE(incomingEdgeLabel).store('e').outV().outE(outgoingEdgeLabel).store('e').inV()).cap('e').unfold().toList()";
             case PARTIAL_LINEAGE_PROCESS:
-                return "g.V().has('__guid', 
guid).outE(outgoingEdgeLabel).store('e').inV().repeat(__.inE(incomingEdgeLabel).store('e').outV().outE(outgoingEdgeLabel).store('e').inV()).times(depth).cap('e').unfold().toList()";
+                return "g.V().has('__guid', 
guid).outE(outgoingEdgeLabel).store('e').inV().until(loops().is(eq(processDepth))).repeat(__.inE(incomingEdgeLabel).store('e').outV().outE(outgoingEdgeLabel).store('e').inV()).cap('e').unfold().toList()";
             case TO_RANGE_LIST:
                 return ".range(startIdx, endIdx).toList()";
             case RELATIONSHIP_SEARCH:

Reply via email to