@@ -191,18 +191,32 @@ def test_cached_execution(self):
191
191
redis_graph = Graph ('cached' , self .r )
192
192
redis_graph .query ("CREATE ()" )
193
193
194
- uncached_result = redis_graph .query ("MATCH (n) RETURN n" )
194
+ uncached_result = redis_graph .query ("MATCH (n) RETURN n, $param" , { 'param' : [ 0 ]} )
195
195
self .assertFalse (uncached_result .cached_execution )
196
196
197
197
# loop to make sure the query is cached on each thread on server
198
198
for x in range (0 , 32 ):
199
- cached_result = redis_graph .query ("MATCH (n) RETURN n" )
199
+ cached_result = redis_graph .query ("MATCH (n) RETURN n, $param" , { 'param' : [ 0 ]} )
200
200
self .assertEqual (uncached_result .result_set , cached_result .result_set )
201
201
202
202
# should be cached on all threads by now
203
203
self .assertTrue (cached_result .cached_execution )
204
204
205
205
redis_graph .delete ()
206
+
207
+
208
+ def test_execution_plan (self ):
209
+ redis_graph = Graph ('execution_plan' , self .r )
210
+ create_query = """CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}),
211
+ (:Rider {name:'Dani Pedrosa'})-[:rides]->(:Team {name:'Honda'}),
212
+ (:Rider {name:'Andrea Dovizioso'})-[:rides]->(:Team {name:'Ducati'})"""
213
+ redis_graph .query (create_query )
214
+
215
+ result = redis_graph .execution_plan ("MATCH (r:Rider)-[:rides]->(t:Team) WHERE t.name = $name RETURN r.name, t.name, $params" , {'name' : 'Yehuda' })
216
+ expected = "Results\n Project\n Conditional Traverse | (t:Team)->(r:Rider)\n Filter\n Node By Label Scan | (t:Team)"
217
+ self .assertEqual (result , expected )
218
+
219
+ redis_graph .delete ()
206
220
207
221
if __name__ == '__main__' :
208
222
unittest .main ()
0 commit comments