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]
+----
+----