@@ -6245,32 +6245,22 @@ NOTICE: graph "case_statement" has been created
62456245
62466246(1 row)
62476247
6248- SELECT * FROM cypher('case_statement', $$CREATE ({i: 1, j: null})$$) AS (result agtype);
6248+ SELECT * FROM cypher('case_statement', $$CREATE ({id: 1, i: 1, j: null})-[:connected_to {id: 1, k:0}]->({id: 2, i: 'a', j: 'b' })$$) AS (result agtype);
62496249 result
62506250--------
62516251(0 rows)
62526252
6253- SELECT * FROM cypher('case_statement', $$CREATE ({i: 'a' , j: 'b' })$$) AS (result agtype);
6253+ SELECT * FROM cypher('case_statement', $$CREATE ({id: 3, i: 0 , j: 1})-[:connected_to {id: 2, k:1}]->({id: 4, i: true, j: false })$$) AS (result agtype);
62546254 result
62556255--------
62566256(0 rows)
62576257
6258- SELECT * FROM cypher('case_statement', $$CREATE ({i: 0 , j: 1 })$$) AS (result agtype);
6258+ SELECT * FROM cypher('case_statement', $$CREATE ({id: 5, i: [] , j: [0,1,2] })$$) AS (result agtype);
62596259 result
62606260--------
62616261(0 rows)
62626262
6263- SELECT * FROM cypher('case_statement', $$CREATE ({i: true, j: false})$$) AS (result agtype);
6264- result
6265- --------
6266- (0 rows)
6267-
6268- SELECT * FROM cypher('case_statement', $$CREATE ({i: [], j: [0,1,2]})$$) AS (result agtype);
6269- result
6270- --------
6271- (0 rows)
6272-
6273- SELECT * FROM cypher('case_statement', $$CREATE ({i: {}, j: {i:1}})$$) AS (result agtype);
6263+ SELECT * FROM cypher('case_statement', $$CREATE ({id: 6, i: {}, j: {i:1}})$$) AS (result agtype);
62746264 result
62756265--------
62766266(0 rows)
@@ -6355,6 +6345,57 @@ $$ ) AS (j agtype, case_statement agtype);
63556345 {"i": 1} | {"i": 1}
63566346(6 rows)
63576347
6348+ --CASE agtype_vertex WHEN value THEN result END
6349+ SELECT * FROM cypher('case_statement', $$
6350+ MATCH (n)
6351+ RETURN CASE n
6352+ WHEN null THEN 'should not return me'
6353+ WHEN 'agtype_string' THEN 'wrong'
6354+ WHEN n THEN n
6355+ ELSE 'no n'
6356+ END
6357+ $$ ) AS (case_statement agtype);
6358+ case_statement
6359+ ------------------------------------------------------------------------------------------------
6360+ {"id": 281474976710657, "label": "", "properties": {"i": 1, "id": 1}}::vertex
6361+ {"id": 281474976710658, "label": "", "properties": {"i": "a", "j": "b", "id": 2}}::vertex
6362+ {"id": 281474976710659, "label": "", "properties": {"i": 0, "j": 1, "id": 3}}::vertex
6363+ {"id": 281474976710660, "label": "", "properties": {"i": true, "j": false, "id": 4}}::vertex
6364+ {"id": 281474976710661, "label": "", "properties": {"i": [], "j": [0, 1, 2], "id": 5}}::vertex
6365+ {"id": 281474976710662, "label": "", "properties": {"i": {}, "j": {"i": 1}, "id": 6}}::vertex
6366+ (6 rows)
6367+
6368+ --CASE with match and edges
6369+ SELECT * FROM cypher('case_statement', $$
6370+ MATCH (n)-[e]->(m)
6371+ RETURN CASE
6372+ WHEN null THEN 'should not return me'
6373+ WHEN n.i = 1 THEN n
6374+ WHEN n.i = 0 THEN m
6375+ ELSE 'none'
6376+ END
6377+ $$ ) AS (case_statement agtype);
6378+ case_statement
6379+ ----------------------------------------------------------------------------------------------
6380+ {"id": 281474976710657, "label": "", "properties": {"i": 1, "id": 1}}::vertex
6381+ {"id": 281474976710660, "label": "", "properties": {"i": true, "j": false, "id": 4}}::vertex
6382+ (2 rows)
6383+
6384+ SELECT * FROM cypher('case_statement', $$
6385+ MATCH (n)-[e]->(m)
6386+ RETURN CASE
6387+ WHEN null THEN 'should not return me'
6388+ WHEN e.k = 1 THEN e
6389+ WHEN e.k = 0 THEN e
6390+ ELSE 'none'
6391+ END
6392+ $$ ) AS (case_statement agtype);
6393+ case_statement
6394+ -------------------------------------------------------------------------------------------------------------------------------------------------
6395+ {"id": 844424930131969, "label": "connected_to", "end_id": 281474976710658, "start_id": 281474976710657, "properties": {"k": 0, "id": 1}}::edge
6396+ {"id": 844424930131970, "label": "connected_to", "end_id": 281474976710660, "start_id": 281474976710659, "properties": {"k": 1, "id": 2}}::edge
6397+ (2 rows)
6398+
63586399-- RETURN * and (u)--(v) optional forms
63596400SELECT create_graph('opt_forms');
63606401NOTICE: graph "opt_forms" has been created
@@ -7213,9 +7254,10 @@ NOTICE: graph "VLE" has been dropped
72137254(1 row)
72147255
72157256SELECT * FROM drop_graph('case_statement', true);
7216- NOTICE: drop cascades to 2 other objects
7257+ NOTICE: drop cascades to 3 other objects
72177258DETAIL: drop cascades to table case_statement._ag_label_vertex
72187259drop cascades to table case_statement._ag_label_edge
7260+ drop cascades to table case_statement.connected_to
72197261NOTICE: graph "case_statement" has been dropped
72207262 drop_graph
72217263------------
0 commit comments