Definitely, and I think I'm fairly sure it's something going on still on the optiq -> logical side.
I'll find time in the afternoon to look at it. Tim On Thu, Oct 10, 2013 at 10:57 AM, Jacques Nadeau <[email protected]> wrote: > Can you start with my test that does order and limit in jdbctest? Maybe > make a copy of that test and test yours. We should make sure the logical > plan is correct before we validate the rest of the pipeline. > > > On Thu, Oct 10, 2013 at 10:52 AM, Timothy Chen <[email protected]> wrote: > > > Hi Jacques, > > > > I just downloaded your commit and tried it locally, and the following > query > > still doesn't work: > > > > SELECT _MAP['R_NAME'] from "sample-data/region.parquet" ORDER BY 1 DESC > > LIMIT 3; > > > > The Sort is now inserted and the results are ordered, but all 5 results > are > > returned. > > > > I'll look into it more just wanted to let you know. > > > > Tim > > > > > > On Wed, Oct 9, 2013 at 11:14 AM, Jacques Nadeau <[email protected]> > > wrote: > > > > > Two main things, your rules weren't exactly right and sometimes the > > > ENUMERABLE_* rules would actually be chosen over your rules. I removed > > > them since when we are doing transformation to logical plan, we don't > > want > > > to do any data operations. > > > > > > > > > On Wed, Oct 9, 2013 at 11:10 AM, Timothy Chen <[email protected]> > wrote: > > > > > > > Amazing! > > > > > > > > Can you maybe explain a bit more why the sort is not getting > > populated? I > > > > see you removed the ENUMERABLE rules and added Drill.CONVENTION in > the > > > > input. > > > > > > > > Tim > > > > > > > > > > > > On Wed, Oct 9, 2013 at 11:00 AM, Jacques Nadeau <[email protected]> > > > > wrote: > > > > > > > > > Hey Tim, > > > > > > > > > > I believe I fixed the problems. You can get it from: > > > > > > > > > > https://github.com/jacques-n/incubator-drill/tree/limit_op > > > > > > > > > > > > > > > On Sun, Oct 6, 2013 at 1:09 PM, Timothy Chen <[email protected]> > > > wrote: > > > > > > > > > >> Hi Julian, > > > > >> > > > > >> Do you think you can take a look sometime? > > > > >> > > > > >> Tim > > > > >> > > > > >> > > > > >> On Sun, Sep 29, 2013 at 3:23 PM, Timothy Chen <[email protected]> > > > > wrote: > > > > >> > > > > >>> Btw, the code is at > > > > >>> https://github.com/tnachen/incubator-drill/tree/limit_op > > > > >>> > > > > >>> Tim > > > > >>> > > > > >>> > > > > >>> On Sun, Sep 29, 2013 at 3:22 PM, Timothy Chen <[email protected] > > > > > > wrote: > > > > >>> > > > > >>>> I tried that as well earlier, but still the same result. > > > > >>>> > > > > >>>> It's creating the input and sorts, but in the end it won't call > > the > > > > >>>> DrillImplementor for Rels at all. > > > > >>>> > > > > >>>> I also tried taking out the replace, but same results too. > > > > >>>> > > > > >>>> It wonder if the best route (cheapest) as able to skip the one > > > copied? > > > > >>>> > > > > >>>> I believe I followed mostly what you suggested that is follow > > > > >>>> EnumerableLimitRel impl. > > > > >>>> > > > > >>>> Tim > > > > >>>> > > > > >>>> > > > > >>>> > > > > >>>> > > > > >>>> On Sun, Sep 29, 2013 at 3:01 PM, Julian Hyde < > > [email protected] > > > > >wrote: > > > > >>>> > > > > >>>>> > > > > >>>>> On Sep 28, 2013, at 1:01 AM, Timothy Chen <[email protected]> > > > wrote: > > > > >>>>> > > > > >>>>> > Here is one of the trials I tried: > > > > >>>>> > > > > > >>>>> > - final RelTraitSet traits = > > > > >>>>> sort.getTraitSet().plus(DrillRel.CONVENTION); > > > > >>>>> > + final RelTraitSet traits = sort.getTraitSet(); > > > > >>>>> > RelNode input = sort.getChild(); > > > > >>>>> > if (!sort.getCollation().getFieldCollations().isEmpty()) > { > > > > >>>>> > input = sort.copy( > > > > >>>>> > - > sort.getTraitSet().replace(RelCollationImpl.EMPTY), > > > > >>>>> > - input, > > > > >>>>> > - RelCollationImpl.EMPTY, > > > > >>>>> > + sort.getTraitSet(), > > > > >>>>> > + sort, > > > > >>>>> > + sort.getCollation(), > > > > >>>>> > null, > > > > >>>>> > null); > > > > >>>>> > } > > > > >>>>> > > > > >>>>> The > > > > >>>>> > > > > >>>>> + sort, > > > > >>>>> > > > > >>>>> line should be > > > > >>>>> > > > > >>>>> + input, > > > > >>>>> > > > > >>>>> otherwise you are creating a sort on top of a sort. Give that a > > > try. > > > > >>>>> > > > > >>>>> Julian > > > > >>>>> > > > > >>>>> > > > > >>>> > > > > >>> > > > > >> > > > > > > > > > > > > > > >
