From d82f84b641edba751c04a1ec625c1c22f45c4bfe Mon Sep 17 00:00:00 2001 From: Alex Qyoun-ae <4062971+MazterQyou@users.noreply.github.com> Date: Wed, 25 Sep 2024 16:50:22 +0400 Subject: [PATCH] test --- .../cubesql/src/compile/engine/df/wrapper.rs | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs b/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs index 3c946b56ced90..adb69b5ea4e6e 100644 --- a/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs +++ b/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs @@ -268,6 +268,16 @@ fn expr_to_column_with_relation(e: &Expr, schema: &Arc) -> Result String { + static NON_ID_REGEX: LazyLock = LazyLock::new(|| Regex::new(r"[^a-zA-Z0-9_]").unwrap()); + let mut truncated_alias = NON_ID_REGEX + .replace_all(&original_alias, "_") + .trim_start_matches("_") + .to_lowercase(); + truncated_alias.truncate(16); + truncated_alias +} + pub struct SqlGenerationResult { pub data_source: Option, pub from_alias: Option, @@ -343,7 +353,7 @@ impl CubeScanWrapperNode { schema .fields() .iter() - .map(|f| MemberField::Member(column_remapping.get(&Column::from_name(f.name().to_string())).map(|x| x.name.to_string()).unwrap_or(f.name().to_string()))) + .map(|f| MemberField::Member(column_remapping.get(&Column::from_name(f.name().to_string())).map(|x| x.name.to_string()).unwrap_or(create_truncated_alias(f.name())))) .collect() } else { schema @@ -970,9 +980,6 @@ impl CubeScanWrapperNode { ungrouped_scan_node: Option>, subqueries: Arc>, ) -> result::Result<(Vec, SqlQuery), CubeError> { - static NON_ID_REGEX: LazyLock = - LazyLock::new(|| Regex::new(r"[^a-zA-Z0-9_]").unwrap()); - let mut aliased_columns = Vec::new(); for original_expr in exprs { let expr = if let Some(column_remapping) = column_remapping.as_ref() { @@ -1022,11 +1029,7 @@ impl CubeScanWrapperNode { let original_alias = expr_name(&original_expr, &schema)?; let alias = if can_rename_columns { let alias = expr_name(&expr, &schema)?; - let mut truncated_alias = NON_ID_REGEX - .replace_all(&alias, "_") - .trim_start_matches("_") - .to_lowercase(); - truncated_alias.truncate(16); + let truncated_alias = create_truncated_alias(&alias); let mut alias = truncated_alias.clone(); for i in 1..10000 { if !next_remapping