pdpotter commented on issue #45:
URL: https://github.com/apache/incubator-age/issues/45#issuecomment-908222122
When the edges are inserted in the specific edge table, they are
automatically added to the `_ag_label_edge` table, reducing the workaround to
the following and making the relation creation even faster:
First, the underlying ids of the vertices are retrieved:
```
SELECT * FROM cyper('graph_name',$$
MATCH (n:LabelA)
return id(n), n.id
$$) as (id agtype, prop agtype);
```
A single edge is then created using the cypher function to make sure the
underlying tables are created correctly (the id values are made up)
```
SELECT * FROM cypher('graph_name', $$
MATCH (d:LabelA), (r:LabelB)
WHERE id(d) = 11111 and id(r) = 11112
CREATE (d)-[:RelationA {prop: 'value'}]->(r)
$$) as (a agtype);
```
All other edges are created by direct insertion in the specific edge table
(using
[executemany](https://magicstack.github.io/asyncpg/current/api/index.html#asyncpg.connection.Connection.executemany)):
```
INSERT INTO graph_name.RelationA (start_id, end_id, properties)
VALUES ($1, $2, $3)
```
Where `$1` are the domain_ids, `$2` are the range_ids and `$3` are the
properties (as json dump).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]