Ticket #5236: django_sql_debug_stack.patch

File django_sql_debug_stack.patch, 1.6 KB (added by Bastian Kleineidam <calvin@…>, 8 years ago)
  • django/db/backends/util.py

     
    11import datetime
    22import md5
     3import traceback
    34from time import time
     5from django.db import backends
    46from django.utils.encoding import smart_unicode, force_unicode
    57
    68try:
     
    1820        try:
    1921            return self.cursor.execute(sql, params)
    2022        finally:
    21             stop = time()
    22             self.db.queries.append({
    23                 'sql': smart_unicode(sql) % convert_args(params),
    24                 'time': "%.3f" % (stop - start),
    25             })
     23            self.save_entry(smart_unicode(sql) % convert_args(params), start)
    2624
     25    def save_entry (self, sql, start):
     26        stop = time()
     27        entry = {
     28            'sql': sql,
     29            'time': "%.3f" % (stop - start),
     30            'stack': traceback.format_stack(),
     31        }
     32        self.db.queries.append(entry)
     33
    2734    def executemany(self, sql, param_list):
    2835        start = time()
    2936        try:
    3037            return self.cursor.executemany(sql, param_list)
    3138        finally:
    32             stop = time()
    33             self.db.queries.append({
    34                 'sql': 'MANY: ' + sql + ' ' + smart_unicode(tuple(param_list)),
    35                 'time': "%.3f" % (stop - start),
    36             })
     39            strsql = 'MANY: ' + sql + ' ' + smart_unicode(tuple(param_list))
     40            self.save_entry(strsql, start)
    3741
    3842    def __getattr__(self, attr):
    3943        if attr in self.__dict__:
Back to Top