Skip to content

Commit

Permalink
fix: correct expected error in test (#5224)
Browse files Browse the repository at this point in the history
* fix: fix expect error in test `cast_string_to_time`

* fix: fix expect error in test `in_list_types_struct_literal`

* bugfix: fix error when `get_coerced_window_frame` meet `utf8`
  • Loading branch information
jackwener committed Feb 10, 2023
1 parent a1b6f50 commit 8a262c3
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
10 changes: 7 additions & 3 deletions datafusion/core/src/physical_plan/planner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1892,8 +1892,7 @@ mod tests {
fn make_session_state() -> SessionState {
let runtime = Arc::new(RuntimeEnv::default());
let config = SessionConfig::new().with_target_partitions(4);
// TODO we should really test that no optimizer rules are failing here
// let config = config.set_bool(crate::config::OPT_OPTIMIZER_SKIP_FAILED_RULES, false);
let config = config.set_bool("datafusion.optimizer.skip_failed_rules", false);
SessionState::with_config_rt(config, runtime)
}

Expand Down Expand Up @@ -2191,7 +2190,12 @@ mod tests {
.build()?;
let e = plan(&logical_plan).await.unwrap_err().to_string();

assert_contains!(&e, "The data type inlist should be same, the value type is Boolean, one of list expr type is Struct([Field { name: \"foo\", data_type: Boolean, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }])");
assert_contains!(
&e,
r#"type_coercion
caused by
Internal error: Optimizer rule 'type_coercion' failed due to unexpected error: Error during planning: Can not find compatible types to compare Boolean with [Struct([Field { name: "foo", data_type: Boolean, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }]), Utf8]. 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"#
);

Ok(())
}
Expand Down
15 changes: 12 additions & 3 deletions datafusion/core/tests/sql/timestamp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

use super::*;
use datafusion::from_slice::FromSlice;
use datafusion_common::ScalarValue;
use std::ops::Add;

#[tokio::test]
Expand Down Expand Up @@ -1046,7 +1047,11 @@ async fn sub_interval_day() -> Result<()> {

#[tokio::test]
async fn cast_string_to_time() {
let ctx = SessionContext::new();
let config = SessionConfig::new().set(
"datafusion.optimizer.skip_failed_rules",
ScalarValue::Boolean(Some(false)),
);
let ctx = SessionContext::with_config(config);

let sql = "select \
time '08:09:10.123456789' as time_nano, \
Expand All @@ -1070,15 +1075,19 @@ async fn cast_string_to_time() {
let result = try_execute_to_batches(&ctx, sql).await;
assert_eq!(
result.err().unwrap().to_string(),
"Arrow error: Cast error: Cannot cast string 'not a time' to value of Time64(Nanosecond) type"
"simplify_expressions\ncaused by\nInternal error: Optimizer rule 'simplify_expressions' failed due to unexpected error: \
Arrow error: Cast error: Cannot cast string 'not a time' to value of Time64(Nanosecond) type. \
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"
);

// An invalid time
let sql = "SELECT TIME '24:01:02' as time;";
let result = try_execute_to_batches(&ctx, sql).await;
assert_eq!(
result.err().unwrap().to_string(),
"Arrow error: Cast error: Cannot cast string '24:01:02' to value of Time64(Nanosecond) type"
"simplify_expressions\ncaused by\nInternal error: Optimizer rule 'simplify_expressions' failed due to unexpected error: \
Arrow error: Cast error: Cannot cast string '24:01:02' to value of Time64(Nanosecond) type. \
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"
);
}

Expand Down

0 comments on commit 8a262c3

Please sign in to comment.