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
> > > > >>>>>
> > > > >>>>>
> > > > >>>>
> > > > >>>
> > > > >>
> > > > >
> > > >
> > >
> >
>

Reply via email to