You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2024/08/24 12:45:20 UTC
(groovy-website) branch asf-site updated: preliminary Apache Age examples
This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/groovy-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 401ab73 preliminary Apache Age examples
401ab73 is described below
commit 401ab737a0b104725be5729eb5a55c12e8a3e35f
Author: Paul King <pa...@asert.com.au>
AuthorDate: Sat Aug 24 22:45:09 2024 +1000
preliminary Apache Age examples
---
site/src/site/blog/groovy-graph-databases.adoc | 100 +++++++++++++++++++++++++
1 file changed, 100 insertions(+)
diff --git a/site/src/site/blog/groovy-graph-databases.adoc b/site/src/site/blog/groovy-graph-databases.adoc
index 736e836..2231e0a 100644
--- a/site/src/site/blog/groovy-graph-databases.adoc
+++ b/site/src/site/blog/groovy-graph-databases.adoc
@@ -378,3 +378,103 @@ RETURN sr1.name as name
''')*.name == ['Kylie Masse']
----
+== Apache Age
+
+[source,groovy]
+----
+sql.execute'''
+ SELECT * FROM cypher('swimming_graph', $$ CREATE
+ (es:swimmer {name: 'Emily Seebohm', country: 'π¦πΊ'}),
+ (swim1:swim {event: 'Heat 4', result: 'First', time: 58.23, at: 'London 2012'}),
+ (es)-[:swam]->(swim1),
+
+ (km:swimmer {name: 'Kylie Masse', country: 'π¨π¦'}),
+ (swim2:swim {event: 'Heat 4', result: 'First', time: 58.17, at: 'Tokyo 2021'}),
+ (km)-[:swam]->(swim2),
+ (swim2)-[:supercedes]->(swim1),
+ (swim3:swim {event: 'Final', result: 'π₯', time: 57.72, at: 'Tokyo 2021'}),
+ (km)-[:swam]->(swim3),
+
+ (rs:swimmer {name: 'Regan Smith', country: 'πΊπΈ'}),
+ (swim4:swim {event: 'Heat 5', result: 'First', time: 57.96, at: 'Tokyo 2021'}),
+ (rs)-[:swam]->(swim4),
+ (swim4)-[:supercedes]->(swim2),
+ (swim5:swim {event: 'Semifinal 1', result: 'First', time: 57.86, at: 'Tokyo 2021'}),
+ (rs)-[:swam]->(swim5),
+ (swim6:swim {event: 'Final', result: 'π₯', time: 58.05, at: 'Tokyo 2021'}),
+ (rs)-[:swam]->(swim6),
+ (swim7:swim {event: 'Final', result: 'π₯', time: 57.66, at: 'Paris 2024'}),
+ (rs)-[:swam]->(swim7),
+ (swim8:swim {event: 'Relay leg1', result: 'First', time: 57.28, at: 'Paris 2024'}),
+ (rs)-[:swam]->(swim8),
+
+ (kmk:swimmer {name: 'Kaylie McKeown', country: 'π¦πΊ'}),
+ (swim9:swim {event: 'Heat 6', result: 'First', time: 57.88, at: 'Tokyo 2021'}),
+ (kmk)-[:swam]->(swim9),
+ (swim9)-[:supercedes]->(swim4),
+ (swim5)-[:supercedes]->(swim9),
+ (swim10:swim {event: 'Final', result: 'π₯', time: 57.47, at: 'Tokyo 2021'}),
+ (kmk)-[:swam]->(swim10),
+ (swim10)-[:supercedes]->(swim5),
+ (swim11:swim {event: 'Final', result: 'π₯', time: 57.33, at: 'Paris 2024'}),
+ (kmk)-[:swam]->(swim11),
+ (swim11)-[:supercedes]->(swim10),
+ (swim8)-[:supercedes]->(swim11),
+
+ (kb:swimmer {name: 'Katharine Berkoff', country: 'πΊπΈ'}),
+ (swim12:swim {event: 'Final', result: 'π₯', time: 57.98, at: 'Paris 2024'}),
+ (kb)-[:swam]->(swim12)
+ $$) AS (a agtype)
+'''
+----
+
+[source,groovy]
+----
+assert sql.rows('''
+ SELECT * from cypher('swimming_graph', $$
+ MATCH (s:swim)
+ WHERE left(s.event, 4) = 'Heat'
+ RETURN s
+ $$) AS (a agtype)
+''').a*.map*.get('properties')*.at.toUnique() == ['London 2012', 'Tokyo 2021']
+----
+
+[source,groovy]
+----
+assert sql.rows('''
+ SELECT * from cypher('swimming_graph', $$
+ MATCH (s1:swim {event: 'Final'})-[:supercedes]->(s2:swim)
+ RETURN s1
+ $$) AS (a agtype)
+''').a*.map*.get('properties')*.time == [57.47, 57.33]
+----
+
+[source,groovy]
+----
+sql.eachRow('''
+ SELECT * from cypher('swimming_graph', $$
+ MATCH (s1:swim)-[:supercedes]->(swim1)
+ RETURN s1
+ $$) AS (a agtype)
+''') {
+ println it.a*.map*.get('properties')[0].with{ "$it.at $it.event" }
+}
+----
+
+----
+Tokyo 2021 Heat 4
+Tokyo 2021 Heat 5
+Tokyo 2021 Heat 6
+Tokyo 2021 Final
+Tokyo 2021 Semifinal 1
+Paris 2024 Final
+Paris 2024 Relay leg1
+----
+
+[source,groovy]
+----
+----
+
+[source,groovy]
+----
+----