I understand from the code that the COPY is really executed, so the ERROR
and so ROW_COUNT about the SQL should reflect that. Basically the change
makes the client believe that there is an SQL error whereas the error is
on the client.

Right, but wether COPY fails because psql can't write the output,
possibly half-way because of a disk full condition, or because the
query was cancelled or the server went down, are these distinctions
meaningful for a script?

It could if the SQL command has side effects, but probably this does not apply to COPY TO which cannot have.

Yes it can:

COPY (
  UPDATE pgbench_branches
    SET bbalance = bbalance + 1
    WHERE bid <= 5
  RETURNING *) TO STDOUT \g /BAD

The SQL command is executed but the backslash command fails.

--
Fabien.

Reply via email to