I have fixed issues 1 through 3. Regarding point 4: your approach, if I understood it correctly, will only build the dataflow information, but not the dataguide itself. To compute it, it would require an additional pass through the expression tree and an additional data structure.
Regarding the copying in the current code -- first of all, the expr class has a dataguide_cb_t which is only an rchandle, so most of copying you see is just copying of pointers. In cases where data from json "sources" cannot reach expressions, just NULL pointers are propagated. The operation that is costly in the current code is the cloning of dataguides, which is done in a clone-on-modify fashion. That portion could be improved through saving only incremental information instead of cloning and modifying an entire dataguide. -- -- 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