I'd be more comfortable if we merged this in after the release. Updating
the test baselines will delay the release considerably - I would want the
new baselines to be verified manually which is always time consuming.
How many tests are affected?



On Fri, Mar 4, 2016 at 10:03 AM, Jacques Nadeau <jacq...@dremio.com> wrote:

> Do you think we should back out? It seemed like this could likely cause
> correctness issues although we may be safe with our name based resolution.
> On Mar 4, 2016 9:56 AM, "Aman Sinha" <asi...@maprtech.com> wrote:
>
> > @jacques, thanks for the heads-up, although it comes too close to the
> > release date :).  I agree that the plan tests should be targeted to a
> > narrow scope by specifying the sub-pattern it is supposed to test.   That
> > said, it is a lot easier for the tester to capture the entire plan since
> > he/she may miss an important detail if a sub-plan is captured, so this
> > requires close interaction with the developer (which depending on various
> > factors may take longer while the test needs to be checked-in).
> > BTW, Calcite unit tests capture entire plan.  I am not sure if similar
> > issue has been discussed on Calcite dev list in the past.
> >
> > -Aman
> >
> > On Fri, Mar 4, 2016 at 4:19 AM, Jacques Nadeau <jacq...@dremio.com>
> wrote:
> >
> > > I just merged a simple fix that Laurent found for DRILL-4467.
> > >
> > > This fix ensures consistent column ordering when pushing projection
> into
> > a
> > > scan and invalid plans. This is good and was causing excessive
> operators
> > > and pushdown failure in some cases.
> > >
> > > However, this fix removes a number of trivial projects (that were
> > > previously not detected as such) in a large set of queries. This means
> > that
> > > a number of plan baselines will need to be updated in the extended
> > > regression suite to avoid consideration of the trivial project. This
> > > underscores an issue I see in these tests. In virtually all cases I've
> > > seen, the purpose of the test shouldn't care whether the trivial
> project
> > is
> > > part of the plan. However, the baseline is over-reaching in its
> > definition,
> > > including a bunch of nodes irrelevant to the purpose of the test. One
> > > example might be here:
> > >
> > >
> > >
> >
> https://github.com/mapr/drill-test-framework/blob/master/framework/resources/Functional/filter/pushdown/plan/q23.res
> > >
> > > In this baseline, we're testing that the filter is pushed past the
> > > aggregation. That means what we really need to be testing is a
> multiline
> > > plan pattern of
> > >
> > > HashAgg.*Filter.*Scan.*
> > >
> > > or better
> > >
> > > HashAgg.*Filter\(condition=\[=\(\$0, 10\)\]\).*Scan.*
> > >
> > > However, you can see that the actual expected result includes the
> > > entire structure of the plan (but not the pushed down filter
> > > condition). This causes the plan to fail now that DRILL-4467 is
> > > merged. As part of the fixes to these plans, we should really make
> > > sure that the scope of the baseline is only focused on the relevant
> > > issue to avoid nominal changes from causing testing false positives.
> > >
> > >
> > >
> > > --
> > > Jacques Nadeau
> > > CTO and Co-Founder, Dremio
> > >
> >
>

Reply via email to