| 165 | |
| 166 | @contextmanager |
| 167 | def debug_transaction(connection, sql): |
| 168 | start = time.monotonic() |
| 169 | try: |
| 170 | yield |
| 171 | finally: |
| 172 | if connection.queries_logged: |
| 173 | stop = time.monotonic() |
| 174 | duration = stop - start |
| 175 | connection.queries_log.append( |
| 176 | { |
| 177 | "sql": "%s" % sql, |
| 178 | "time": "%.3f" % duration, |
| 179 | } |
| 180 | ) |
| 181 | logger.debug( |
| 182 | "(%.3f) %s; args=%s; alias=%s", |
| 183 | duration, |
| 184 | sql, |
| 185 | None, |
| 186 | connection.alias, |
| 187 | extra={ |
| 188 | "duration": duration, |
| 189 | "sql": sql, |
| 190 | "alias": connection.alias, |
| 191 | }, |
| 192 | ) |
| 193 | |
| 194 | |
| 195 | def split_tzname_delta(tzname): |