One Star

tMap lookup reloading explanation

Can someone provide a clear explanation of the difference between the "Reload at each row" and "Reload at each row (cache)", and the rules that tMap uses about when/how many times it actually causes the lookup flow to be re-run?
Here's an example:
One-to-many relationship between Order (order_id) and Work_Order (work_order_num). Data containing these two columns (and others) is coming in from a main flow and a lookup flow, which comes from a db input query.
I would like to pass order_id as a global variable (to the db input query, with order_id being in the where clause) and have tMap do the join on order_id and work_order_num.
What I would expect is that tMap would set the order_id global variable, then load the lookup flow for the first time. Then, it would only reload the lookup flow again if order_id changes. However, when I try this, tMap always reloads the lookup flow, even when the order_id never changes. I also notice, to my surprise, that even if a specific order_id/work_order_num combination has already been loaded in the lookup flow, when subsequent input rows have that same combination, tMap again reloads the lookup flow.
So, after investigating a little more, it looks like tMap reloads its lookup flow whenever a specific combination of key columns (order_id/work_order_num) from the main flow has not occurred before in the main flow, regardless of whether that same combination has already been loaded from the lookup flow before.
Am I thinking in line with reality here?
One Star

Re: tMap lookup reloading explanation

Forgot to mention: in my example above, I have "Reload at each row (cache)" selected.
One Star

Re: tMap lookup reloading explanation

is there actually any documentation around on this?
In the current documentation pdf the difference between "reload at each row (cache)" and "reload at each row" AND its implications on performance, memory etc. is not explained.