Commit 0e319c7a authored by Tom Lane's avatar Tom Lane

Improve context display for failures during COPY IN, as recently

discussed on pghackers.
parent 34c64955
This diff is collapsed.
...@@ -998,7 +998,7 @@ copy test("........pg.dropped.1........") to stdout; ...@@ -998,7 +998,7 @@ copy test("........pg.dropped.1........") to stdout;
ERROR: column "........pg.dropped.1........" of relation "test" does not exist ERROR: column "........pg.dropped.1........" of relation "test" does not exist
copy test from stdin; copy test from stdin;
ERROR: extra data after last expected column ERROR: extra data after last expected column
CONTEXT: COPY FROM, line 1 CONTEXT: COPY test, line 1: "10 11 12"
select * from test; select * from test;
b | c b | c
---+--- ---+---
......
...@@ -35,17 +35,17 @@ ERROR: column "d" specified more than once ...@@ -35,17 +35,17 @@ ERROR: column "d" specified more than once
-- missing data: should fail -- missing data: should fail
COPY x from stdin; COPY x from stdin;
ERROR: invalid input syntax for integer: "" ERROR: invalid input syntax for integer: ""
CONTEXT: COPY FROM, line 1 CONTEXT: COPY x, line 1, column a: ""
COPY x from stdin; COPY x from stdin;
ERROR: missing data for column "e" ERROR: missing data for column "e"
CONTEXT: COPY FROM, line 1 CONTEXT: COPY x, line 1: "2000 230 23 23"
COPY x from stdin; COPY x from stdin;
ERROR: missing data for column "e" ERROR: missing data for column "e"
CONTEXT: COPY FROM, line 1 CONTEXT: COPY x, line 1: "2001 231 \N \N"
-- extra data: should fail -- extra data: should fail
COPY x from stdin; COPY x from stdin;
ERROR: extra data after last expected column ERROR: extra data after last expected column
CONTEXT: COPY FROM, line 1 CONTEXT: COPY x, line 1: "2002 232 40 50 60 70 80"
-- various COPY options: delimiters, oids, NULL string -- various COPY options: delimiters, oids, NULL string
COPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x'; COPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x';
-- check results of copy in -- check results of copy in
......
...@@ -40,7 +40,7 @@ INSERT INTO basictest values ('88', 'haha', 'short', '123.1212'); -- Truncate ...@@ -40,7 +40,7 @@ INSERT INTO basictest values ('88', 'haha', 'short', '123.1212'); -- Truncate
-- Test copy -- Test copy
COPY basictest (testvarchar) FROM stdin; -- fail COPY basictest (testvarchar) FROM stdin; -- fail
ERROR: value too long for type character varying(5) ERROR: value too long for type character varying(5)
CONTEXT: COPY FROM, line 1 CONTEXT: COPY basictest, line 1: "notsoshorttext"
COPY basictest (testvarchar) FROM stdin; COPY basictest (testvarchar) FROM stdin;
select * from basictest; select * from basictest;
testint4 | testtext | testvarchar | testnumeric testint4 | testtext | testvarchar | testnumeric
...@@ -127,11 +127,11 @@ INSERT INTO nulltest values ('a', 'b', 'c', NULL, 'd'); -- Good ...@@ -127,11 +127,11 @@ INSERT INTO nulltest values ('a', 'b', 'c', NULL, 'd'); -- Good
-- Test copy -- Test copy
COPY nulltest FROM stdin; --fail COPY nulltest FROM stdin; --fail
ERROR: domain dcheck does not allow null values ERROR: domain dcheck does not allow null values
CONTEXT: COPY FROM, line 1 CONTEXT: COPY nulltest, line 1: "a b \N d \N"
-- Last row is bad -- Last row is bad
COPY nulltest FROM stdin; COPY nulltest FROM stdin;
ERROR: new row for relation "nulltest" violates check constraint "nulltest_col5" ERROR: new row for relation "nulltest" violates check constraint "nulltest_col5"
CONTEXT: COPY FROM, line 3 CONTEXT: COPY nulltest, line 3: "a b c \N a"
select * from nulltest; select * from nulltest;
col1 | col2 | col3 | col4 | col5 col1 | col2 | col3 | col4 | col5
------+------+------+------+------ ------+------+------+------+------
......
...@@ -274,7 +274,7 @@ SELECT '' AS two, * FROM COPY_TBL; ...@@ -274,7 +274,7 @@ SELECT '' AS two, * FROM COPY_TBL;
COPY COPY_TBL FROM '@abs_srcdir@/data/constrf.data'; COPY COPY_TBL FROM '@abs_srcdir@/data/constrf.data';
ERROR: new row for relation "copy_tbl" violates check constraint "copy_con" ERROR: new row for relation "copy_tbl" violates check constraint "copy_con"
CONTEXT: COPY FROM, line 2 CONTEXT: COPY copy_tbl, line 2: "7 check failed 6"
SELECT * FROM COPY_TBL; SELECT * FROM COPY_TBL;
x | y | z x | y | z
---+---------------+--- ---+---------------+---
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment