Commits

Xin Tong committed 51e89de9059
[function-signature-opt] Explode argument level by level and lazily. Previously, we exploded argument to the most-derived fields, i.e. the field that can no longer be exploded further. And in the spliced (newly created) function, we form aggregates if necessary. Changing this to explode only to the deepest level accessed, this enables us to create the projection tree nodes for fields of which its level is accessed, instead of all fields on all levels. Note: this also changes the definition of a leaf node. Leaf node now means the node which does not have children based on current explosion (it however could have children if exploded further). I am refining the old projection tree first before (mostly copying) it to create the new projection tree.