@@ -191,18 +191,32 @@ def test_cached_execution(self):
191191 redis_graph = Graph ('cached' , self .r )
192192 redis_graph .query ("CREATE ()" )
193193
194- uncached_result = redis_graph .query ("MATCH (n) RETURN n" )
194+ uncached_result = redis_graph .query ("MATCH (n) RETURN n, $param" , { 'param' : [ 0 ]} )
195195 self .assertFalse (uncached_result .cached_execution )
196196
197197 # loop to make sure the query is cached on each thread on server
198198 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 ]} )
200200 self .assertEqual (uncached_result .result_set , cached_result .result_set )
201201
202202 # should be cached on all threads by now
203203 self .assertTrue (cached_result .cached_execution )
204204
205205 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 ()
206220
207221if __name__ == '__main__' :
208222 unittest .main ()
0 commit comments