Ticket #1475: django_1475.diff

File django_1475.diff, 1.4 KB (added by Christopher Lenz <cmlenz@…>, 18 years ago)

Log DB queries for failures

  • django/db/backends/util.py

     
    88
    99    def execute(self, sql, params=[]):
    1010        start = time()
    11         result = self.cursor.execute(sql, params)
    12         stop = time()
    13         self.db.queries.append({
    14             'sql': sql % tuple(params),
    15             'time': "%.3f" % (stop - start),
    16         })
    17         return result
     11        try:
     12            return self.cursor.execute(sql, params)
     13        finally:
     14            stop = time()
     15            self.db.queries.append({
     16                'sql': sql % tuple([repr(param) for param in params]),
     17                'time': "%.3f" % (stop - start),
     18            })
    1819
    1920    def executemany(self, sql, param_list):
    2021        start = time()
    21         result = self.cursor.executemany(sql, param_list)
    22         stop = time()
    23         self.db.queries.append({
    24             'sql': 'MANY: ' + sql + ' ' + str(tuple(param_list)),
    25             'time': "%.3f" % (stop - start),
    26         })
    27         return result
     22        try:
     23            return self.cursor.executemany(sql, param_list)
     24        finally:
     25            stop = time()
     26            self.db.queries.append({
     27                'sql': 'MANY: ' + sql + ' ' + str(tuple(param_list)),
     28                'time': "%.3f" % (stop - start),
     29            })
    2830
    2931    def __getattr__(self, attr):
    3032        if self.__dict__.has_key(attr):
Back to Top