diff options
author | Wolfgang Müller | 2021-05-03 21:48:58 +0200 |
---|---|---|
committer | Wolfgang Müller | 2021-05-03 22:03:02 +0200 |
commit | 299aa62f5d22a5942e0b3a61eaa6cc0353770b0e (patch) | |
tree | 02457a2098f7a76d5911486a3f5bdbb64e71746e | |
parent | 735b60f32b1e3371d147f3f4df77a2a5b54256ad (diff) | |
download | quarg-299aa62f5d22a5942e0b3a61eaa6cc0353770b0e.tar.gz |
main: Split run_query into prepare_query and time_query
This commit cleanly separates the preparation, execution, and timing of
a query. When preparing this commit, we realized that the preparation of
the query was included in the timer calculation. This should not have
been the case and has been fixed.
-rw-r--r-- | quarg/main.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/quarg/main.py b/quarg/main.py index 69c99de..ce72310 100644 --- a/quarg/main.py +++ b/quarg/main.py @@ -96,9 +96,7 @@ def collect_predicates(args): else: yield fun(value) -def run_query(session, predicates, args): - start = timer() - +def prepare_query(session, predicates, args): query = session.query(Backlog).join(Sender).join(Buffer).join(Network).join(QuasselUser) for predicate in predicates: @@ -113,11 +111,13 @@ def run_query(session, predicates, args): if args.limit: query = query.limit(args.limit) - rows = query.all() + return query +def time_query(query): + start = timer() + rows = query.all() end = timer() - - return (rows, end - start) + return rows, end - start def main(): config = get_config() @@ -136,7 +136,8 @@ def main(): if not predicates: errx('Nothing to match.') - rows, time = run_query(session, predicates, args) + query = prepare_query(session, predicates, args) + rows, time = time_query(query) for row in rows: print(format_from(row)) |