ERROR: extra data after last expected column
I'm trying to use the postgres copy command and getting, "extra data
after last expected column".
All items in the DB are currently set to varchar(255) to make it
simple. I've checked for hidden characters in the file and don't see
any. All the other files I've processed with this exact command worked
perfectly. I've processed 10 other's so far. The only difference I
notice is this one has significantly more columns.
The number of columns in the DB (25) exactly match the number of
columns in the csv (25), which exactly match the number of columns
defined in my COPY command (25). I've read practically every post on
the internet over the last two days containg this error and cannot
resolve it. I am completely stumped at this point.
It pukes after the 9th column every time no matter what I change.
COPY option_details(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y)
FROM '/home/dump/my_csv.csv' WITH (FORMAT CSV, DELIMITER '|', ENCODING
'UTF8');
Row one data in file is below:
item a | item b | item c | item d | item e | item f | item g | item h |
item i | item j | item k | item l | item m | item n | item o | item p |
item q | item r | item s | item t | item u | item v | item w | item x |
item y
--- Line two would normally start here but no reason to show since it's
failing above. ---
I get the following error:
ERROR: extra data after last expected column
CONTEXT: COPY option_details, line 1: "item a|item b|item c|item
d|item e|item f|item g|item h|item i|..."
Any help or advice would be greatly appreciated. Thank you very much.
--
Hacktorious
On Mon, 7 Mar 2022 at 09:34, Scott Macri <Scott@bitsnbytes.io> wrote:
I'm trying to use the postgres copy command and getting, "extra data
after last expected column".All items in the DB are currently set to varchar(255) to make it
simple. I've checked for hidden characters in the file and don't see
any. All the other files I've processed with this exact command worked
perfectly. I've processed 10 other's so far. The only difference I
notice is this one has significantly more columns.The number of columns in the DB (25) exactly match the number of
columns in the csv (25), which exactly match the number of columns
defined in my COPY command (25). I've read practically every post on
the internet over the last two days containg this error and cannot
resolve it. I am completely stumped at this point.It pukes after the 9th column every time no matter what I change.
COPY option_details(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y)
FROM '/home/dump/my_csv.csv' WITH (FORMAT CSV, DELIMITER '|', ENCODING
'UTF8');Row one data in file is below: item a | item b | item c | item d | item e | item f | item g | item h | item i | item j | item k | item l | item m | item n | item o | item p | item q | item r | item s | item t | item u | item v | item w | item x | item y --- Line two would normally start here but no reason to show since it's failing above. ---I get the following error:
ERROR: extra data after last expected column
CONTEXT: COPY option_details, line 1: "item a|item b|item c|item
d|item e|item f|item g|item h|item i|..."Any help or advice would be greatly appreciated. Thank you very much.
--
Hacktorious
Hi,
I pretty sure it doesn't fail after the 9th column, just the context hint
of the error message is cropped after that.
My guess is a sneaky '|' somewhere inside one of your field.
Regards,
Sándor
On 3/7/22 02:08, Sándor Daku wrote:
On Mon, 7 Mar 2022 at 09:34, Scott Macri <Scott@bitsnbytes.io> wrote:
I'm trying to use the postgres copy command and getting, "extra data
after last expected column".All items in the DB are currently set to varchar(255) to make it
simple. I've checked for hidden characters in the file and don't see
any. All the other files I've processed with this exact command
worked
perfectly. I've processed 10 other's so far. The only difference I
notice is this one has significantly more columns.The number of columns in the DB (25) exactly match the number of
columns in the csv (25), which exactly match the number of columns
defined in my COPY command (25). I've read practically every post on
the internet over the last two days containg this error and cannot
resolve it. I am completely stumped at this point.It pukes after the 9th column every time no matter what I change.
COPY option_details(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y)
FROM '/home/dump/my_csv.csv' WITH (FORMAT CSV, DELIMITER '|', ENCODING
'UTF8');Row one data in file is below: item a | item b | item c | item d | item e | item f | item g | item h | item i | item j | item k | item l | item m | item n | item o | item p | item q | item r | item s | item t | item u | item v | item w | item x | item y --- Line two would normally start here but no reason to show since it's failing above. ---I get the following error:
ERROR: extra data after last expected column
CONTEXT: COPY option_details, line 1: "item a|item b|item c|item
d|item e|item f|item g|item h|item i|..."Any help or advice would be greatly appreciated. Thank you very much.
--
HacktoriousHi,
I pretty sure it doesn't fail after the 9th column, just the context
hint of the error message is cropped after that.
My guess is a sneaky '|' somewhere inside one of your field.Regards,
Sándor
if Sándor is correct this will show the offenders
awk -F "|" '{if (NF != 25) print}'
No luck
On Mon, Mar 7, 2022, 4:58 AM Rob Sargent <robjsargent@gmail.com> wrote:
Show quoted text
On 3/7/22 02:08, Sándor Daku wrote:
On Mon, 7 Mar 2022 at 09:34, Scott Macri <Scott@bitsnbytes.io> wrote:
I'm trying to use the postgres copy command and getting, "extra data
after last expected column".All items in the DB are currently set to varchar(255) to make it
simple. I've checked for hidden characters in the file and don't see
any. All the other files I've processed with this exact command worked
perfectly. I've processed 10 other's so far. The only difference I
notice is this one has significantly more columns.The number of columns in the DB (25) exactly match the number of
columns in the csv (25), which exactly match the number of columns
defined in my COPY command (25). I've read practically every post on
the internet over the last two days containg this error and cannot
resolve it. I am completely stumped at this point.It pukes after the 9th column every time no matter what I change.
COPY option_details(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y)
FROM '/home/dump/my_csv.csv' WITH (FORMAT CSV, DELIMITER '|', ENCODING
'UTF8');Row one data in file is below: item a | item b | item c | item d | item e | item f | item g | item h | item i | item j | item k | item l | item m | item n | item o | item p | item q | item r | item s | item t | item u | item v | item w | item x | item y --- Line two would normally start here but no reason to show since it's failing above. ---I get the following error:
ERROR: extra data after last expected column
CONTEXT: COPY option_details, line 1: "item a|item b|item c|item
d|item e|item f|item g|item h|item i|..."Any help or advice would be greatly appreciated. Thank you very much.
--
HacktoriousHi,
I pretty sure it doesn't fail after the 9th column, just the context hint
of the error message is cropped after that.
My guess is a sneaky '|' somewhere inside one of your field.Regards,
Sándorif Sándor is correct this will show the offenders
awk -F "|" '{if (NF != 25) print}'
On Mon, Mar 7, 2022 at 3:34 PM scott macri <hacktorious@gmail.com> wrote:
No luck
On Mon, Mar 7, 2022, 4:58 AM Rob Sargent <robjsargent@gmail.com> wrote:
On 3/7/22 02:08, Sándor Daku wrote:
On Mon, 7 Mar 2022 at 09:34, Scott Macri <Scott@bitsnbytes.io> wrote:
I'm trying to use the postgres copy command and getting, "extra data
after last expected column".All items in the DB are currently set to varchar(255) to make it
simple. I've checked for hidden characters in the file and don't see
any. All the other files I've processed with this exact command worked
perfectly. I've processed 10 other's so far. The only difference I
notice is this one has significantly more columns.The number of columns in the DB (25) exactly match the number of
columns in the csv (25), which exactly match the number of columns
defined in my COPY command (25). I've read practically every post on
the internet over the last two days containg this error and cannot
resolve it. I am completely stumped at this point.It pukes after the 9th column every time no matter what I change.
COPY option_details(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y)
FROM '/home/dump/my_csv.csv' WITH (FORMAT CSV, DELIMITER '|', ENCODING
'UTF8');Row one data in file is below: item a | item b | item c | item d | item e | item f | item g | item h | item i | item j | item k | item l | item m | item n | item o | item p | item q | item r | item s | item t | item u | item v | item w | item x | item y --- Line two would normally start here but no reason to show since it's failing above. ---I get the following error:
ERROR: extra data after last expected column
CONTEXT: COPY option_details, line 1: "item a|item b|item c|item
d|item e|item f|item g|item h|item i|..."Any help or advice would be greatly appreciated. Thank you very much.
--
HacktoriousHi,
I pretty sure it doesn't fail after the 9th column, just the context
hint of the error message is cropped after that.
My guess is a sneaky '|' somewhere inside one of your field.Regards,
Sándorif Sándor is correct this will show the offenders
awk -F "|" '{if (NF != 25) print}'
Can you send the CSV file that is causing the problem as a CSV file
attachment so some of us can try this as a full reproduction? I don't want
to copy/paste the sample line from the text of the email as it seems like
that wouldn't be a good replication path for such a weird bug..
Steve
On Mon, Mar 7, 2022 at 3:54 PM Steve Midgley <science@misuse.org> wrote:
On Mon, Mar 7, 2022 at 3:34 PM scott macri <hacktorious@gmail.com> wrote:
No luck
On Mon, Mar 7, 2022, 4:58 AM Rob Sargent <robjsargent@gmail.com> wrote:
On 3/7/22 02:08, Sándor Daku wrote:
On Mon, 7 Mar 2022 at 09:34, Scott Macri <Scott@bitsnbytes.io> wrote:
I'm trying to use the postgres copy command and getting, "extra data
after last expected column".All items in the DB are currently set to varchar(255) to make it
simple. I've checked for hidden characters in the file and don't see
any. All the other files I've processed with this exact command worked
perfectly. I've processed 10 other's so far. The only difference I
notice is this one has significantly more columns.The number of columns in the DB (25) exactly match the number of
columns in the csv (25), which exactly match the number of columns
defined in my COPY command (25). I've read practically every post on
the internet over the last two days containg this error and cannot
resolve it. I am completely stumped at this point.It pukes after the 9th column every time no matter what I change.
COPY option_details(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y)
FROM '/home/dump/my_csv.csv' WITH (FORMAT CSV, DELIMITER '|', ENCODING
'UTF8');Row one data in file is below: item a | item b | item c | item d | item e | item f | item g | item h | item i | item j | item k | item l | item m | item n | item o | item p | item q | item r | item s | item t | item u | item v | item w | item x | item y --- Line two would normally start here but no reason to show since it's failing above. ---I get the following error:
ERROR: extra data after last expected column
CONTEXT: COPY option_details, line 1: "item a|item b|item c|item
d|item e|item f|item g|item h|item i|..."Any help or advice would be greatly appreciated. Thank you very much.
--
HacktoriousHi,
I pretty sure it doesn't fail after the 9th column, just the context
hint of the error message is cropped after that.
My guess is a sneaky '|' somewhere inside one of your field.Regards,
Sándorif Sándor is correct this will show the offenders
awk -F "|" '{if (NF != 25) print}'Can you send the CSV file that is causing the problem as a CSV file
attachment so some of us can try this as a full reproduction? I don't want
to copy/paste the sample line from the text of the email as it seems like
that wouldn't be a good replication path for such a weird bug..
Also, have you tried ASCII encoding or something very permissive like that?
If that works but UTF-8 doesn't, it might be a clue that there's an errant
char buried in your CSV file. Also, maybe try looking at your CSV file with
a hex editor.. The weirdest stuff can turn up in "wild caught" CSVs..
On 3/7/22 16:48, scott macri wrote:
On Mon, Mar 7, 2022, 6:42 PM Rob Sargent <robjsargent@gmail.com> wrote:
On 3/7/22 16:33, scott macri wrote:
No luck
Bummer. Best to bottom post or in-line comment on this forum.
On Mon, Mar 7, 2022, 4:58 AM Rob Sargent <robjsargent@gmail.com>
wrote:On 3/7/22 02:08, Sándor Daku wrote:
On Mon, 7 Mar 2022 at 09:34, Scott Macri
<Scott@bitsnbytes.io> wrote:I'm trying to use the postgres copy command and getting,
"extra data
after last expected column".All items in the DB are currently set to varchar(255) to
make it
simple. I've checked for hidden characters in the file
and don't seeSimpler yet is to make the columns "text"
any. All the other files I've processed with this exact
command worked
perfectly. I've processed 10 other's so far. The only
difference I
notice is this one has significantly more columns.The number of columns in the DB (25) exactly match the
number of
columns in the csv (25), which exactly match the number
of columns
defined in my COPY command (25). I've read practically
every post on
the internet over the last two days containg this error
and cannot
resolve it. I am completely stumped at this point.It pukes after the 9th column every time no matter what
I change.COPY
option_details(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y)
FROM '/home/dump/my_csv.csv' WITH (FORMAT CSV, DELIMITER
'|', ENCODING
'UTF8');You've verified the encoding is UTF8?
Row one data in file is below: item a | item b | item c | item d | item e | item f | item g | item h | item i | item j | item k | item l | item m | item n | item o | item p | item q | item r | item s | item t | item u | item v | item w | item x | item y --- Line two would normally start here but no reason to show since it's failing above. ---I get the following error:
ERROR: extra data after last expected column
CONTEXT: COPY option_details, line 1: "item a|item
b|item c|item
d|item e|item f|item g|item h|item i|..."Does line two generate the same error?
Is there perhaps a funky line ending?Yes it does.
Can we see the live DDL of option_details table (i.e. from psql \d
option_details)?
Best to reply to the list so we're all on the same page
Import Notes
Reply to msg id not found: CACCHZrQpRDy1MCs_g7YfVJFWsTfoQNKP6d9JNJcYxL3X91hgeQ@mail.gmail.com
On Mon, 2022-03-07 at 15:56 -0800, Steve Midgley wrote:
On Mon, Mar 7, 2022 at 3:54 PM Steve Midgley <science@misuse.org>
wrote:On Mon, Mar 7, 2022 at 3:34 PM scott macri <hacktorious@gmail.com>
wrote:No luck
On Mon, Mar 7, 2022, 4:58 AM Rob Sargent <robjsargent@gmail.com>
wrote:On 3/7/22 02:08, Sándor Daku wrote:
On Mon, 7 Mar 2022 at 09:34, Scott Macri
<Scott@bitsnbytes.io> wrote:
I'm trying to use the postgres copy command and getting,
"extra data
after last expected column".
All items in the DB are currently set to varchar(255) to
make it
simple. I've checked for hidden characters in the file
and don't see
any. All the other files I've processed with this exact
command worked
perfectly. I've processed 10 other's so far. The only
difference I
notice is this one has significantly more columns.
The number of columns in the DB (25) exactly match the
number of
columns in the csv (25), which exactly match the number of
columns
defined in my COPY command (25). I've read practically
every post on
the internet over the last two days containg this error
and cannot
resolve it. I am completely stumped at this point.
It pukes after the 9th column every time no matter what I
change.
COPY
option_details(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,
w,x,y)
FROM '/home/dump/my_csv.csv' WITH (FORMAT CSV, DELIMITER
'|', ENCODING
'UTF8');
Row one data in file is below:
item a | item b | item c | item d | item e | item f | item
g | item h |
item i | item j | item k | item l | item m | item n | item
o | item p |
item q | item r | item s | item t | item u | item v | item
w | item x |
item y
--- Line two would normally start here but no reason to
show since it's
failing above. ---
I get the following error:
ERROR: extra data after last expected column
CONTEXT: COPY option_details, line 1: "item a|item b|item
c|item
d|item e|item f|item g|item h|item i|..."
Any help or advice would be greatly appreciated. Thank
you very much.
--
Hacktorious
Hi,
I pretty sure it doesn't fail after the 9th column, just the
context hint of the error message is cropped after that.
My guess is a sneaky '|' somewhere inside one of your field.Regards,
Sándorif Sándor is correct this will show the offenders
awk -F "|" '{if (NF != 25) print}'
Can you send the CSV file that is causing the problem as a CSV file
attachment so some of us can try this as a full reproduction? I
don't want to copy/paste the sample line from the text of the email
as it seems like that wouldn't be a good replication path for such
a weird bug..Also, have you tried ASCII encoding or something very permissive like
that? If that works but UTF-8 doesn't, it might be a clue that
there's an errant char buried in your CSV file. Also, maybe try
looking at your CSV file with a hex editor.. The weirdest stuff can
turn up in "wild caught" CSVs..
So I guess when I ran:
awk -F "|" '{if (NF != 25) print}'
the first time it was against the wrong file. I just tried again and
it produced a bunch of output. So this is telling me there are extra
'|' in those lines?
--
Hacktorious
On 3/7/22 17:57, Rob Sargent wrote:
On 3/7/22 16:48, scott macri wrote:
[snip]
It pukes after the 9th column every time no matter what I
change.COPY
option_details(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y)
FROM '/home/dump/my_csv.csv' WITH (FORMAT CSV, DELIMITER
'|', ENCODING
'UTF8');You've verified the encoding is UTF8?
Row one data in file is below: item a | item b | item c | item d | item e | item f | item g | item h | item i | item j | item k | item l | item m | item n | item o | item p | item q | item r | item s | item t | item u | item v | item w | item x | item y --- Line two would normally start here but no reason to show since it's failing above. ---I get the following error:
ERROR: extra data after last expected column
CONTEXT: COPY option_details, line 1: "item a|item b|item
c|item
d|item e|item f|item g|item h|item i|..."
Might there be pipe characters in one of the columns?
--
Angular momentum makes the world go 'round.
It looks like it might have something to do with the line length. All
the output from the AWK command are a continuation of the line above
it. There is no line break, however. I'm investigating now.
On Mon, 2022-03-07 at 15:56 -0800, Steve Midgley wrote:
On Mon, Mar 7, 2022 at 3:54 PM Steve Midgley <science@misuse.org>
wrote:On Mon, Mar 7, 2022 at 3:34 PM scott macri <hacktorious@gmail.com>
wrote:No luck
On Mon, Mar 7, 2022, 4:58 AM Rob Sargent <robjsargent@gmail.com>
wrote:On 3/7/22 02:08, Sándor Daku wrote:
On Mon, 7 Mar 2022 at 09:34, Scott Macri
<Scott@bitsnbytes.io> wrote:
I'm trying to use the postgres copy command and getting,
"extra data
after last expected column".
All items in the DB are currently set to varchar(255) to
make it
simple. I've checked for hidden characters in the file
and don't see
any. All the other files I've processed with this exact
command worked
perfectly. I've processed 10 other's so far. The only
difference I
notice is this one has significantly more columns.
The number of columns in the DB (25) exactly match the
number of
columns in the csv (25), which exactly match the number of
columns
defined in my COPY command (25). I've read practically
every post on
the internet over the last two days containg this error
and cannot
resolve it. I am completely stumped at this point.
It pukes after the 9th column every time no matter what I
change.
COPY
option_details(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,
w,x,y)
FROM '/home/dump/my_csv.csv' WITH (FORMAT CSV, DELIMITER
'|', ENCODING
'UTF8');
Row one data in file is below:
item a | item b | item c | item d | item e | item f | item
g | item h |
item i | item j | item k | item l | item m | item n | item
o | item p |
item q | item r | item s | item t | item u | item v | item
w | item x |
item y
--- Line two would normally start here but no reason to
show since it's
failing above. ---
I get the following error:
ERROR: extra data after last expected column
CONTEXT: COPY option_details, line 1: "item a|item b|item
c|item
d|item e|item f|item g|item h|item i|..."
Any help or advice would be greatly appreciated. Thank
you very much.
--
Hacktorious
Hi,
I pretty sure it doesn't fail after the 9th column, just the
context hint of the error message is cropped after that.
My guess is a sneaky '|' somewhere inside one of your field.Regards,
Sándorif Sándor is correct this will show the offenders
awk -F "|" '{if (NF != 25) print}'
Can you send the CSV file that is causing the problem as a CSV file
attachment so some of us can try this as a full reproduction? I
don't want to copy/paste the sample line from the text of the email
as it seems like that wouldn't be a good replication path for such
a weird bug..Also, have you tried ASCII encoding or something very permissive like
that? If that works but UTF-8 doesn't, it might be a clue that
there's an errant char buried in your CSV file. Also, maybe try
looking at your CSV file with a hex editor.. The weirdest stuff can
turn up in "wild caught" CSVs..
--
Hacktorious
On 3/7/22 18:51, Scott Macri wrote:
It looks like it might have something to do with the line length. All
the output from the AWK command are a continuation of the line above
it. There is no line break, however. I'm investigating now.So I guess when I ran:
awk -F "|" '{if (NF != 25) print}'
the first time it was against the wrong file. I just tried again and
it produced a bunch of output. So this is telling me there are extra
'|' in those lines?-- Hacktorious
Can't tell for sure but could be mac/dos/unix EOLN mixup. Some tools are
better than others in dealing with a mixture of those.
On Mon, Mar 7, 2022, 9:40 PM Rob Sargent <robjsargent@gmail.com> wrote:
Show quoted text
On 3/7/22 18:51, Scott Macri wrote:
It looks like it might have something to do with the line length. All
the output from the AWK command are a continuation of the line above
it. There is no line break, however. I'm investigating now.So I guess when I ran:
awk -F "|" '{if (NF != 25) print}'
the first time it was against the wrong file. I just tried again and
it produced a bunch of output. So this is telling me there are extra
'|' in those lines?-- Hacktorious
Can't tell for sure but could be mac/dos/unix EOLN mixup. Some tools are
better than others in dealing with a mixture of those.I found an extra pipe character at the end of each line. It seems like
the data coming from the sender is messed up. Gotta take a closer look
tomorrow and determine the best plan of action.