This is an automated email from the ASF dual-hosted git repository.
dheres pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
The following commit(s) were added to refs/heads/master by this push:
new 3987117fd improve optimizer error (#3403)
3987117fd is described below
commit 3987117fda8260fbe5df352169f63c49eb6a1a13
Author: Andy Grove <[email protected]>
AuthorDate: Thu Sep 8 15:16:41 2022 -0600
improve optimizer error (#3403)
---
datafusion/optimizer/src/optimizer.rs | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/datafusion/optimizer/src/optimizer.rs
b/datafusion/optimizer/src/optimizer.rs
index 9d76cf5e7..9170035b7 100644
--- a/datafusion/optimizer/src/optimizer.rs
+++ b/datafusion/optimizer/src/optimizer.rs
@@ -18,7 +18,7 @@
//! Query optimizer traits
use chrono::{DateTime, Utc};
-use datafusion_common::Result;
+use datafusion_common::{DataFusionError, Result};
use datafusion_expr::logical_plan::LogicalPlan;
use log::{debug, trace, warn};
use std::sync::Arc;
@@ -120,12 +120,16 @@ impl Optimizer {
// bug in the DataFusion optimizer. Please consider
filing a ticket
// https://github.com/apache/arrow-datafusion
warn!(
- "Skipping optimizer rule {} due to unexpected
error: {}",
+ "Skipping optimizer rule '{}' due to unexpected
error: {}",
rule.name(),
e
);
} else {
- return result;
+ return Err(DataFusionError::Internal(format!(
+ "Optimizer rule '{}' failed due to unexpected
error: {}",
+ rule.name(),
+ e
+ )));
}
}
}
@@ -167,7 +171,9 @@ mod tests {
});
let result = opt.optimize(&plan, &mut config, &observe);
assert_eq!(
- "Error during planning: rule failed",
+ "Internal error: Optimizer rule 'bad rule' failed due to
unexpected error: \
+ Error during planning: rule failed. This was likely caused by a
bug in \
+ DataFusion's code and we would welcome that you file an bug report
in our issue tracker",
format!("{}", result.err().unwrap())
);
Ok(())