You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: cip/1.accepted/CIP2017-06-18-multiple-graphs.adoc
+19-16
Original file line number
Diff line number
Diff line change
@@ -288,7 +288,7 @@ If one of the bound variables in a pattern is an entity that is not contained in
288
288
289
289
An error is raised, if a statement attempts to update an entity that is not contained in the working graph.
290
290
291
-
==== Copy patterns
291
+
=== Copy patterns
292
292
293
293
A new type of pattern that is called a *copy pattern* may be used to copy all labels and properties of a node or the relationship type and all properties of a relationship.
294
294
The syntax of clone patterns is:
@@ -305,20 +305,6 @@ Copying relationships ignores the start and the end node of the relationship.
305
305
306
306
Copy patterns may be used in updating statements.
307
307
308
-
==== Clone patterns
309
-
310
-
A new type of pattern that is called a *clone pattern* may be used find the clone (if present) for a source entity as determined by provenance tracking.
311
-
312
-
[source, cypher]
313
-
----
314
-
MATCH (a)-[r]->(b)
315
-
FROM another_graph
316
-
MATCH (x CLONE OF b)-[CLONE OF r]->()
317
-
...
318
-
----
319
-
320
-
Clone patterns should not be used in updating statements.
321
-
322
308
323
309
=== Returning a graph result
324
310
@@ -381,6 +367,7 @@ A single statement may end in a `<graph-construction>`.
381
367
382
368
// TODO: FORK nodes
383
369
// TODO: REMOVE n.prop on clokes
370
+
// TODO: Define lineage tree
384
371
In order to reconstruct subgraph structures from other graphs in the new graph, `CONSTRUCT` supports the addition of *cloned entities* in the new graph.
385
372
386
373
_Definition_: *Cloning* ensures that exactly one new entity (called a *clone*) is created in the new graph for a given cloned entity (called its *source*) from a source graph.
@@ -416,7 +403,7 @@ Constructed graphs are built by explicitly populating them with entities using t
416
403
* `REMOVE`
417
404
* `[DETACH] DELETE`
418
405
419
-
An error is raised for any attempt to `SET` labels or properties of cloned entities during graph construction.
406
+
An error is raised for any attempt to `SET` or `REMOVE` labels or properties of cloned entities during graph construction.
420
407
421
408
422
409
==== Updating constructed graphs
@@ -435,6 +422,21 @@ Constructed graphs may only be updated by
435
422
An error is raised if an update to a constructed graph leads to a constraint violation in a source graph.
436
423
437
424
425
+
=== Clone patterns
426
+
427
+
A new type of pattern that is called a *clone pattern* may be used find the clone (if present) for a source entity as determined by provenance tracking.
428
+
429
+
[source, cypher]
430
+
----
431
+
MATCH (a)-[r]->(b)
432
+
FROM another_graph
433
+
MATCH (x CLONE OF b)-[CLONE OF r]->()
434
+
...
435
+
----
436
+
437
+
Clone patterns should not be used in updating statements.
438
+
439
+
438
440
=== Graph union
439
441
440
442
The *common graph union* of two graphs may be computed using the following syntax:
@@ -540,6 +542,7 @@ The `catalog(g)` function returns the catalog name for the graph identity `g` or
540
542
541
543
The `catalog()` function returns the catalog name for the working graph or `NULL` if the working graph is a dynamically constructed graph.
0 commit comments