From dcb8cf4ebf874976eb930e8a283989954adff59a Mon Sep 17 00:00:00 2001 From: EmirVildanov <reddog201030@gmail.com> Date: Fri, 6 Sep 2024 16:12:43 +0300 Subject: [PATCH] feat: add tests for asterisk --- sbroad-core/src/executor/tests/exec_plan.rs | 89 +++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/sbroad-core/src/executor/tests/exec_plan.rs b/sbroad-core/src/executor/tests/exec_plan.rs index eb19e96ea..00cc91b2d 100644 --- a/sbroad-core/src/executor/tests/exec_plan.rs +++ b/sbroad-core/src/executor/tests/exec_plan.rs @@ -1116,6 +1116,95 @@ fn global_except() { assert_eq!(expected, res) } +#[test] +fn local_translation_asterisk_single() { + let sql = r#"SELECT * from "t3""#; + let coordinator = RouterRuntimeMock::new(); + + let mut query = Query::new(&coordinator, sql, vec![]).unwrap(); + let exec_plan = query.get_mut_exec_plan(); + let top_id = exec_plan.get_ir_plan().get_top().unwrap(); + + let sql = + get_sql_from_execution_plan(exec_plan, top_id, Snapshot::Oldest, &Buckets::All, "test"); + assert_eq!( + sql, + PatternWithParams::new( + format!("{}", r#"SELECT "t3"."a", "t3"."b" FROM "t3""#,), + vec![] + ) + ); +} + +#[test] +fn local_translation_asterisk_several() { + let sql = r#"SELECT *, * from "t3""#; + let coordinator = RouterRuntimeMock::new(); + + let mut query = Query::new(&coordinator, sql, vec![]).unwrap(); + let exec_plan = query.get_mut_exec_plan(); + let top_id = exec_plan.get_ir_plan().get_top().unwrap(); + + let sql = + get_sql_from_execution_plan(exec_plan, top_id, Snapshot::Oldest, &Buckets::All, "test"); + assert_eq!( + sql, + PatternWithParams::new( + format!( + "{}", + r#"SELECT "t3"."a", "t3"."b", "t3"."a", "t3"."b" FROM "t3""#, + ), + vec![] + ) + ); +} + +#[test] +fn local_translation_asterisk_named() { + let sql = r#"SELECT *, "t3".*, * from "t3""#; + let coordinator = RouterRuntimeMock::new(); + + let mut query = Query::new(&coordinator, sql, vec![]).unwrap(); + let exec_plan = query.get_mut_exec_plan(); + let top_id = exec_plan.get_ir_plan().get_top().unwrap(); + + let sql = + get_sql_from_execution_plan(exec_plan, top_id, Snapshot::Oldest, &Buckets::All, "test"); + assert_eq!( + sql, + PatternWithParams::new( + format!( + "{}", + r#"SELECT "t3"."a", "t3"."b", "t3"."a", "t3"."b", "t3"."a", "t3"."b" FROM "t3""#, + ), + vec![] + ) + ); +} + +#[test] +fn local_translation_asterisk_with_additional_columns() { + let sql = r#"SELECT "a", *, "t3"."b", "t3".*, * from "t3""#; + let coordinator = RouterRuntimeMock::new(); + + let mut query = Query::new(&coordinator, sql, vec![]).unwrap(); + let exec_plan = query.get_mut_exec_plan(); + let top_id = exec_plan.get_ir_plan().get_top().unwrap(); + + let sql = + get_sql_from_execution_plan(exec_plan, top_id, Snapshot::Oldest, &Buckets::All, "test"); + assert_eq!( + sql, + PatternWithParams::new( + format!( + "{}", + r#"SELECT "t3"."a", "t3"."a", "t3"."b", "t3"."b", "t3"."a", "t3"."b", "t3"."a", "t3"."b" FROM "t3""#, + ), + vec![] + ) + ); +} + #[test] fn exec_plan_order_by() { let sql = r#"SELECT "identification_number" from "hash_testing" -- GitLab