From 4ca7d148cb5f46b79b7da15d3330ac7361b85c21 Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Sat, 15 Apr 2000 19:13:08 +0000 Subject: [PATCH] elog(NOTICE) during COPY incorrectly reset lineno to 0, causing any subsequent elogs() in the same COPY operation to display the wrong line number. Fix is to clear lineno only when elog level is such that we will not return to caller. --- src/backend/utils/error/elog.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 8296b1d919f..82da3875a30 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.56 2000/04/12 17:15:55 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.57 2000/04/15 19:13:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -197,8 +197,9 @@ elog(int lev, const char *fmt,...) if (lineno) { sprintf(bp, "copy: line %d, ", lineno); - bp = fmt_buf + strlen(fmt_buf); - lineno = 0; + bp += strlen(bp); + if (lev == ERROR || lev >= FATAL) + lineno = 0; } for (cp = fmt; *cp; cp++) -- GitLab