kz930 opened a new issue, #8513: URL: https://github.com/apache/texera/issues/8513
### Task Summary Every file-scan source takes a Limit and an Offset from `ScanSourceOpDesc`, and neither field says it cannot be negative. The form accepts `-1` for either one. Neither value is meaningful below zero, and what happens to one is not the same everywhere it is read. The executors take the window with Scala's `drop` and `take`, where a negative `drop` is a no-op and a negative `take` yields nothing, so `offset = -1` returns every row and `limit = -1` returns none. The Arrow and Parquet sources take the same window in the exported script with `iloc`, where `-1` counts from the end instead: `iloc[-1:]` is the last row. A value nobody means to type lands somewhere different depending on which of the two is reading it. Declaring `minimum: 0` on both fields states the constraint the operators already assume, and the form then refuses the value rather than passing it on. It reaches CSV, CSVOld, JSONL, Arrow, Parquet and the file scans at once, since all of them inherit the two fields. This is a bound on the form, not a change to any executor: a plan submitted through the API can still carry a negative, and no operator's behaviour is altered by this task. ### Task Type - [ ] Refactor / Cleanup - [ ] DevOps / Deployment / CI - [ ] Testing / QA - [ ] Documentation - [ ] Performance - [X] Other -- 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]
