Fixed bug #42055: --pipe -a bigfile should not require sequential reading of bigfile.

This commit is contained in:
Ole Tange 2014-07-15 18:02:58 +02:00
parent 9c58321482
commit 1cf521971f
5 changed files with 24 additions and 5 deletions

View file

@ -680,7 +680,7 @@ sub options_hash {
"header=s" => \$opt::header,
"cat" => \$opt::cat,
"fifo" => \$opt::fifo,
"pipepart" => \$opt::pipepart,
"pipepart|pipe-part" => \$opt::pipepart,
);
}
@ -915,6 +915,13 @@ sub parse_options {
if(defined $opt::tag and not defined $opt::tagstring) {
$opt::tagstring = "\257<\257>"; # Default = {}
}
if(defined $opt::pipepart and
(defined $opt::L or defined $opt::max_lines
or defined $opt::max_replace_args)) {
::error("--pipepart is incompatible with --max-replace-args, ",
"--max-lines, and -L.\n");
wait_and_exit(255);
}
if(grep /^$Global::arg_sep$|^$Global::arg_file_sep$/o, @ARGV) {
# Deal with ::: and ::::
@ARGV=read_args_from_command_line();

View file

@ -970,7 +970,7 @@ The file must be a physical (seekable) file and must be given using B<-a> or B<:
=item Z<>*
Record counting (B<-N>) and line counting (B<-L>) do not work.
Record counting (B<-N>) and line counting (B<-L>/B<-l>) do not work.
=back

View file

@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "PARALLEL_TUTORIAL 1"
.TH PARALLEL_TUTORIAL 1 "2014-06-22" "20140613" "parallel"
.TH PARALLEL_TUTORIAL 1 "2014-07-15" "20140711" "parallel"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View file

@ -52,4 +52,9 @@ echo '### bug #42363: --pipepart and --fifo/--cat does not work'
parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo wc | perl -pe s:/tmp/...........pip:/tmp/XXXX: ;
parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat wc | perl -pe s:/tmp/...........pip:/tmp/XXXX: ;
echo '### bug #42055: --pipe -a bigfile should not require sequential reading of bigfile'
parallel --pipepart -a /etc/passwd -L 1 should not be run
parallel --pipepart -a /etc/passwd -N 1 should not be run
parallel --pipepart -a /etc/passwd -l 1 should not be run
EOF

View file

@ -47,7 +47,7 @@ echo '### bug #42041: Implement $PARALLEL_JOBSLOT'
2
echo '### bug #42363: --pipepart and --fifo/--cat does not work'
### bug #42363: --pipepart and --fifo/--cat does not work
seq 100 > /tmp/bug42363; parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo wc | perl -pe s:/tmp/...........pip:/tmp/XXXX: ; parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat wc | perl -pe s:/tmp/...........pip:/tmp/XXXX: ;
seq 100 > /tmp/bug42363; parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo wc | perl -pe s:/tmp/...........pip:/tmp/XXXX: ; parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat wc | perl -pe s:/tmp/...........pip:/tmp/XXXX: ; echo '### bug #42055: --pipe -a bigfile should not require sequential reading of bigfile'
13 14 32 /tmp/XXXX
11 11 33 /tmp/XXXX
11 11 33 /tmp/XXXX
@ -66,3 +66,10 @@ echo '### bug #42363: --pipepart and --fifo/--cat does not work'
11 11 33 /tmp/XXXX
11 11 33 /tmp/XXXX
10 9 29 /tmp/XXXX
### bug #42055: --pipe -a bigfile should not require sequential reading of bigfile
parallel --pipepart -a /etc/passwd -L 1 should not be run
parallel: Error: --pipepart is incompatible with --max-replace-args, --max-lines, and -L.
parallel --pipepart -a /etc/passwd -N 1 should not be run
parallel: Error: --pipepart is incompatible with --max-replace-args, --max-lines, and -L.
parallel --pipepart -a /etc/passwd -l 1 should not be run
parallel: Error: --pipepart is incompatible with --max-replace-args, --max-lines, and -L.