mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
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:
@ -730,13 +730,14 @@ COPY check_ign_err FROM STDIN WITH (on_error stop);
|
|||||||
ERROR: invalid input syntax for type integer: "a"
|
ERROR: invalid input syntax for type integer: "a"
|
||||||
CONTEXT: COPY check_ign_err, line 2, column n: "a"
|
CONTEXT: COPY check_ign_err, line 2, column n: "a"
|
||||||
COPY check_ign_err FROM STDIN WITH (on_error ignore);
|
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;
|
SELECT * FROM check_ign_err;
|
||||||
n | m | k
|
n | m | k
|
||||||
---+-----+---
|
---+-----+---
|
||||||
1 | {1} | 1
|
1 | {1} | 1
|
||||||
5 | {5} | 5
|
5 | {5} | 5
|
||||||
(2 rows)
|
8 | {8} | 8
|
||||||
|
(3 rows)
|
||||||
|
|
||||||
-- test datatype error that can't be handled as soft: should fail
|
-- test datatype error that can't be handled as soft: should fail
|
||||||
CREATE TABLE hard_err(foo widget);
|
CREATE TABLE hard_err(foo widget);
|
||||||
|
@ -515,6 +515,9 @@ a {2} 2
|
|||||||
4 {a, 4} 4
|
4 {a, 4} 4
|
||||||
|
|
||||||
5 {5} 5
|
5 {5} 5
|
||||||
|
6 a
|
||||||
|
7 {7} a
|
||||||
|
8 {8} 8
|
||||||
\.
|
\.
|
||||||
SELECT * FROM check_ign_err;
|
SELECT * FROM check_ign_err;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user