> 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 : email@example.com Unsubscribe : https://launchpad.net/~zorba-coders More help : https://help.launchpad.net/ListHelp