Without BOB, the primary input would never present a record to the fanin
if you let it default to the normal order of primary then secondary. The
full array would not be created; instead, the pipe would either end
without creating the array or it might stall.

Regards, 
Richard Schuh 

-----Original Message-----
From: CMSTSO Pipelines Discussion List
[mailto:[EMAIL PROTECTED] On Behalf Of Rob van der Heij
Sent: Tuesday, July 17, 2007 4:04 PM
To: [email protected]
Subject: Re: Use entire list unless it contains a certain item

On 7/17/07, Bob Cronin <[EMAIL PROTECTED]> wrote:

> The output should be stored in a stem. The stem should have all the
userid's
> in it, unless BOB was one of them in which case it should only have
one
> entry, the one for BOB.

This begs for 'gate'   Something like this:
  \ *:
   | f: fanout
   | locate ,BOB,
   | g: gate
   | i: fanin 1 0
   | *:
   \ f:
   | buffer
   | g:
   | i:

For those who need more than a hint on this. The secondary output of
fanout collects all records in a buffer while the primary output is
scanned for the required key. When the key is found, the gate is
closed and only the trigger record is passed to fanin. When the key is
not found in the stream, there is no trigger, the gate is never
closed, so the buffer is emptied through the gate in the secondary
input of fanin.

PS One point on your apprentice plumber exam when you know why it says
"fanin 1 0"

Rob

Reply via email to