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