Skip to content

Commit f71dd71

Browse files
committed
Result.consume
1 parent ae4400c commit f71dd71

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

neo4j/connection.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,8 @@ def on_failure(metadata):
235235

236236
self.append(INIT, (user_agent,), response=response)
237237
self.send()
238-
fetch_next = self.fetch_next
239238
while not response.complete:
240-
fetch_next()
239+
self.fetch_next()
241240

242241
def append(self, signature, fields=(), response=None):
243242
""" Add a message to the outgoing queue.

neo4j/session.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,11 @@ def session(self, **config):
9898

9999
class Result(list):
100100

101-
def __init__(self):
101+
def __init__(self, session):
102+
self.session = session
102103
super(Result, self).__init__()
103104
self.keys = None
105+
self.complete = False
104106
self.bench_test = None
105107

106108
def on_header(self, metadata):
@@ -112,12 +114,18 @@ def on_record(self, values):
112114
self.append(Record(self.keys, tuple(map(hydrated, values))))
113115

114116
def on_footer(self, metadata):
117+
self.complete = True
115118
if self.bench_test:
116119
self.bench_test.end_recv = perf_counter()
117120

118121
def on_failure(self, metadata):
119122
raise CypherError(metadata)
120123

124+
def consume(self):
125+
fetch_next = self.session.connection.fetch_next
126+
while not self.complete:
127+
fetch_next()
128+
121129

122130
class Session(object):
123131
""" Logical session carried out over an established TCP connection.
@@ -154,7 +162,7 @@ def run(self, statement, parameters=None):
154162
t = BenchTest()
155163
t.init = perf_counter()
156164

157-
result = Result()
165+
result = Result(self)
158166
result.bench_test = t
159167

160168
run_response = Response(self.connection)
@@ -172,9 +180,7 @@ def run(self, statement, parameters=None):
172180
self.connection.send()
173181
t.end_send = perf_counter()
174182

175-
fetch_next = self.connection.fetch_next
176-
while not pull_all_response.complete:
177-
fetch_next()
183+
result.consume()
178184

179185
t.done = perf_counter()
180186
self.bench_tests.append(t)

0 commit comments

Comments
 (0)