Skip to content

Commit

Permalink
perf(matadata-io): neo4j generateLineageStatement use shortestPath (d…
Browse files Browse the repository at this point in the history
…atahub-project#7219)

Co-authored-by: Aseem Bansal <[email protected]>
  • Loading branch information
2 people authored and Oleg Ruban committed Feb 28, 2023
1 parent a073154 commit e7d9109
Showing 1 changed file with 4 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,8 @@ public EntityLineageResult getLineage(@Nonnull Urn entityUrn, @Nonnull LineageDi
}

private String generateLineageStatement(@Nonnull Urn entityUrn, @Nonnull LineageDirection direction, GraphFilters graphFilters, int maxHops) {
final String multiHopTemplateDirect = "MATCH (a {urn: '%s'})-[r:%s*1..%d]->(b) WHERE b:%s RETURN a,r,b";
final String multiHopTemplateIndirect = "MATCH (a {urn: '%s'})<-[r:%s*1..%d]-(b) WHERE b:%s RETURN a,r,b";
final String multiHopTemplateDirect = "MATCH shortestPath((a {urn: '%s'})-[r:%s*1..%d]->(b)) WHERE (b:%s) AND b.urn <> '%s' RETURN a,r,b";
final String multiHopTemplateIndirect = "MATCH shortestPath((a {urn: '%s'})<-[r:%s*1..%d]-(b)) WHERE (b:%s) AND b.urn <> '%s' RETURN a,r,b";

List<LineageRegistry.EdgeInfo> edgesToFetch =
getLineageRegistry().getLineageRelationships(entityUrn.getEntityType(), direction);
Expand All @@ -179,8 +179,8 @@ private String generateLineageStatement(@Nonnull Urn entityUrn, @Nonnull Lineage

final String allowedEntityTypes = String.join(" OR b:", graphFilters.getAllowedEntityTypes());

final String statementDirect = String.format(multiHopTemplateDirect, entityUrn, upstreamRel, maxHops, allowedEntityTypes);
final String statementIndirect = String.format(multiHopTemplateIndirect, entityUrn, dowStreamRel, maxHops, allowedEntityTypes);
final String statementDirect = String.format(multiHopTemplateDirect, entityUrn, upstreamRel, maxHops, allowedEntityTypes, entityUrn);
final String statementIndirect = String.format(multiHopTemplateIndirect, entityUrn, dowStreamRel, maxHops, allowedEntityTypes, entityUrn);

String statement = null;
if (upstreamRel.length() > 0 && dowStreamRel.length() > 0) {
Expand Down

0 comments on commit e7d9109

Please sign in to comment.