Rob van der Heij wrote:
> will stall with more than one row of data.

Nope, all the stages but PAD, CHOP, and the last JOIN are returned
before it ever starts reading the second row of data.

Extending this to accommodate more header records takes another copy of
the TAKE|COPY|DUP|SYNCH|JOIN pipeline--I guess that's a lot of stages to
run for each record.  Combining this with Rollin's technique of joining
and splitting the headers eliminates the extra TAKE|COPY|DUP.  I guess
DEBLOCK|DEAL is probably more straightforward than either SPECS or a
CHOP cascade:

  \ *: | pad 18 | chop 18 | head: take 5 | join * | dup * | s: synch
       | deblock 18 | allhead: deal | join * / / | out: fanin | *:
                    \ allhead:      | join * / / | out:
                    \ allhead:      | join * / / | out:
                    \ allhead:      | join * / / | out:
                    \ allhead:      | join * / / | out:
         \ head: | top: take 4 | s: | join * / / | out:
                 \ top:             | join 3 / / | out:

I like this, actually.  Just one extra JOIN stage per header, and no
labels to number in building the pipeline.

¬R

Reply via email to