diff --git a/redisgraph/query_result.py b/redisgraph/query_result.py index 8036a1d..0ee61cc 100644 --- a/redisgraph/query_result.py +++ b/redisgraph/query_result.py @@ -31,6 +31,8 @@ class QueryResult(object): RELATIONSHIPS_DELETED = 'Relationships deleted' PROPERTIES_SET = 'Properties set' RELATIONSHIPS_CREATED = 'Relationships created' + INDICES_CREATED = "Indices created" + INDICES_DELETED = "Indices deleted" INTERNAL_EXECUTION_TIME = 'internal execution time' def __init__(self, graph, response): @@ -61,7 +63,8 @@ def parse_statistics(self, raw_statistics): self.statistics = {} stats = [self.LABELS_ADDED, self.NODES_CREATED, self.PROPERTIES_SET, self.RELATIONSHIPS_CREATED, - self.NODES_DELETED, self.RELATIONSHIPS_DELETED, self.INTERNAL_EXECUTION_TIME] + self.NODES_DELETED, self.RELATIONSHIPS_DELETED, self.INDICES_CREATED, self.INDICES_DELETED, + self.INTERNAL_EXECUTION_TIME] for s in stats: v = self._get_value(s, raw_statistics) if v is not None: @@ -248,6 +251,14 @@ def relationships_created(self): def relationships_deleted(self): return self._get_stat(self.RELATIONSHIPS_DELETED) + @property + def indices_created(self): + return self._get_stat(self.INDICES_CREATED) + + @property + def indices_deleted(self): + return self._get_stat(self.INDICES_DELETED) + @property def run_time_ms(self): return self._get_stat(self.INTERNAL_EXECUTION_TIME) diff --git a/test.py b/test.py index 0d73ae9..7b885da 100644 --- a/test.py +++ b/test.py @@ -107,5 +107,24 @@ def test_param(self): # All done, remove graph. redis_graph.delete() + def test_index_response(self): + redis_graph = Graph('social', self.r) + + result_set = redis_graph.query("CREATE INDEX ON :person(age)") + self.assertEqual(1, result_set.indices_created) + + result_set = redis_graph.query("CREATE INDEX ON :person(age)") + self.assertEqual(0, result_set.indices_created) + + result_set = redis_graph.query("DROP INDEX ON :person(age)") + self.assertEqual(1, result_set.indices_deleted) + + try: + result_set = redis_graph.query("DROP INDEX ON :person(age)") + except redis.exceptions.ResponseError as e: + self.assertEqual(e.__str__(), "Unable to drop index on :person(age): no such index.") + + redis_graph.delete() + if __name__ == '__main__': unittest.main()