Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minor: Add backtrace feature in datafusion-cli #14997

Merged
merged 1 commit into from
Mar 4, 2025

Conversation

2010YOUY01
Copy link
Contributor

Which issue does this PR close?

  • Closes #.

Rationale for this change

We can build datafusion with backtrace feature to display full backtrace when an error is thrown. See https://datafusion.apache.org/user-guide/crate-configuration.html#enable-backtraces.
This PR propagates this feature to datafusion-cli, when compiling datafusion-cli with --features=backtrace flag, the same feature will be passed to inner datafusion crate.

What changes are included in this PR?

Add backtrace feature to datafusion-cli build option, and it's only pass through to build datafusion.

Are these changes tested?

Tested manually.
Without backtrace feature:

yongting@Mac ~/C/d/datafusion-cli (cli-backtrace *)> RUST_BACKTRACE=1 cargo run
DataFusion CLI v46.0.0
> select to_car();
Error during planning: Invalid function 'to_car'.
Did you mean 'to_char'?
>

With backtrace feature enabled:

yongting@Mac ~/C/d/datafusion-cli (cli-backtrace *)> RUST_BACKTRACE=1 cargo run --features=backtrace
DataFusion CLI v46.0.0
> select to_car();
Error during planning: Invalid function 'to_car'.
Did you mean 'to_char'?

backtrace:    0: std::backtrace_rs::backtrace::libunwind::trace
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
   1: std::backtrace_rs::backtrace::trace_unsynchronized
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2: std::backtrace::Backtrace::create
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/backtrace.rs:331:13
   3: datafusion_common::error::DataFusionError::get_back_trace
             at /Users/yongting/Code/datafusion/datafusion/common/src/error.rs:473:30
   4: datafusion_sql::expr::function::<impl datafusion_sql::planner::SqlToRel<S>>::sql_function_to_expr
             at /Users/yongting/Code/datafusion/datafusion/sql/src/expr/function.rs:404:13
   5: datafusion_sql::expr::<impl datafusion_sql::planner::SqlToRel<S>>::sql_expr_to_logical_expr_internal::{{closure}}
             at /Users/yongting/Code/datafusion/datafusion/sql/src/expr/mod.rs:481:17
   6: stacker::maybe_grow
......

Are there any user-facing changes?

No

Copy link
Contributor

@zhuqi-lucas zhuqi-lucas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM Thanks @2010YOUY01 !

@alamb alamb changed the title Minor: Support backtrace feature in datafusion-cli Minor: Add backtrace feature in datafusion-cli Mar 4, 2025
@alamb alamb merged commit 613d925 into apache:main Mar 4, 2025
26 checks passed
@alamb
Copy link
Contributor

alamb commented Mar 4, 2025

Thanks @2010YOUY01 @zhuqi-lucas and @xudong963

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants