The following bug has been logged on the website:
Bug reference: 15645
Logged by: placebo
Email address: sandeshyapuram@gmail.com
PostgreSQL version: 11.2
Operating system: Linux/Mac
Description:
I am trying to truncate a table and copy data into the same table using
\copy. In this process, I need to print number of rows deleted and copied.
I am using this command:
echo -e "begin; delete from test; \\\copy test from test.csv CSV HEADER;
end;" | psql -hlocalhost -dpostgres -Upostgres
Expected output:
---------------------
BEGIN
DELETE 4
COPY 2
COMMIT
---------------------
Actual output:
---------------------
BEGIN
DELETE 4
COMMIT
---------------------
As you can see, the output clearly is missing the copy count.
Interestingly, this works if I try the following command:
echo -e "begin;\ndelete from test;\n\\\copy test from test.csv CSV
HEADER;\nend;" | psql -hlocalhost -dpostgres -Upostgres
Why do I need to add a new line character when I am already using the
separator?