[SPARK-24172][SQL]: Push projection and filters once when converting to physical plan. #21262
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
This removes
PruneFileSourcePartitions
and moves projection and filter push-down toDataSourceV2Strategy
. This accomplishes the same goal as #21230 and only runs the push-down once by not usingtransformUp
to traverse the plan.Unlike #21230, this moves pushdown to the v2 strategy to match the way pushdown happens for other code paths: when creating a physical plan from a logical plan. This was suggested by @marmbrus in #20387, but not implemented at the time. The same concern from that PR still applies to this commit: pushdown is not applied until conversion to a physical plan, so
computeStats
can't report stats after filtering or projecting.A benefit of this approach is that the
DataSourceV2Relation
is simpler and the relation'soutput
is constant.How was this patch tested?
This uses existing tests.