Skip to content

Commit 9b45ed9

Browse files
authored
Adding backtrace documentation (#7628)
1 parent dab68a3 commit 9b45ed9

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

docs/source/user-guide/example-usage.md

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ Even [`more code examples`](../../../datafusion-examples) attached to the projec
2525

2626
## Update `Cargo.toml`
2727

28-
Add the following to your `Cargo.toml` file:
28+
Find latest available Datafusion version on [DataFusion's
29+
crates.io] page. Add the dependency to your `Cargo.toml` file:
2930

3031
```toml
31-
datafusion = "26"
32+
datafusion = "31"
3233
tokio = "1.0"
3334
```
3435

@@ -232,3 +233,37 @@ with `native` or at least `avx2`.
232233
```shell
233234
RUSTFLAGS='-C target-cpu=native' cargo +nightly run --release
234235
```
236+
237+
## Enable backtraces
238+
239+
By default Datafusion returns errors as a plain message. There is option to enable more verbose details about the error,
240+
like error backtrace. To enable a backtrace you need to add Datafusion `backtrace` feature to your `Cargo.toml` file:
241+
242+
```toml
243+
datafusion = { version = "31.0.0", features = ["backtrace"]}
244+
```
245+
246+
Set environment [`variables`] https://doc.rust-lang.org/std/backtrace/index.html#environment-variables
247+
248+
```bash
249+
RUST_BACKTRACE=1 ./target/debug/datafusion-cli
250+
DataFusion CLI v31.0.0
251+
select row_numer() over (partition by a order by a) from (select 1 a);
252+
Error during planning: Invalid function 'row_numer'.
253+
Did you mean 'ROW_NUMBER'?
254+
255+
backtrace: 0: std::backtrace_rs::backtrace::libunwind::trace
256+
at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
257+
1: std::backtrace_rs::backtrace::trace_unsynchronized
258+
at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
259+
2: std::backtrace::Backtrace::create
260+
at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/std/src/backtrace.rs:332:13
261+
3: std::backtrace::Backtrace::capture
262+
at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/std/src/backtrace.rs:298:9
263+
4: datafusion_common::error::DataFusionError::get_back_trace
264+
at /arrow-datafusion/datafusion/common/src/error.rs:436:30
265+
5: datafusion_sql::expr::function::<impl datafusion_sql::planner::SqlToRel<S>>::sql_function_to_expr
266+
............
267+
```
268+
269+
Note: The backtrace wrapped into systems calls, so some steps on top of the backtrace can be ignored

0 commit comments

Comments
 (0)