aglinxinyuan opened a new pull request, #5720:
URL: https://github.com/apache/texera/pull/5720

   ### What changes were proposed in this PR?
   
   Lets an operator declare that it only runs correctly under MATERIALIZED 
execution mode, and enforces it at submission:
   
   - `LogicalOp` gains `requiresMaterializedExecution: Boolean = false`. 
Operators that need materialized execution override it to `true`; everyone else 
inherits `false`.
   - `WorkflowExecutionService.validateExecutionMode(operators, settings)` 
rejects a non-MATERIALIZED submission when any operator requires 
materialization (with an actionable error), rather than silently coercing the 
mode and leaving the UI and engine disagreeing. Called at workflow submission.
   - Keyed off the flag, not an operator class, so the service doesn't depend 
on which operators need materialization (a plan with only a Loop End, no Loop 
Start, is still caught).
   
   Default `false` ⇒ dormant and behavior-preserving: no operator requires 
materialized mode yet, so `validateExecutionMode` never rejects anything today. 
Operators (the loop operators) opt in separately.
   
   ### Any related issues, documentation, discussions?
   
   Resolves #5719 (sub-issue of #4442 "Introduce for loop"). Split out of #5700 
to keep that PR reviewable, per @Xiao-zhen-Liu's 
[review](https://github.com/apache/texera/pull/4206#pullrequestreview-4482667715).
   
   ### How was this PR tested?
   
   New `WorkflowExecutionServiceSpec` (4 tests): the flag default, and 
`validateExecutionMode`'s reject/accept paths exercised with a minimal stub 
operator (no dependency on any concrete materialized-requiring operator). 
`WorkflowExecutionService/Test/compile`, `scalafixAll --check`, and 
`scalafmtCheckAll` all pass locally.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Co-authored with Claude Opus 4.8 in compliance with ASF.


-- 
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]

Reply via email to