The GitHub Actions job "Required Checks" on texera.git/feat/loop-variable-refs-backend has succeeded. Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).
Head commit for run: 08921b278c8233d3622d7e2a6d805d7d435abf32 / Xinyuan Lin <[email protected]> feat(amber): bind $K loop-variable references in operators A property of an operator inside a loop block (LoopStart ... LoopEnd) may name a loop variable as `$K`. The frontend keeps sending the literal string whatever the property's type; the backend binds it in three steps. Parse. LogicalOp is now a StateReferencing descriptor, with a `stateReferences` sidecar (JSON pointer -> variable name) that the property panel never shows. StateReferenceModule, registered on JSONUtils.objectMapper and on the workflow-compiling-service mapper, adds a Jackson problem handler: when a whole-string `$name` cannot be converted to an integral, floating-point or boolean property, it returns the placeholder 0 / 0.0 / false and records the value's pointer, relative to the operator, in the operator's sidecar. A thin wrapper around each concrete StateReferencing deserializer opens that recording frame. An object that a polymorphic type deserializer hands over mid-way is first copied into a buffer of its own, because Jackson replays the fields before a late type id from a buffer whose parse context copies the first field's value, not the object. String properties keep the literal, and any other target (an enum, ...) keeps Jackson's ordinary error. Compile. WorkflowCompiler works out which operators lie inside a loop block (LoopBlockMembership, the frontend's block walk) and makes the sidecar final before the physical plan serializes it into the executor's descString. Inside a block it adds every whole-string `$name` of the operator's JSON. Outside every block a string such as "$AAPL" stays the literal it is on main, and a typed placeholder is a compile error naming the property and the variable. Inside a block, an operator whose executor runs generated code, or with an input fed from outside the block, is a compile error too. Worker. ExecFactory hands out a LateBoundExecutor when the descString's sidecar is not empty. It merges the values of the state messages it receives, a later one winning so that an inner loop's variable shadows an outer one, and forwards each message. Once every referenced variable has arrived it patches the placeholders, coerced to their JSON type, builds the real executor through the normal factory path and opens it; every later call goes to that executor, which is never rebound. A tuple before then is an error naming the missing variables. Closes #8635 Report URL: https://github.com/apache/texera/actions/runs/35806164265 With regards, GitHub Actions via GitBox
