> The way I see this is not a problem with the fn functions. The problem is
> related to the fact how the objects are used. In this case, the objects are
> used to construct a new object. The dataguide needs to handle that. Similar to
> serialization, this means that the entire object is needed.

Yes, this is being handled and the usage of objects is being tracked. The 
process() function in the dataguide computation has a parameter for that -- 
propagates_to_output. You've actually seen it in action -- it is pessimistic 
and assumes all fn: functions propagate their input to the output. That is why 
the parameter to count() was assumed to be used and you've seen no pruning. 

I've now made fn:count() a special case and it's input is no longer considered 
used for output and its parameter is allowed to be pruned. All the other 
functions are handled as if they propagate their input and skipping is allowed 
only where it's indeed possible. 

--
-- 
https://code.launchpad.net/~zorba-coders/zorba/use-dataguide/+merge/176385
Your team Zorba Coders is subscribed to branch lp:zorba.

-- 
Mailing list: https://launchpad.net/~zorba-coders
Post to     : zorba-coders@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zorba-coders
More help   : https://help.launchpad.net/ListHelp

Reply via email to