On Thu, Aug 6, 2009 at 9:52 PM, Bob Cronin<[email protected]> wrote:
> Yes it does. So the reason for the COUNT stage is that COUNT will
> terminate when all the input records have been exhausted regardless of
> whats going on between FANINTWO and LOOKUP. Nice ...

Which is why COUNT is not the right solution. There's a difference
between when FANINTWO consumes the record on the primary input, and
when it looks for the next record on the primary input (which happens
only after inspecting the secondary input). When the last input record
is consumed, there may still be something that must feed back into the
secondary input of FANINTWO. That's why I used the extra sentinel on
the input that is used to close the gate.
I understand this delays the record, but you have no option to do that
because of the feedback loop.

This is not trivial plumbing. I tend to come up with solutions that
involve a cascade of lookup stages, where the unmatched detail of the
first are fed into the primary of the next, to try another match.
That's also the approach I used to match dataset names against a table
of prefixes (before the Piper gave us "floor" and "ceiling" options).

Rob

Reply via email to