Log the location field before any backtrace
authorPeter Eisentraut <peter@eisentraut.org>
Fri, 10 Jul 2020 06:27:00 +0000 (08:27 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Fri, 10 Jul 2020 06:32:06 +0000 (08:32 +0200)
This order makes more sense because the location is effectively at the
lowest level of the backtrace.

Discussion: https://www.postgresql.org/message-id/flat/90f5fa04-c410-a54e-9449-aa3749fb7972%402ndquadrant.com

src/backend/utils/error/elog.c

index e9762010309d76c48da875358cb1fece28578a1a..e4b717c79a9c199cebc1e8ead949d284d56b93fc 100644 (file)
@@ -2938,13 +2938,6 @@ send_message_to_server_log(ErrorData *edata)
            append_with_tabs(&buf, edata->context);
            appendStringInfoChar(&buf, '\n');
        }
-       if (edata->backtrace)
-       {
-           log_line_prefix(&buf, edata);
-           appendStringInfoString(&buf, _("BACKTRACE:  "));
-           append_with_tabs(&buf, edata->backtrace);
-           appendStringInfoChar(&buf, '\n');
-       }
        if (Log_error_verbosity >= PGERROR_VERBOSE)
        {
            /* assume no newlines in funcname or filename... */
@@ -2962,6 +2955,13 @@ send_message_to_server_log(ErrorData *edata)
                                 edata->filename, edata->lineno);
            }
        }
+       if (edata->backtrace)
+       {
+           log_line_prefix(&buf, edata);
+           appendStringInfoString(&buf, _("BACKTRACE:  "));
+           append_with_tabs(&buf, edata->backtrace);
+           appendStringInfoChar(&buf, '\n');
+       }
    }
 
    /*