[ 
https://issues.apache.org/jira/browse/SPARK-58347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Szehon Ho reassigned SPARK-58347:
---------------------------------

    Assignee: Andreas Neumann

> Thread conf.resolver through ColumnSelection.applyToSchema instead of a 
> caseSensitive boolean
> ---------------------------------------------------------------------------------------------
>
>                 Key: SPARK-58347
>                 URL: https://issues.apache.org/jira/browse/SPARK-58347
>             Project: Spark
>          Issue Type: Sub-task
>          Components: Declarative Pipelines
>    Affects Versions: 5.0.0
>            Reporter: Andreas Neumann
>            Assignee: Andreas Neumann
>            Priority: Major
>              Labels: pull-request-available
>
> Follow-up from review of SPARK-58313 (PR #57490). AutoCDC column-name 
> resolution is currently driven by a caseSensitive: Boolean that each call 
> site derives from conf.caseSensitiveAnalysis, then re-derives a resolver (or 
> uses StructType.getFieldIndex / getFieldIndexCaseInsensitive) internally. A 
> reviewer suggested threading conf.resolver all the way through for 
> futureproofing, so resolution semantics live in one place rather than being 
> reconstructed from a boolean at each layer.
> The blocker for doing this within SPARK-58313 was scope: 
> ColumnSelection.applyToSchema (and its helper lookupFieldIndices) take a 
> caseSensitive: Boolean and rely on StructType.getFieldIndex / 
> getFieldIndexCaseInsensitive, which are boolean-driven. Threading a Resolver 
> requires reworking applyToSchema/lookupFieldIndices to be resolver-based and 
> updating all callers.
> Scope:
> - Rework ColumnSelection.applyToSchema and lookupFieldIndices to accept/use a 
> Resolver (or a small resolution abstraction) instead of a Boolean.
> - Update all callers to pass conf.resolver: Scd1BatchProcessor (2 sites), 
> Scd2BatchProcessor (preprocess projection + computeTrackedHistoryColumns), 
> and Flow (userSelectedSchema).
> - Scd2BatchProcessor.computeTrackedHistoryColumns can then take a Resolver 
> directly instead of deriving one from a caseSensitive boolean.
> This is a pure refactor with no behavior change (case-sensitive and 
> case-insensitive resolution must remain identical); it also touches the 
> shared SCD1 code paths, which is why it is intentionally deferred out of 
> SPARK-58313.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to