I'm very interested in this patch. Although I'm a beginner,I would like to participate in the development of PostgreSQL.
1. I want to suggest new output format. In my opinion, it's kind to display description of output and add "line number" and "error" to output. For example,
error lines
line number | first | second | third | error ------------+-------+--------+-------+------------ 1 | 1 | 10 | 0.5 | UNIQUE 2 | 2 | 42 | 0.1 | CHECK 3 | 3 | NULL | 0 | NOT NULL (3 rows)
Although only unique or exclusion constraint violation returned back to the caller currently, I think that column "error" will be useful when it becomes possible to handle other types of errors(check, not-null and so on).
currently we can't get violation kind in speculative insertion
If you assume that users re-execute COPY FROM with the output lines as input, these columns are obstacles. Therefore I think that this output format should be displayed only when we set new option(for example ERROR_VERBOSE) like "COPY FROM ... ERROR_VERBOSE;".
i agree adding optional feature for this is useful in same scenario but
i think its a material for future improvement after basic feature done.
2. I have a question about copy meta-command. When I executed copy meta-command, output wasn't displayed. Does it correspond to copy meta-command?