@@ -138,6 +138,46 @@ $$) AS (a agtype);
138
138
{"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
139
139
(4 rows)
140
140
141
+ SELECT * FROM cypher('cypher_match', $$
142
+ MATCH (:v1)-[e]-() RETURN e
143
+ $$) AS (a agtype);
144
+ a
145
+ ---------------------------------------------------------------------------------------------------------------------------
146
+ {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
147
+ {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge
148
+ {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
149
+ {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge
150
+ (4 rows)
151
+
152
+ SELECT * FROM cypher('cypher_match', $$
153
+ MATCH (:v1)-[e]-(:v1) RETURN e
154
+ $$) AS (a agtype);
155
+ a
156
+ ---------------------------------------------------------------------------------------------------------------------------
157
+ {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
158
+ {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge
159
+ {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
160
+ {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge
161
+ (4 rows)
162
+
163
+ SELECT * FROM cypher('cypher_match', $$
164
+ MATCH ()-[]-()-[e]-(:v1) RETURN e
165
+ $$) AS (a agtype);
166
+ a
167
+ ---------------------------------------------------------------------------------------------------------------------------
168
+ {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
169
+ {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge
170
+ (2 rows)
171
+
172
+ SELECT * FROM cypher('cypher_match', $$
173
+ MATCH (a)-[]-()-[]-(:v1) RETURN a
174
+ $$) AS (a agtype);
175
+ a
176
+ ----------------------------------------------------------------------------------
177
+ {"id": 1125899906842625, "label": "v1", "properties": {"id": "initial"}}::vertex
178
+ {"id": 1125899906842627, "label": "v1", "properties": {"id": "end"}}::vertex
179
+ (2 rows)
180
+
141
181
-- Right Path Test
142
182
SELECT * FROM cypher('cypher_match', $$
143
183
MATCH (a:v1)-[:e1]->(b:v1)-[:e1]->(c:v1) RETURN a, b, c
@@ -187,6 +227,33 @@ $$) AS (a agtype);
187
227
{"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
188
228
(1 row)
189
229
230
+ SELECT * FROM cypher('cypher_match', $$
231
+ MATCH (:v1)-[e]->() RETURN e
232
+ $$) AS (a agtype);
233
+ a
234
+ ---------------------------------------------------------------------------------------------------------------------------
235
+ {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge
236
+ {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
237
+ (2 rows)
238
+
239
+ SELECT * FROM cypher('cypher_match', $$
240
+ MATCH ()-[e]->(:v1) RETURN e
241
+ $$) AS (a agtype);
242
+ a
243
+ ---------------------------------------------------------------------------------------------------------------------------
244
+ {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge
245
+ {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
246
+ (2 rows)
247
+
248
+ SELECT * FROM cypher('cypher_match', $$
249
+ MATCH (:v1)-[e]->(:v1) RETURN e
250
+ $$) AS (a agtype);
251
+ a
252
+ ---------------------------------------------------------------------------------------------------------------------------
253
+ {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge
254
+ {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
255
+ (2 rows)
256
+
190
257
--Left Path Test
191
258
SELECT * FROM cypher('cypher_match', $$
192
259
MATCH (a:v1)<-[:e1]-(b:v1)<-[:e1]-(c:v1) RETURN a, b, c
@@ -236,6 +303,15 @@ $$) AS (a agtype);
236
303
{"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge
237
304
(1 row)
238
305
306
+ SELECT * FROM cypher('cypher_match', $$
307
+ MATCH (:v1)<-[e]-(:v1) RETURN e
308
+ $$) AS (a agtype);
309
+ a
310
+ ---------------------------------------------------------------------------------------------------------------------------
311
+ {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge
312
+ {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
313
+ (2 rows)
314
+
239
315
--Divergent Path Tests
240
316
SELECT * FROM cypher('cypher_match', $$
241
317
CREATE (:v2 {id:'initial'})<-[:e2]-(:v2 {id:'middle'})-[:e2]->(:v2 {id:'end'})
@@ -278,6 +354,40 @@ $$) AS (i agtype);
278
354
{"id": 1688849860263938, "label": "v2", "properties": {"id": "middle"}}::vertex
279
355
(4 rows)
280
356
357
+ SELECT * FROM cypher('cypher_match', $$
358
+ MATCH (:v2)<-[]-(:v2)-[]->(:v2)
359
+ MATCH p=()-[]->()
360
+ RETURN p
361
+ $$) AS (i agtype);
362
+ i
363
+ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
364
+ [{"id": 1125899906842625, "label": "v1", "properties": {"id": "initial"}}::vertex, {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge, {"id": 1125899906842626, "label": "v1", "properties": {"id": "middle"}}::vertex]::path
365
+ [{"id": 1125899906842625, "label": "v1", "properties": {"id": "initial"}}::vertex, {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge, {"id": 1125899906842626, "label": "v1", "properties": {"id": "middle"}}::vertex]::path
366
+ [{"id": 1125899906842626, "label": "v1", "properties": {"id": "middle"}}::vertex, {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge, {"id": 1125899906842627, "label": "v1", "properties": {"id": "end"}}::vertex]::path
367
+ [{"id": 1125899906842626, "label": "v1", "properties": {"id": "middle"}}::vertex, {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge, {"id": 1125899906842627, "label": "v1", "properties": {"id": "end"}}::vertex]::path
368
+ [{"id": 1688849860263938, "label": "v2", "properties": {"id": "middle"}}::vertex, {"id": 1970324836974594, "label": "e2", "end_id": 1688849860263937, "start_id": 1688849860263938, "properties": {}}::edge, {"id": 1688849860263937, "label": "v2", "properties": {"id": "initial"}}::vertex]::path
369
+ [{"id": 1688849860263938, "label": "v2", "properties": {"id": "middle"}}::vertex, {"id": 1970324836974594, "label": "e2", "end_id": 1688849860263937, "start_id": 1688849860263938, "properties": {}}::edge, {"id": 1688849860263937, "label": "v2", "properties": {"id": "initial"}}::vertex]::path
370
+ [{"id": 1688849860263938, "label": "v2", "properties": {"id": "middle"}}::vertex, {"id": 1970324836974593, "label": "e2", "end_id": 1688849860263939, "start_id": 1688849860263938, "properties": {}}::edge, {"id": 1688849860263939, "label": "v2", "properties": {"id": "end"}}::vertex]::path
371
+ [{"id": 1688849860263938, "label": "v2", "properties": {"id": "middle"}}::vertex, {"id": 1970324836974593, "label": "e2", "end_id": 1688849860263939, "start_id": 1688849860263938, "properties": {}}::edge, {"id": 1688849860263939, "label": "v2", "properties": {"id": "end"}}::vertex]::path
372
+ (8 rows)
373
+
374
+ SELECT * FROM cypher('cypher_match', $$
375
+ MATCH ()<-[]-(:v2)-[]->()
376
+ MATCH p=()-[]->()
377
+ RETURN p
378
+ $$) AS (i agtype);
379
+ i
380
+ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
381
+ [{"id": 1125899906842625, "label": "v1", "properties": {"id": "initial"}}::vertex, {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge, {"id": 1125899906842626, "label": "v1", "properties": {"id": "middle"}}::vertex]::path
382
+ [{"id": 1125899906842625, "label": "v1", "properties": {"id": "initial"}}::vertex, {"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge, {"id": 1125899906842626, "label": "v1", "properties": {"id": "middle"}}::vertex]::path
383
+ [{"id": 1125899906842626, "label": "v1", "properties": {"id": "middle"}}::vertex, {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge, {"id": 1125899906842627, "label": "v1", "properties": {"id": "end"}}::vertex]::path
384
+ [{"id": 1125899906842626, "label": "v1", "properties": {"id": "middle"}}::vertex, {"id": 1407374883553281, "label": "e1", "end_id": 1125899906842627, "start_id": 1125899906842626, "properties": {}}::edge, {"id": 1125899906842627, "label": "v1", "properties": {"id": "end"}}::vertex]::path
385
+ [{"id": 1688849860263938, "label": "v2", "properties": {"id": "middle"}}::vertex, {"id": 1970324836974594, "label": "e2", "end_id": 1688849860263937, "start_id": 1688849860263938, "properties": {}}::edge, {"id": 1688849860263937, "label": "v2", "properties": {"id": "initial"}}::vertex]::path
386
+ [{"id": 1688849860263938, "label": "v2", "properties": {"id": "middle"}}::vertex, {"id": 1970324836974594, "label": "e2", "end_id": 1688849860263937, "start_id": 1688849860263938, "properties": {}}::edge, {"id": 1688849860263937, "label": "v2", "properties": {"id": "initial"}}::vertex]::path
387
+ [{"id": 1688849860263938, "label": "v2", "properties": {"id": "middle"}}::vertex, {"id": 1970324836974593, "label": "e2", "end_id": 1688849860263939, "start_id": 1688849860263938, "properties": {}}::edge, {"id": 1688849860263939, "label": "v2", "properties": {"id": "end"}}::vertex]::path
388
+ [{"id": 1688849860263938, "label": "v2", "properties": {"id": "middle"}}::vertex, {"id": 1970324836974593, "label": "e2", "end_id": 1688849860263939, "start_id": 1688849860263938, "properties": {}}::edge, {"id": 1688849860263939, "label": "v2", "properties": {"id": "end"}}::vertex]::path
389
+ (8 rows)
390
+
281
391
--Convergent Path Tests
282
392
SELECT * FROM cypher('cypher_match', $$
283
393
CREATE (:v3 {id:'initial'})-[:e3]->(:v3 {id:'middle'})<-[:e3]-(:v3 {id:'end'})
@@ -296,6 +406,16 @@ $$) AS (i agtype);
296
406
{"id": 1407374883553282, "label": "e1", "end_id": 1125899906842626, "start_id": 1125899906842625, "properties": {}}::edge
297
407
(2 rows)
298
408
409
+ SELECT * FROM cypher('cypher_match', $$
410
+ MATCH (:v3)-[b:e3]->()
411
+ RETURN b
412
+ $$) AS (i agtype);
413
+ i
414
+ ---------------------------------------------------------------------------------------------------------------------------
415
+ {"id": 2533274790395905, "label": "e3", "end_id": 2251799813685250, "start_id": 2251799813685251, "properties": {}}::edge
416
+ {"id": 2533274790395906, "label": "e3", "end_id": 2251799813685250, "start_id": 2251799813685249, "properties": {}}::edge
417
+ (2 rows)
418
+
299
419
SELECT * FROM cypher('cypher_match', $$
300
420
MATCH ()-[]->(n:v1)<-[]-()
301
421
MATCH p=(n)<-[]-()
@@ -343,6 +463,16 @@ $$) AS (div_path agtype);
343
463
[{"id": 1688849860263937, "label": "v2", "properties": {"id": "initial"}}::vertex, {"id": 1970324836974594, "label": "e2", "end_id": 1688849860263937, "start_id": 1688849860263938, "properties": {}}::edge, {"id": 1688849860263938, "label": "v2", "properties": {"id": "middle"}}::vertex, {"id": 1970324836974593, "label": "e2", "end_id": 1688849860263939, "start_id": 1688849860263938, "properties": {}}::edge, {"id": 1688849860263939, "label": "v2", "properties": {"id": "end"}}::vertex]::path
344
464
(1 row)
345
465
466
+ SELECT * FROM cypher('cypher_match', $$
467
+ MATCH (a)-[]->(:v3)<-[]-(b)
468
+ where a.id = 'initial'
469
+ RETURN b
470
+ $$) AS (con_path agtype);
471
+ con_path
472
+ ------------------------------------------------------------------------------
473
+ {"id": 2251799813685251, "label": "v3", "properties": {"id": "end"}}::vertex
474
+ (1 row)
475
+
346
476
--Patterns
347
477
SELECT * FROM cypher('cypher_match', $$
348
478
MATCH (a:v1), p=(a)-[]-()-[]-()
@@ -421,6 +551,27 @@ $$) AS (i agtype, b agtype, c agtype);
421
551
1 | "initial" | "middle"
422
552
(12 rows)
423
553
554
+ SELECT * FROM cypher('cypher_match', $$
555
+ MATCH (a:v)
556
+ MATCH (:v1)-[]-(c)
557
+ RETURN a.i, c.id
558
+ $$) AS (i agtype, c agtype);
559
+ i | c
560
+ ---+-----------
561
+ | "initial"
562
+ 0 | "initial"
563
+ 1 | "initial"
564
+ | "middle"
565
+ 0 | "middle"
566
+ 1 | "middle"
567
+ | "middle"
568
+ 0 | "middle"
569
+ 1 | "middle"
570
+ | "end"
571
+ 0 | "end"
572
+ 1 | "end"
573
+ (12 rows)
574
+
424
575
--
425
576
-- Property constraints
426
577
--
@@ -1629,6 +1780,39 @@ $$) AS (a agtype, r agtype);
1629
1780
{"id": 844424930131969, "label": "A", "properties": {}}::vertex | {"id": 1125899906842625, "label": "incs", "end_id": 1407374883553281, "start_id": 844424930131969, "properties": {}}::edge
1630
1781
(1 row)
1631
1782
1783
+ SELECT * FROM cypher('test_retrieve_var', $$
1784
+ MATCH (a:A)-[r:incs]->() WITH a, r
1785
+ OPTIONAL MATCH (a)-[r]->(c)
1786
+ WHERE EXISTS((:A)<-[]-(c))
1787
+ RETURN a, r
1788
+ $$) AS (a agtype, r agtype);
1789
+ a | r
1790
+ -----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------
1791
+ {"id": 844424930131969, "label": "A", "properties": {}}::vertex | {"id": 1125899906842625, "label": "incs", "end_id": 1407374883553281, "start_id": 844424930131969, "properties": {}}::edge
1792
+ (1 row)
1793
+
1794
+ SELECT * FROM cypher('test_retrieve_var', $$
1795
+ MATCH (a:A)-[r:incs]->() WITH a, r
1796
+ OPTIONAL MATCH (a)-[r]->(c)
1797
+ WHERE EXISTS((c)<-[]-(:A))
1798
+ RETURN a, r
1799
+ $$) AS (a agtype, r agtype);
1800
+ a | r
1801
+ -----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------
1802
+ {"id": 844424930131969, "label": "A", "properties": {}}::vertex | {"id": 1125899906842625, "label": "incs", "end_id": 1407374883553281, "start_id": 844424930131969, "properties": {}}::edge
1803
+ (1 row)
1804
+
1805
+ SELECT * FROM cypher('test_retrieve_var', $$
1806
+ MATCH (a:A)-[r:incs]->() WITH a, r
1807
+ OPTIONAL MATCH (a)-[r]->(c)
1808
+ WHERE EXISTS((:C)<-[]-(:A))
1809
+ RETURN a, r
1810
+ $$) AS (a agtype, r agtype);
1811
+ a | r
1812
+ -----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------
1813
+ {"id": 844424930131969, "label": "A", "properties": {}}::vertex | {"id": 1125899906842625, "label": "incs", "end_id": 1407374883553281, "start_id": 844424930131969, "properties": {}}::edge
1814
+ (1 row)
1815
+
1632
1816
SELECT * FROM cypher('test_retrieve_var', $$
1633
1817
MATCH (a:A)-[r:incs]->() WITH a, r
1634
1818
OPTIONAL MATCH (a)-[r]->(c)
0 commit comments