Skip to content

Commit d2cac0a

Browse files
author
DvirDukhan
authored
cached execution statistics (#76)
* cached execution statistics * test * fixed according to redisgraph fixes * fixed PR comment
1 parent 48ff15f commit d2cac0a

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

redisgraph/query_result.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class QueryResult(object):
3333
RELATIONSHIPS_CREATED = 'Relationships created'
3434
INDICES_CREATED = "Indices created"
3535
INDICES_DELETED = "Indices deleted"
36+
CACHED_EXECUTION = "Cached execution"
3637
INTERNAL_EXECUTION_TIME = 'internal execution time'
3738

3839
def __init__(self, graph, response):
@@ -64,7 +65,7 @@ def parse_statistics(self, raw_statistics):
6465

6566
stats = [self.LABELS_ADDED, self.NODES_CREATED, self.PROPERTIES_SET, self.RELATIONSHIPS_CREATED,
6667
self.NODES_DELETED, self.RELATIONSHIPS_DELETED, self.INDICES_CREATED, self.INDICES_DELETED,
67-
self.INTERNAL_EXECUTION_TIME]
68+
self.CACHED_EXECUTION, self.INTERNAL_EXECUTION_TIME]
6869
for s in stats:
6970
v = self._get_value(s, raw_statistics)
7071
if v is not None:
@@ -227,6 +228,7 @@ def _get_value(prop, statistics):
227228
if prop in stat:
228229
return float(stat.split(': ')[1].split(' ')[0])
229230

231+
230232
return None
231233

232234
def _get_stat(self, stat):
@@ -264,6 +266,10 @@ def indices_created(self):
264266
def indices_deleted(self):
265267
return self._get_stat(self.INDICES_DELETED)
266268

269+
@property
270+
def cached_execution(self):
271+
return self._get_stat(self.CACHED_EXECUTION) == 1
272+
267273
@property
268274
def run_time_ms(self):
269275
return self._get_stat(self.INTERNAL_EXECUTION_TIME)

test.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,5 +187,15 @@ def test_optional_match(self):
187187

188188
redis_graph.delete()
189189

190+
def test_cached_execution(self):
191+
redis_graph = Graph('cached', self.r)
192+
redis_graph.query("CREATE ()")
193+
uncached_result = redis_graph.query("MATCH (n) RETURN n")
194+
cached_result = redis_graph.query("MATCH (n) RETURN n")
195+
self.assertEqual(uncached_result.result_set, cached_result.result_set)
196+
self.assertFalse(uncached_result.cached_execution)
197+
self.assertTrue(cached_result.cached_execution)
198+
redis_graph.delete()
199+
190200
if __name__ == '__main__':
191201
unittest.main()

0 commit comments

Comments
 (0)