From 7f4cd88bc9c5c69babb1e2ee7c64bf235f5c5dd3 Mon Sep 17 00:00:00 2001 From: Nikita-str Date: Tue, 28 May 2024 00:46:28 +0600 Subject: [PATCH 1/3] dont change __user / __cubejoinfield names in aliasing --- packages/cubejs-schema-compiler/src/adapter/BaseQuery.js | 3 +++ rust/cubesql/cubesql/src/compile/test/test_wrapper.rs | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js b/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js index 5dd34176028ce..db13e666db84b 100644 --- a/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js +++ b/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js @@ -3693,6 +3693,9 @@ export class BaseQuery { } // TODO: https://github.com/cube-js/cube.js/issues/4019 // use single underscore for pre-aggregations to avoid fail of pre-aggregation name replace + if (name === '__user' || name === '__cubejoinfield') { + return name; + } return inflection.underscore(name).replace(/\./g, isPreAggregationName ? '_' : '__'); } diff --git a/rust/cubesql/cubesql/src/compile/test/test_wrapper.rs b/rust/cubesql/cubesql/src/compile/test/test_wrapper.rs index 6419939a1f90a..5db62bc5d772f 100644 --- a/rust/cubesql/cubesql/src/compile/test/test_wrapper.rs +++ b/rust/cubesql/cubesql/src/compile/test/test_wrapper.rs @@ -925,9 +925,9 @@ async fn test_case_wrapper_with_system_fields() { .wrapped_sql .sql .contains( - "\\\"cubeName\\\":\\\"KibanaSampleDataEcommerce\\\",\\\"alias\\\":\\\"user\\\"" + "\\\"cubeName\\\":\\\"KibanaSampleDataEcommerce\\\",\\\"alias\\\":\\\"__user\\\"" ), - r#"SQL contains `\"cubeName\":\"KibanaSampleDataEcommerce\",\"alias\":\"user\"` {}"#, + r#"SQL contains `\"cubeName\":\"KibanaSampleDataEcommerce\",\"alias\":\"__user\"` {}"#, logical_plan.find_cube_scan_wrapped_sql().wrapped_sql.sql ); From 11e4d96c4c880914cc93b4190a05a9b225c68dc6 Mon Sep 17 00:00:00 2001 From: Nikita-str Date: Tue, 28 May 2024 01:03:16 +0600 Subject: [PATCH 2/3] cast name to lower for `__cubeJoinField` case --- packages/cubejs-schema-compiler/src/adapter/BaseQuery.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js b/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js index db13e666db84b..41b54704c90e5 100644 --- a/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js +++ b/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js @@ -3693,7 +3693,8 @@ export class BaseQuery { } // TODO: https://github.com/cube-js/cube.js/issues/4019 // use single underscore for pre-aggregations to avoid fail of pre-aggregation name replace - if (name === '__user' || name === '__cubejoinfield') { + const lowercaseName = name.toLowerCase(); + if (lowercaseName === '__user' || lowercaseName === '__cubejoinfield') { return name; } return inflection.underscore(name).replace(/\./g, isPreAggregationName ? '_' : '__'); From 54023f809c8fb8b7f1627b1662112836d4a1de76 Mon Sep 17 00:00:00 2001 From: Konstantin Burkalev Date: Fri, 6 Jun 2025 16:59:35 +0300 Subject: [PATCH 3/3] reapply fix --- rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs b/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs index 67d94e6547b52..da04e1a4cbc20 100644 --- a/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs +++ b/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs @@ -416,10 +416,7 @@ impl Remapper { LazyLock::new(|| Regex::new(r"[^a-zA-Z0-9_]").unwrap()); let alias = start_from; - let mut truncated_alias = NON_ID_REGEX - .replace_all(&alias, "_") - .trim_start_matches("_") - .to_lowercase(); + let mut truncated_alias = NON_ID_REGEX.replace_all(&alias, "_").to_lowercase(); truncated_alias.truncate(16); let mut alias = truncated_alias.clone(); for i in 1..10000 {