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]

Reply via email to