diff options
| author | David Cramer | 2011-04-06 16:07:46 -0700 |
|---|---|---|
| committer | David Cramer | 2011-04-06 16:07:46 -0700 |
| commit | a9b466b6672c72f498e3f011524d48726937d1d5 (patch) | |
| tree | a6006ec0fa95eb625fa2bdfd16dd39b3f4286373 /debug_toolbar/utils/tracking/db.py | |
| parent | 72271115974463f30a2f9f8755e42acc69e204c3 (diff) | |
| download | django-debug-toolbar-a9b466b6672c72f498e3f011524d48726937d1d5.tar.bz2 | |
SQL panel now guesses at Psycopg2 transactions (when autocommit swaps to in trans and vice versa)
Diffstat (limited to 'debug_toolbar/utils/tracking/db.py')
| -rw-r--r-- | debug_toolbar/utils/tracking/db.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/debug_toolbar/utils/tracking/db.py b/debug_toolbar/utils/tracking/db.py index de84785..234247a 100644 --- a/debug_toolbar/utils/tracking/db.py +++ b/debug_toolbar/utils/tracking/db.py @@ -30,9 +30,16 @@ class CursorWrapper(object): def execute(self, sql, params=()): alias = getattr(self, 'alias', 'default') + conn = connections[alias].connection # HACK: avoid imports - engine = connections[alias].connection.__class__.__module__.split('.', 1)[0] + if conn: + engine = conn.__class__.__module__.split('.', 1)[0] + else: + engine = 'unknown' + start = datetime.now() + if engine == 'psycopg2': + trans_status = self.logger.get_transaction_status(alias) try: return self.cursor.execute(sql, params) finally: @@ -76,12 +83,17 @@ class CursorWrapper(object): } if engine == 'psycopg2': - conn = connections[alias].connection + import psycopg2.extensions + cur_trans_status = self.logger.get_transaction_status(alias, True) params.update({ - 'trans_status': conn.get_transaction_status(), + 'starts_trans': cur_trans_status > trans_status, + 'ends_trans': cur_trans_status < trans_status, + 'in_trans': cur_trans_status == psycopg2.extensions.TRANSACTION_STATUS_INTRANS, + 'trans_status': cur_trans_status, 'iso_level': conn.isolation_level, 'encoding': conn.encoding, }) + # We keep `sql` to maintain backwards compatibility self.logger.record(**params) |
