(
self, sql=None, params=None, use_last_executed_query=False, many=False
)
| 127 | |
| 128 | @contextmanager |
| 129 | def debug_sql( |
| 130 | self, sql=None, params=None, use_last_executed_query=False, many=False |
| 131 | ): |
| 132 | start = time.monotonic() |
| 133 | try: |
| 134 | yield |
| 135 | finally: |
| 136 | stop = time.monotonic() |
| 137 | duration = stop - start |
| 138 | if use_last_executed_query: |
| 139 | sql = self.db.ops.last_executed_query(self.cursor, sql, params) |
| 140 | try: |
| 141 | times = len(params) if many else "" |
| 142 | except TypeError: |
| 143 | # params could be an iterator. |
| 144 | times = "?" |
| 145 | self.db.queries_log.append( |
| 146 | { |
| 147 | "sql": "%s times: %s" % (times, sql) if many else sql, |
| 148 | "time": "%.3f" % duration, |
| 149 | } |
| 150 | ) |
| 151 | logger.debug( |
| 152 | "(%.3f) %s; args=%s; alias=%s", |
| 153 | duration, |
| 154 | sql, |
| 155 | params, |
| 156 | self.db.alias, |
| 157 | extra={ |
| 158 | "duration": duration, |
| 159 | "sql": sql, |
| 160 | "params": params, |
| 161 | "alias": self.db.alias, |
| 162 | }, |
| 163 | ) |
| 164 | |
| 165 | |
| 166 | @contextmanager |
no test coverage detected