Skip to content
Snippets Groups Projects
Commit 6f13efd2 authored by Chiara Liotta's avatar Chiara Liotta
Browse files

compress data ids in dependency edge's data_ids property

parent 2ba513d2
No related branches found
No related tags found
No related merge requests found
...@@ -21,7 +21,13 @@ def create_in_param_relationship(driver: Driver, prefixed_component_id: str, par ...@@ -21,7 +21,13 @@ def create_in_param_relationship(driver: Driver, prefixed_component_id: str, par
query = """ query = """
MATCH (c:Component {component_id: $component_id}), (p:InParameter) MATCH (c:Component {component_id: $component_id}), (p:InParameter)
WHERE elementId(p) = $parameter_internal_id WHERE elementId(p) = $parameter_internal_id
MERGE (c)-[:DATA {component_id: $component_id, data_id: p.parameter_id}]->(p) MERGE (c)-[r:DATA {component_id: $component_id}]->(p)
SET r.data_ids =
CASE
WHEN r.data_ids IS NULL THEN [p.parameter_id]
WHEN NOT p.parameter_id IN r.data_ids THEN r.data_ids + [p.parameter_id]
ELSE r.data_ids
END
RETURN c.component_id AS component_id, p.parameter_id AS parameter_id RETURN c.component_id AS component_id, p.parameter_id AS parameter_id
""" """
with driver.session() as session: with driver.session() as session:
...@@ -48,7 +54,13 @@ def create_out_param_relationship(driver: Driver, prefixed_component_id: str, pa ...@@ -48,7 +54,13 @@ def create_out_param_relationship(driver: Driver, prefixed_component_id: str, pa
query = """ query = """
MATCH (c:Component {component_id: $component_id}), (p: OutParameter) MATCH (c:Component {component_id: $component_id}), (p: OutParameter)
WHERE elementId(p) = $parameter_internal_id WHERE elementId(p) = $parameter_internal_id
MERGE (c)<-[:DATA {component_id: $component_id, data_id: p.parameter_id}]-(p) MERGE (c)<-[r:DATA {component_id: $component_id}]-(p)
SET r.data_ids =
CASE
WHEN r.data_ids IS NULL THEN [p.parameter_id]
WHEN NOT p.parameter_id IN r.data_ids THEN r.data_ids + [p.parameter_id]
ELSE r.data_ids
END
RETURN c.component_id AS component_id, p.parameter_id AS parameter_id RETURN c.component_id AS component_id, p.parameter_id AS parameter_id
""" """
with driver.session() as session: with driver.session() as session:
...@@ -74,7 +86,13 @@ def create_data_relationship(driver: Driver, from_internal_node_id: int, to_inte ...@@ -74,7 +86,13 @@ def create_data_relationship(driver: Driver, from_internal_node_id: int, to_inte
query = """ query = """
MATCH (a), (b) MATCH (a), (b)
WHERE elementId(a) = $from_internal_node_id AND elementId(b) = $to_internal_node_id WHERE elementId(a) = $from_internal_node_id AND elementId(b) = $to_internal_node_id
MERGE (a)-[:DATA {component_id: $component_id, data_id: $data_id}]->(b) MERGE (a)-[r:DATA {component_id: $component_id}]->(b)
SET r.data_ids =
CASE
WHEN r.data_ids IS NULL THEN [$data_id]
WHEN NOT $data_id IN r.data_ids THEN r.data_ids + [$data_id]
ELSE r.data_ids
END
RETURN elementId(a) AS id_1, elementId(b) AS id_2 RETURN elementId(a) AS id_1, elementId(b) AS id_2
""" """
with driver.session() as session: with driver.session() as session:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment