GitHub user laurentgo opened a pull request:
https://github.com/apache/drill/pull/404
DRILL-4334: Fix ProjectPushInfo#desiredFields order when using
PrelUtil#getColumns
Order of ProjectPushInfo#desiredFields elements is not the same as the list
of
RexNode elements they are derived from. This might cause some optimization
to
be skipped in DrillPushProjIntoScan as the
ProjectRemoveRule.isTrivial(newProj)
check might fail simply because of the ordering mismatch.
The visitor created to visit the original RexNode elements now uses a
LinkedHashSet to guarantee that the ordering stays the same as the order
of the RexNode instances they are derived from.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/laurentgo/drill
laurent/DRILL-4467-fix-PrelUtil-desiredFields-ordering
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/drill/pull/404.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #404
----
commit 4da0306fe7b3847c9c6b2633fd95afd4b6830386
Author: Laurent Goujon <[email protected]>
Date: 2016-03-02T22:25:09Z
DRILL-4334: Fix ProjectPushInfo#desiredFields order when using
PrelUtil#getColumns
Order of ProjectPushInfo#desiredFields elements is not the same as the list
of
RexNode elements they are derived from. This might cause some optimization
to
be skipped in DrillPushProjIntoScan as the
ProjectRemoveRule.isTrivial(newProj)
check might fail simply because of the ordering mismatch.
The visitor created to visit the original RexNode elements now uses a
LinkedHashSet to guarantee that the ordering stays the same as the order
of the RexNode instances they are derived from.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---