Eason0729 opened a new pull request, #1468:
URL: https://github.com/apache/datafusion-sqlparser-rs/pull/1468
## Changed
under `#[cfg(feature="std")]`, `stacker::maybe_grow` was called in
`RecursionCounter::try_decrease` to prevent stack overflow
I also tested on Windows(stack size 1MB), it seems fine.
### reproducible code from original issue
```rust
use datafusion::prelude::{ParquetReadOptions, SessionContext};
#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let ctx = SessionContext::new();
ctx.register_parquet(
"parquet_table",
"batches.parquet",
ParquetReadOptions::default(),
)
.await?;
let sql_query = "
SELECT seq
FROM (
SELECT seq,
LEAD(seq) OVER (ORDER BY seq) AS next_seq
FROM parquet_table
) AS subquery
WHERE next_seq - seq > 1";
let df = ctx.sql(sql_query).await?;
df.show().await?;
Ok(())
}
```
## Missing
- [ ] Return error when growing stack fail:
growing stack on unsupported target seems to be no-op on stacker side, so I
am unable to detect it.
- [ ] Test: which part should be tested?
- [ ] Observe performance impact
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]