return response
+ def format_detail(self, err, stmt_text):
+ detail = []
+ if err.diag.message_detail is not None:
+ detail.append(markupsafe.escape(err.diag.message_detail))
+ if err.diag.message_hint is not None:
+ detail.append(
+ f'Hint: {markupsafe.escape(err.diag.message_hint)}')
+ detail = '<br>\n'.join(detail)
+
+ numbered_stmts = []
+ numbered_stmts.append('<br><ol>')
+ for line in stmt_text.rstrip().split('\n'):
+ numbered_stmts.append(f'<li>{markupsafe.escape(line)}</li>')
+ numbered_stmts.append('</ol>')
+
+ return detail + '\n'.join(numbered_stmts)
+
def execute(self, cur, stmt_text):
try:
cur.execute(stmt_text)
except psycopg.errors.Error as err:
lineno = stmt_text.count(
'\n', 0, int(err.diag.statement_position) - 1) + 1
-
- detail = []
- if err.diag.message_detail is not None:
- detail.append(markupsafe.escape(err.diag.message_detail))
- if err.diag.message_hint is not None:
- detail.append(
- f'Hint: {markupsafe.escape(err.diag.message_hint)}')
- detail = '<br>\n'.join(detail)
-
- numbered_stmts = []
- numbered_stmts.append('<br><ol>')
- for line in stmt_text.rstrip().split('\n'):
- numbered_stmts.append(f'<li>{markupsafe.escape(line)}</li>')
- numbered_stmts.append('</ol>')
-
raise sql_ex.SQLError(err.diag.severity,
lineno,
descr=err.diag.message_primary,
- detail=detail + '\n'.join(numbered_stmts))
+ detail=self.format_detail(err, stmt_text))
def get_result_rows(self, cur, sql_results):
first = True