Fix psql's counting of script file line numbers during COPY.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 5 Jul 2011 16:04:40 +0000 (12:04 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 5 Jul 2011 16:07:03 +0000 (12:07 -0400)
handleCopyIn incremented pset.lineno for each line of COPY data read from
a file.  This is correct when reading from the current script file (i.e.,
we are doing COPY FROM STDIN followed by in-line data), but it's wrong if
the data is coming from some other file.  Per bug #6083 from Steve Haslam.
Back-patch to all supported versions.

src/bin/psql/copy.c

index e610899a61b38031c70e7dee2cf93245ebc19909..2adb40f7555ffc8f906cb91da5a9e39763c918f5 100644 (file)
@@ -841,7 +841,8 @@ handleCopyIn(PGconn *conn, FILE *copystream, bool isbinary)
                }
            }
 
-           pset.lineno++;
+           if (copystream == pset.cur_cmd_source)
+               pset.lineno++;
        }
    }