Fix psql's counting of script file line numbers during COPY.
authorTom Lane <[email protected]>
Tue, 5 Jul 2011 16:04:40 +0000 (12:04 -0400)
committerTom Lane <[email protected]>
Tue, 5 Jul 2011 16:06:00 +0000 (12:06 -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 824ccc30b9ee58be8a682d1e4fec58ae73601fb0..6d291099b1f6c04f3f8f27c19663028fae97d22d 100644 (file)
@@ -809,7 +809,8 @@ handleCopyIn(PGconn *conn, FILE *copystream, bool isbinary)
                                }
                        }
 
-                       pset.lineno++;
+                       if (copystream == pset.cur_cmd_source)
+                               pset.lineno++;
                }
        }