You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem or challenge?
Noticed while working on #5691 I was getting stack overflows while running tests (well actually a segfault but after some investigation I think it was just a quirk of my ARM mac and really the underlying issue was a stack overflow). I was able to run the tests by compiling them in release mode but the current recursive expression parsing/translation is not stack safe and will likely eventually cause issues.
Otherwise deeply nested expressions can cause a system crash.
Describe the solution you'd like
Avoid recursion in datafusion_proto::logical_plan::from_proto::parse_expr
Describe alternatives you've considered
Leave it as is and document as a known limitation
Additional context
No response
The text was updated successfully, but these errors were encountered:
I think it changing to use a worklist style algorithm (store state on the heap rather than the stack with recursive function calls) would be neat, though it may be a big change
Is your feature request related to a problem or challenge?
Noticed while working on #5691 I was getting stack overflows while running tests (well actually a segfault but after some investigation I think it was just a quirk of my ARM mac and really the underlying issue was a stack overflow). I was able to run the tests by compiling them in release mode but the current recursive expression parsing/translation is not stack safe and will likely eventually cause issues.
Otherwise deeply nested expressions can cause a system crash.
Describe the solution you'd like
Avoid recursion in
datafusion_proto::logical_plan::from_proto::parse_expr
Describe alternatives you've considered
Leave it as is and document as a known limitation
Additional context
No response
The text was updated successfully, but these errors were encountered: