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

   ### What changes were proposed in this PR?
   
   Twenty-eight more operators implement `StandaloneCodeGenerator`, so a 
workflow built from anything but a visualization, a source or a model can now 
be exported as a script that runs: the set operations, the joins, the filters 
and searches, the reshaping operators, the sorts, the samplers, and the 
control-flow pair.
   
   Each is written against what its executor does rather than against what its 
name suggests, and the verification that came with the export runs both and 
compares them. Some of what that turned up is visible in the code: Distinct 
keeps the first occurrence of a duplicate because the executor's 
`LinkedHashSet` does; Filter guards every comparison with `notna`, because a 
null answers false to all of them but IS NULL and pandas does not agree on 
`!=`; the samplers seed their generator so a rerun draws the same rows as the 
run it is being compared with.
   
   `StandaloneHelpers` holds what several operators share — the samplers' 
generator, the aggregate's rendering — emitted once near the top of a script 
rather than inlined per operator, so two samplers in one workflow yield one 
copy.
   
   Two executors change. Substring Search and Unnest String answered a null 
cell by raising, which a generated script has no way to reproduce and no reason 
to: nothing in a column matches nothing, and unnests to no rows. They now 
answer it that way instead, and their specs say so. The same change is under 
review on its own as #7566; it is included here because the standalone code for 
these two is written against it, and a batch that assumed a behaviour it did 
not carry would fail its own verification.
   
   ### Any related issues, documentation, discussions?
   
   Part of #8325. Builds on #8327, which adds the trait and the verification.
   
   ### How was this PR tested?
   
   `OperatorBehaviorSpec` verifies 27 of the 28 against the operator they came 
from, running each through the engine and through its generated script and 
comparing the results, on every configuration the operator's schema offers. 
Dummy is the exception and is reported as such: it is a placeholder with no 
physical execution to compare against.
   
   Each operator also asserts the shape of the line it emits in its own spec, 
and `WorkflowOperator` passes in full at 2555 tests.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Opus 5)
   


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