crepererum opened a new pull request, #6348:
URL: https://github.com/apache/arrow-datafusion/pull/6348
# Which issue does this PR close?
Fixes #6277.
# Rationale for this change
Having a single method w/ all optimization algorithms lets rustc+LLVM pick
the largest possible stack size over all branches when compiled under the `dev`
profile (e.g. for tests). So even if there's a deeply nested projection (e.g.
for `tpcds_logical_q64`), we pay for the more complex aggregation optimization
with every recursion.
Splitting the method into sub-methods seems to fix this.
# What changes are included in this PR?
Just moving code around, no functional change.
# Are these changes tested?
Manually w/:
```bash
#!/usr/bin/env bash
pushd datafusion/core
export RUST_MIN_STACK=1800000
exec "$@"
```
and
```console
$ cargo with './exec.sh {bin} {args}' -- test -p datafusion --test
tpcds_planning -- tpcds_logical_q64 --nocapture
```
# Are there any user-facing changes?
Less stack usage.
--
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]