Julian, glad you find the work useful.
On Mon, May 20, 2013 at 11:20 PM, Julian Hyde <[email protected]> wrote: > On May 8, 2013, at 9:31 PM, Lisen Mu <[email protected]> wrote: > > > I'm not familiar with the optiq inside but seems it has something to do > with your last projection's ref. What's the purpose of getHolder()? > > > > Maybe not the right thing to do, but the attached patch could produce > output without nesting(but throws exceptions in some test...). > > Lisen, > > Your observations & patch helped get me through my mental block. I > realized that "ref" is necessary for the "scan" operator, but not others. > Therefore I made sure that each operator's JSON output the logical row type > of the corresponding Optiq relational operator. Scan outputs records with a > single field called _MAP; project contains whatever field(s) they asked > for; filter outputs the same row type as its input; and so forth. > > I was able to obsolete the "holder" notion, and some other nasty duck tape > [ > https://github.com/julianhyde/incubator-drill/commit/375dbf03157924860bfc6b3c7e1084cd91faa61d]. > I also implemented aggregation over the weekend [ > https://github.com/julianhyde/incubator-drill/commit/febcb702c224f8aa148377272eb88929cfa15ee7]. > > Thanks for your help. > > Julian
