Subject: bug#12019: join command - wrong column moved to start of line with

From: "Alan Curry" <[email-masked]>
Date: Sat, 21 Jul 2012 18:22:29 -0500 (GMT+5)

Eric Blake writes:
> 
> On 07/21/2012 12:20 PM, Jean-Pierre Tosoni wrote:
> > Hello Maintainer,
> >=20
> > I am using join v8.5 from debian squeeze.
> >=20
> 
> > now, the command:
> >    join   -v 2   -1 2   -2 3   a   b
> > produces
> > =3D=3D=3D=3D wrong output =3D=3D=3D=3D
> > zzz222 zzz111 keyZ zzz333
> 
> I tried reproducing this with coreutils 8.17:
> 
> $ cat a b
> axx111 keyX axx222
> ayy111 keyY ayy222
> xxx111 xxx222 keyX xxx333
> zzz111 zzz222 keyZ zzz333
> $ join -v2 -1 2 -2 3 a b
> keyZ zzz111 zzz222 zzz333
> 
> but I get the expected order.  I don't see a specific mention of a fix
> for this in NEWS, so I have to wonder if this might be a bug in a
> debian-specific patch.  Can you do some more investigating, such as
> compiling upstream coreutils to see if the problem still persists for you=
> ?

It's not a Debian-specific problem. I can reproduce the bug with unaltered
coreutils 8.9. It was apparently fixed by accident as a side effect of some
other work on the join program.

commit d4db0cb1827730ed5536c12c0ebd024283b3a4db
Author: PÃ¡draig Brady <[email-masked]>
Date:   Wed Jan 5 11:52:54 2011 +0000

    join: add -o 'auto' to output a constant number of fields per line

d4db0cb1827730ed5536c12c0ebd024283b3a4db can be cherry-picked and applied to
older coreutils to fix the bug. I tested this with upstream 8.9 and Debian's
8.5, both applied with fuzz but worked correctly.

-- 
Alan Curry