GitHub user aglinxinyuan added a comment to the discussion: A control-variable port on every operator: design and prototype
1. A property can take `$name` unless the plan is built from it, because the plan is compiled before any variable has a value. #8750 marks those properties with `@NoLoopVariable` (Projection's columns, group-by keys, join keys), and a `$name` there is a compile error. File Scan works with `$file` because its schema comes from its properties, not from the file. CSV infers its schema by reading the file at compile time, so `$file` doesn't work there yet. The plan is to take the schema from an example file or a declared schema instead. 2. Values are checked at run time, right before the operator first sees data. `StateReferenceBinding` converts each value to the field's Java type: an integer field accepts `"7"` but rejects `7.5`. The value then goes through the descriptor's own Jackson deserialization. A wrong type or a missing name shows up as an operator error, and the operator pauses. GitHub link: https://github.com/apache/texera/discussions/8915#discussioncomment-18807099 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected]
