pan3793 opened a new pull request, #58756:
URL: https://github.com/apache/spark/pull/58756

   ### What changes were proposed in this pull request?
   
   `RowLevelOperationTable`, the internal wrapper a row-level rewrite (UPDATE, 
MERGE, group-based
   DELETE) reads the table through, delegates `name`, `columns`, `capabilities` 
and `constraints`
   to the wrapped table but not `partitioning()`, so it returned the default 
empty array. It now
   delegates `partitioning()` too.
   
   The in-memory row-level test table now pushes V2 predicates iteratively, so 
a group-based scan
   can receive a second-pass `PartitionPredicate`.
   
   ### Why are the changes needed?
   
   Since SPARK-55596 (4.2.0), `PushDownUtils.getPartitionPredicateSchema` reads 
the partitioning
   of the read relation's table to derive `PartitionPredicate`s, in the 
group-based row-level
   scan planning rule, in `V2ScanRelationPushDown` for delta-based scans, and 
in runtime filter
   pushdown. For every row-level operation the table it sees is the wrapper, so 
the schema was
   always empty and no `PartitionPredicate` was ever derived for a row-level 
scan.
   
   The wrapper has been this way since SPARK-38085 (3.3.0), but nothing read 
its partitioning
   before 4.2.0, so the gap was invisible until then.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No. A connector that opts into iterative pushdown now receives 
`PartitionPredicate`s for
   UPDATE, MERGE and DELETE scans the same way it does for SELECT.
   
   ### How was this patch tested?
   
   New test: a group-based UPDATE on a partitioned table pushes a second-pass
   `PartitionPredicate` to the row-level scan, and only the matching partitions 
are replaced.
   It fails without the fix.
   
   ### Was this patch authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Fable 5.1


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to