Skip to content

Commit 57948c8

Browse files
johanl-dbcloud-fan
authored andcommitted
[SPARK-48308][CORE] Unify getting data schema without partition columns in FileSourceStrategy
### What changes were proposed in this pull request? Compute the schema of the data without partition columns only once in FileSourceStrategy. ### Why are the changes needed? In FileSourceStrategy, the schema of the data excluding partition columns is computed 2 times in a slightly different way, using an AttributeSet (`partitionSet`) and using the attributes directly (`partitionColumns`) These don't have the exact same semantics, AttributeSet will only use expression ids for comparison while comparing with the actual attributes will use the name, type, nullability and metadata. We want to use the former here. ### Does this PR introduce _any_ user-facing change? No ### How was this patch tested? Existing tests ### Was this patch authored or co-authored using generative AI tooling? No Closes apache#46619 from johanl-db/reuse-schema-without-partition-columns. Authored-by: Johan Lasperas <[email protected]> Signed-off-by: Wenchen Fan <[email protected]>
1 parent 3d3d18f commit 57948c8

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategy.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,9 +216,8 @@ object FileSourceStrategy extends Strategy with PredicateHelper with Logging {
216216
val requiredExpressions: Seq[NamedExpression] = filterAttributes.toSeq ++ projects
217217
val requiredAttributes = AttributeSet(requiredExpressions)
218218

219-
val readDataColumns = dataColumns
219+
val readDataColumns = dataColumnsWithoutPartitionCols
220220
.filter(requiredAttributes.contains)
221-
.filterNot(partitionColumns.contains)
222221

223222
// Metadata attributes are part of a column of type struct up to this point. Here we extract
224223
// this column from the schema and specify a matcher for that.

0 commit comments

Comments
 (0)