diff options
author | Wolfgang Müller | 2021-05-03 22:17:58 +0200 |
---|---|---|
committer | Wolfgang Müller | 2021-05-03 22:34:59 +0200 |
commit | a7a90bded8023df34e1f63311cb786072a9a2037 (patch) | |
tree | cedcb74368169a880d776b84731473fd58333030 | |
parent | a096cc81cfa65a166127a3a7e0942c277fbb66b8 (diff) | |
download | quarg-a7a90bded8023df34e1f63311cb786072a9a2037.tar.gz |
main: Handle user interrupts more nicely
Users may want to cancel queries that are taking a long time. This
commit ensures that the database is left in a clean state and that quarg
exits immediately after closing the database connection.
-rw-r--r-- | quarg/main.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/quarg/main.py b/quarg/main.py index 9532ba7..f21327d 100644 --- a/quarg/main.py +++ b/quarg/main.py @@ -144,6 +144,10 @@ def main(): print(formatter.format_from(row)) except exc.SQLAlchemyError as err: errx(err) + except KeyboardInterrupt: + session.rollback() + session.close() + sys.exit(1) print(f'Query returned {len(rows)} lines in {time:.4f} seconds.', file=sys.stderr) |