Add tests for more row patterns with COPY FROM .. (ON_ERROR ignore)

While digging into the code of this feature, I got confused by the fact
that a line is skipped when a value cannot be converted to its expected
attribute even if the line has fewer attributes than the target
relation.  The tests had a check for the case of an empty line, this
commit a couple more patterns where a line is incomplete, but skipped
because of a conversion error.

Reviewed-by: Bharath Rupireddy
Discussion: https://postgr.es/m/Ze_7kZqexdt0BiyC@paquier.xyz
This commit is contained in:
Michael Paquier 2024-03-13 14:19:21 +09:00
parent 0b84f5c419
commit a189ed49d6
2 changed files with 6 additions and 2 deletions

View File

@ -730,13 +730,14 @@ COPY check_ign_err FROM STDIN WITH (on_error stop);
ERROR: invalid input syntax for type integer: "a"
CONTEXT: COPY check_ign_err, line 2, column n: "a"
COPY check_ign_err FROM STDIN WITH (on_error ignore);
NOTICE: 4 rows were skipped due to data type incompatibility
NOTICE: 6 rows were skipped due to data type incompatibility
SELECT * FROM check_ign_err;
n | m | k
---+-----+---
1 | {1} | 1
5 | {5} | 5
(2 rows)
8 | {8} | 8
(3 rows)
-- test datatype error that can't be handled as soft: should fail
CREATE TABLE hard_err(foo widget);

View File

@ -515,6 +515,9 @@ a {2} 2
4 {a, 4} 4
5 {5} 5
6 a
7 {7} a
8 {8} 8
\.
SELECT * FROM check_ign_err;