@@ -245,6 +245,19 @@ def test_cached_execution(self):
245
245
redis_graph .delete ()
246
246
247
247
def test_execution_plan (self ):
248
+ redis_graph = Graph ('execution_plan' , self .r )
249
+ create_query = """CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}),
250
+ (:Rider {name:'Dani Pedrosa'})-[:rides]->(:Team {name:'Honda'}),
251
+ (:Rider {name:'Andrea Dovizioso'})-[:rides]->(:Team {name:'Ducati'})"""
252
+ redis_graph .query (create_query )
253
+
254
+ result = redis_graph .execution_plan ("MATCH (r:Rider)-[:rides]->(t:Team) WHERE t.name = $name RETURN r.name, t.name, $params" , {'name' : 'Yehuda' })
255
+ expected = "Results\n Project\n Conditional Traverse | (t:Team)->(r:Rider)\n Filter\n Node By Label Scan | (t:Team)"
256
+ self .assertEqual (result , expected )
257
+
258
+ redis_graph .delete ()
259
+
260
+ def test_explain (self ):
248
261
redis_graph = Graph ('execution_plan' , self .r )
249
262
# graph creation / population
250
263
create_query = """CREATE
@@ -253,13 +266,13 @@ def test_execution_plan(self):
253
266
(:Rider {name:'Andrea Dovizioso'})-[:rides]->(:Team {name:'Ducati'})"""
254
267
redis_graph .query (create_query )
255
268
256
- result = redis_graph .execution_plan ("""MATCH (r:Rider)-[:rides]->(t:Team)
257
- WHERE t.name = $name
258
- RETURN r.name, t.name
259
- UNION
260
- MATCH (r:Rider)-[:rides]->(t:Team)
261
- WHERE t.name = $name
262
- RETURN r.name, t.name""" , {'name' : 'Yamaha' })
269
+ result = redis_graph .explain ("""MATCH (r:Rider)-[:rides]->(t:Team)
270
+ WHERE t.name = $name
271
+ RETURN r.name, t.name
272
+ UNION
273
+ MATCH (r:Rider)-[:rides]->(t:Team)
274
+ WHERE t.name = $name
275
+ RETURN r.name, t.name""" , {'name' : 'Yamaha' })
263
276
expected = '''\
264
277
Results
265
278
Distinct
0 commit comments