From e930f47133b7bf1c29a60ea3b8baf1f391f5518e Mon Sep 17 00:00:00 2001 From: Aleksandr Romanenko Date: Thu, 21 May 2026 18:32:37 +0200 Subject: [PATCH] chore(tesseract): rename view `filters` to `default_filters` Renames the view-level default-value filter key introduced in #10892 from `filters` to `default_filters` (camelCase `defaultFilters` in JS) across the TS schema-compiler, YAML/JS transpilers, Rust bridge, planner, fixtures, and tests. --- .../src/bridge_test_exports.rs | 2 +- .../test/bridge/bridge-fixtures.ts | 2 +- .../bridge/object-bridges-coverage.test.ts | 2 +- .../src/compiler/CubeEvaluator.ts | 6 ++--- .../src/compiler/CubeSymbols.ts | 2 +- .../src/compiler/CubeValidator.ts | 4 ++-- .../src/compiler/YamlCompiler.ts | 4 ++-- .../transpilers/CubePropContextTranspiler.ts | 6 ++--- .../view-default-value-filters.test.ts | 8 +++---- .../test/unit/cube-validator.test.ts | 14 ++++++------ .../test/unit/schema.test.ts | 12 +++++----- .../cubejs-schema-compiler/test/unit/utils.ts | 2 +- .../src/cube_bridge/cube_definition.rs | 2 +- .../src/planner/query_properties_compiler.rs | 2 +- .../cube_bridge/mock_cube_definition.rs | 22 +++++++++---------- .../test_fixtures/cube_bridge/mock_schema.rs | 2 +- .../test_fixtures/cube_bridge/yaml/schema.rs | 6 ++--- .../common/view_default_filters.yaml | 4 ++-- 18 files changed, 51 insertions(+), 51 deletions(-) diff --git a/packages/cubejs-backend-native/src/bridge_test_exports.rs b/packages/cubejs-backend-native/src/bridge_test_exports.rs index 0954aabd98a0e..f771586b2d248 100644 --- a/packages/cubejs-backend-native/src/bridge_test_exports.rs +++ b/packages/cubejs-backend-native/src/bridge_test_exports.rs @@ -722,7 +722,7 @@ fn invoke_cube_definition(b: &NativeCubeDefinition) -> Invok let mut r = InvokeResult::new(); r.record("sql_table", b.sql_table()); r.record("sql", b.sql()); - r.record("filters", b.filters()); + r.record("default_filters", b.default_filters()); r } diff --git a/packages/cubejs-backend-native/test/bridge/bridge-fixtures.ts b/packages/cubejs-backend-native/test/bridge/bridge-fixtures.ts index 4abd724658665..fdfa1d1aa975f 100644 --- a/packages/cubejs-backend-native/test/bridge/bridge-fixtures.ts +++ b/packages/cubejs-backend-native/test/bridge/bridge-fixtures.ts @@ -144,7 +144,7 @@ export const cubeDefinitionFixture = (): unknown => ({ name: 'Orders', // sqlAlias, isView, isCalendar, joinMap optional // sql_table, sql optional getters - filters: [viewFilterDefinitionFixture()], + defaultFilters: [viewFilterDefinitionFixture()], }); export const dimensionDefinitionFixture = (): unknown => ({ diff --git a/packages/cubejs-backend-native/test/bridge/object-bridges-coverage.test.ts b/packages/cubejs-backend-native/test/bridge/object-bridges-coverage.test.ts index 13fc0c4c011ab..ffba63ab83004 100644 --- a/packages/cubejs-backend-native/test/bridge/object-bridges-coverage.test.ts +++ b/packages/cubejs-backend-native/test/bridge/object-bridges-coverage.test.ts @@ -88,7 +88,7 @@ const BRIDGES: BridgeSpec[] = [ { name: 'cubeDefinition', expected: [ - 'filters', + 'default_filters', 'is_calendar', 'is_view', 'join_map', diff --git a/packages/cubejs-schema-compiler/src/compiler/CubeEvaluator.ts b/packages/cubejs-schema-compiler/src/compiler/CubeEvaluator.ts index e500f000f8c48..fce487a5d2af3 100644 --- a/packages/cubejs-schema-compiler/src/compiler/CubeEvaluator.ts +++ b/packages/cubejs-schema-compiler/src/compiler/CubeEvaluator.ts @@ -148,7 +148,7 @@ export type EvaluatedCube = { accessPolicy?: AccessPolicyDefinition[]; isView?: boolean; includedMembers?: ViewIncludedMember[]; - filters?: ViewDefaultValueFilter[]; + defaultFilters?: ViewDefaultValueFilter[]; }; export class CubeEvaluator extends CubeSymbols { @@ -215,7 +215,7 @@ export class CubeEvaluator extends CubeSymbols { } private prepareViewFilters(cube: any, errorReporter: ErrorReporter) { - if (!cube.filters) { + if (!cube.defaultFilters) { return; } @@ -250,7 +250,7 @@ export class CubeEvaluator extends CubeSymbols { return `${cube.name}.${match.name}`; }; - for (const filter of cube.filters as ViewDefaultValueFilter[]) { + for (const filter of cube.defaultFilters as ViewDefaultValueFilter[]) { const rawMember = this.evaluateReferences(cube.name, filter.member); const resolved = resolveViewMember('member', rawMember); if (resolved !== null) { diff --git a/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts b/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts index 6d12a55035418..42e544a243cfb 100644 --- a/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts +++ b/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts @@ -226,7 +226,7 @@ export interface CubeDefinition { isView?: boolean; viewGroup?: string | ((...args: any[]) => any); viewGroups?: string[] | ((...args: any[]) => any); - filters?: ViewDefaultValueFilter[]; + defaultFilters?: ViewDefaultValueFilter[]; calendar?: boolean; isSplitView?: boolean; includedMembers?: ViewIncludedMember[]; diff --git a/packages/cubejs-schema-compiler/src/compiler/CubeValidator.ts b/packages/cubejs-schema-compiler/src/compiler/CubeValidator.ts index 17760cfcc32ee..8d004cc6e64cf 100644 --- a/packages/cubejs-schema-compiler/src/compiler/CubeValidator.ts +++ b/packages/cubejs-schema-compiler/src/compiler/CubeValidator.ts @@ -1130,7 +1130,7 @@ const folderSchema = Joi.object().keys({ ]).required(), }).id('folderSchema'); -const ViewFilterSchema = Joi.object().keys({ +const ViewDefaultFilterSchema = Joi.object().keys({ member: Joi.func().required(), operator: Joi.any().valid( 'equals', @@ -1195,7 +1195,7 @@ const viewSchema = inherit(baseSchema, { }) ), folders: Joi.array().items(folderSchema), - filters: Joi.array().items(ViewFilterSchema), + defaultFilters: Joi.array().items(ViewDefaultFilterSchema), }); function formatErrorMessageFromDetails(explain, d) { diff --git a/packages/cubejs-schema-compiler/src/compiler/YamlCompiler.ts b/packages/cubejs-schema-compiler/src/compiler/YamlCompiler.ts index 078308a6efe25..a13a13a9bf12d 100644 --- a/packages/cubejs-schema-compiler/src/compiler/YamlCompiler.ts +++ b/packages/cubejs-schema-compiler/src/compiler/YamlCompiler.ts @@ -193,8 +193,8 @@ export class YamlCompiler { // `includedMembers` are not resolvable at transpile time, so // running them through the Python parser would treat the name // as an undefined identifier. - const isViewFilterMember = /^filters\.\d+\.member$/.test(fullPath); - const isViewFilterUnless = /^filters\.\d+\.unless$/.test(fullPath); + const isViewFilterMember = /^defaultFilters\.\d+\.member$/.test(fullPath); + const isViewFilterUnless = /^defaultFilters\.\d+\.unless$/.test(fullPath); if (typeof obj === 'string' && ['sql', 'sqlTable'].includes(propertyPath[propertyPath.length - 1])) { return this.parsePythonIntoArrowFunction(`f"${this.escapeDoubleQuotes(obj)}"`, cubeName, obj, errorsReport); } else if (typeof obj === 'string' && isViewFilterMember) { diff --git a/packages/cubejs-schema-compiler/src/compiler/transpilers/CubePropContextTranspiler.ts b/packages/cubejs-schema-compiler/src/compiler/transpilers/CubePropContextTranspiler.ts index c1d9564d1c2af..58e1b8c0ac9b5 100644 --- a/packages/cubejs-schema-compiler/src/compiler/transpilers/CubePropContextTranspiler.ts +++ b/packages/cubejs-schema-compiler/src/compiler/transpilers/CubePropContextTranspiler.ts @@ -37,9 +37,9 @@ export const transpiledFieldsPatterns: Array = [ /^(accessPolicy|access_policy)\.[0-9]+\.(rowLevel|row_level)\.filters\.[0-9]+.*\.member$/, /^(accessPolicy|access_policy)\.[0-9]+\.(rowLevel|row_level)\.filters\.[0-9]+.*\.values$/, /^(accessPolicy|access_policy)\.[0-9]+\.conditions.[0-9]+\.if$/, - /^filters\.[0-9]+\.member$/, - /^filters\.[0-9]+\.values$/, - /^filters\.[0-9]+\.unless$/, + /^(defaultFilters|default_filters)\.[0-9]+\.member$/, + /^(defaultFilters|default_filters)\.[0-9]+\.values$/, + /^(defaultFilters|default_filters)\.[0-9]+\.unless$/, /^(measures|dimensions)\.[_a-zA-Z][_a-zA-Z0-9]*\.mask\.sql$/, ]; diff --git a/packages/cubejs-schema-compiler/test/integration/postgres/view-default-value-filters.test.ts b/packages/cubejs-schema-compiler/test/integration/postgres/view-default-value-filters.test.ts index 23745fd90c954..c5bae3563c246 100644 --- a/packages/cubejs-schema-compiler/test/integration/postgres/view-default-value-filters.test.ts +++ b/packages/cubejs-schema-compiler/test/integration/postgres/view-default-value-filters.test.ts @@ -53,7 +53,7 @@ views: cubes: - join_path: orders includes: "*" - filters: + default_filters: - member: country operator: equals values: @@ -63,7 +63,7 @@ views: cubes: - join_path: orders includes: "*" - filters: + default_filters: - member: country operator: equals values: @@ -75,7 +75,7 @@ views: cubes: - join_path: orders includes: "*" - filters: + default_filters: - member: currency operator: equals values: @@ -85,7 +85,7 @@ views: cubes: - join_path: orders includes: "*" - filters: + default_filters: - member: currency operator: equals values: diff --git a/packages/cubejs-schema-compiler/test/unit/cube-validator.test.ts b/packages/cubejs-schema-compiler/test/unit/cube-validator.test.ts index 1a31b7002486e..c84a7e3d65fc6 100644 --- a/packages/cubejs-schema-compiler/test/unit/cube-validator.test.ts +++ b/packages/cubejs-schema-compiler/test/unit/cube-validator.test.ts @@ -219,7 +219,7 @@ describe('Cube Validation', () => { name: 'orders_view', isView: true, fileName: 'fileName', - filters: [ + defaultFilters: [ { member: () => 'currency', operator: 'equals', @@ -239,7 +239,7 @@ describe('Cube Validation', () => { name: 'orders_view', isView: true, fileName: 'fileName', - filters: [ + defaultFilters: [ { member: () => 'currency', operator: 'equals', @@ -260,7 +260,7 @@ describe('Cube Validation', () => { name: 'orders_view', isView: true, fileName: 'fileName', - filters: [ + defaultFilters: [ { member: () => 'currency', operator: 'set', @@ -279,7 +279,7 @@ describe('Cube Validation', () => { name: 'orders_view', isView: true, fileName: 'fileName', - filters: [ + defaultFilters: [ { member: () => 'currency', operator: 'equals', @@ -298,7 +298,7 @@ describe('Cube Validation', () => { name: 'orders_view', isView: true, fileName: 'fileName', - filters: [ + defaultFilters: [ { operator: 'equals', values: () => ['USD'], @@ -317,7 +317,7 @@ describe('Cube Validation', () => { name: 'orders_view', isView: true, fileName: 'fileName', - filters: [ + defaultFilters: [ { member: () => 'currency', operator: 'someInvalidOperator', @@ -337,7 +337,7 @@ describe('Cube Validation', () => { name: 'orders', sql: () => 'SELECT * FROM orders', fileName: 'fileName', - filters: [ + defaultFilters: [ { member: () => 'currency', operator: 'equals', diff --git a/packages/cubejs-schema-compiler/test/unit/schema.test.ts b/packages/cubejs-schema-compiler/test/unit/schema.test.ts index 1277ced23d079..4b9adced18777 100644 --- a/packages/cubejs-schema-compiler/test/unit/schema.test.ts +++ b/packages/cubejs-schema-compiler/test/unit/schema.test.ts @@ -571,7 +571,7 @@ describe('Schema Testing', () => { compiler.throwIfAnyErrors(); const view = cubeEvaluator.evaluatedCubes.orders_view; - const filters = view.filters!; + const filters = view.defaultFilters!; expect(filters).toHaveLength(3); expect(filters[0].operator).toBe('equals'); @@ -606,7 +606,7 @@ describe('Schema Testing', () => { view(\`orders_view\`, { cubes: [{ join_path: orders, includes: '*' }], - filters: [ + defaultFilters: [ { member: \`currency\`, operator: 'set' }, { member: \`orders.currency\`, operator: 'set' }, { member: \`orders_view.currency\`, operator: 'set' }, @@ -617,7 +617,7 @@ describe('Schema Testing', () => { await compiler.compile(); compiler.throwIfAnyErrors(); - const filters = cubeEvaluator.evaluatedCubes.orders_view.filters!; + const filters = cubeEvaluator.evaluatedCubes.orders_view.defaultFilters!; expect(filters.map(f => f.memberReference)).toEqual([ 'orders_view.currency', 'orders_view.currency', @@ -644,7 +644,7 @@ describe('Schema Testing', () => { join_path: orders, includes: ['id', 'currency'], }], - filters: [ + defaultFilters: [ { member: \`country\`, operator: 'set' }, ], }) @@ -681,7 +681,7 @@ describe('Schema Testing', () => { join_path: orders, includes: ['id', 'currency'], }], - filters: [ + defaultFilters: [ { member: \`currency\`, operator: 'set', unless: [\`country\`] }, ], }) @@ -712,7 +712,7 @@ describe('Schema Testing', () => { view(\`orders_view\`, { cubes: [{ join_path: orders, includes: '*' }], - filters: [ + defaultFilters: [ { member: \`other.currency\`, operator: 'set' }, ], }) diff --git a/packages/cubejs-schema-compiler/test/unit/utils.ts b/packages/cubejs-schema-compiler/test/unit/utils.ts index c2a1a76c983da..61d9c68dfe588 100644 --- a/packages/cubejs-schema-compiler/test/unit/utils.ts +++ b/packages/cubejs-schema-compiler/test/unit/utils.ts @@ -409,7 +409,7 @@ export function createViewSchemaWithDefaultValueFilter(): string { join_path: orders, includes: '*', }], - filters: [ + defaultFilters: [ { member: \`currency\`, operator: 'equals', diff --git a/rust/cube/cubesqlplanner/cubesqlplanner/src/cube_bridge/cube_definition.rs b/rust/cube/cubesqlplanner/cubesqlplanner/src/cube_bridge/cube_definition.rs index c404edf2a74b0..a7014c2aacbeb 100644 --- a/rust/cube/cubesqlplanner/cubesqlplanner/src/cube_bridge/cube_definition.rs +++ b/rust/cube/cubesqlplanner/cubesqlplanner/src/cube_bridge/cube_definition.rs @@ -41,5 +41,5 @@ pub trait CubeDefinition { #[nbridge(field, optional)] fn sql(&self) -> Result>, CubeError>; #[nbridge(field, optional, vec)] - fn filters(&self) -> Result>>, CubeError>; + fn default_filters(&self) -> Result>>, CubeError>; } diff --git a/rust/cube/cubesqlplanner/cubesqlplanner/src/planner/query_properties_compiler.rs b/rust/cube/cubesqlplanner/cubesqlplanner/src/planner/query_properties_compiler.rs index 66a15065ee1f6..f6c64760938e2 100644 --- a/rust/cube/cubesqlplanner/cubesqlplanner/src/planner/query_properties_compiler.rs +++ b/rust/cube/cubesqlplanner/cubesqlplanner/src/planner/query_properties_compiler.rs @@ -450,7 +450,7 @@ impl QueryPropertiesCompiler { if !cube_def.static_data().is_view.unwrap_or(false) { continue; } - if let Some(view_filters) = cube_def.filters()? { + if let Some(view_filters) = cube_def.default_filters()? { pending_view_filters.extend(view_filters); } } diff --git a/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/mock_cube_definition.rs b/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/mock_cube_definition.rs index 4c6054327dc46..be8b7734bfcd3 100644 --- a/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/mock_cube_definition.rs +++ b/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/mock_cube_definition.rs @@ -32,7 +32,7 @@ pub struct MockCubeDefinition { joins: HashMap, #[builder(default)] - filters: Vec, + default_filters: Vec, } impl_static_data!( @@ -70,16 +70,16 @@ impl CubeDefinition for MockCubeDefinition { } } - fn has_filters(&self) -> Result { - Ok(!self.filters.is_empty()) + fn has_default_filters(&self) -> Result { + Ok(!self.default_filters.is_empty()) } - fn filters(&self) -> Result>>, CubeError> { - if self.filters.is_empty() { + fn default_filters(&self) -> Result>>, CubeError> { + if self.default_filters.is_empty() { Ok(None) } else { Ok(Some( - self.filters + self.default_filters .iter() .map(|f| Rc::new(f.clone()) as Rc) .collect(), @@ -308,8 +308,8 @@ mod tests { .sql("SELECT * FROM orders".to_string()) .build(); - assert!(!view.has_filters().unwrap()); - assert!(view.filters().unwrap().is_none()); + assert!(!view.has_default_filters().unwrap()); + assert!(view.default_filters().unwrap().is_none()); } #[test] @@ -318,7 +318,7 @@ mod tests { .name("orders_view".to_string()) .is_view(Some(true)) .sql("SELECT * FROM orders".to_string()) - .filters(vec![ + .default_filters(vec![ MockViewFilterDefinition::builder() .operator("equals".to_string()) .member_reference("orders.currency".to_string()) @@ -332,8 +332,8 @@ mod tests { ]) .build(); - assert!(view.has_filters().unwrap()); - let filters = view.filters().unwrap().unwrap(); + assert!(view.has_default_filters().unwrap()); + let filters = view.default_filters().unwrap().unwrap(); assert_eq!(filters.len(), 2); let first = filters[0].static_data(); diff --git a/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/mock_schema.rs b/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/mock_schema.rs index aa5b1d17555e9..d79f3e80ff148 100644 --- a/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/mock_schema.rs +++ b/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/mock_schema.rs @@ -641,7 +641,7 @@ impl MockViewBuilder { let view_def = MockCubeDefinition::builder() .name(self.view_name.clone()) .is_view(Some(true)) - .filters(self.default_filters) + .default_filters(self.default_filters) .build(); let view_cube = MockCube { diff --git a/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/yaml/schema.rs b/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/yaml/schema.rs index fbf2cd109b099..b7d92ad94ef96 100644 --- a/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/yaml/schema.rs +++ b/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/cube_bridge/yaml/schema.rs @@ -79,11 +79,11 @@ struct YamlView { name: String, cubes: Vec, #[serde(default)] - filters: Vec, + default_filters: Vec, } #[derive(Debug, Deserialize)] -struct YamlViewFilter { +struct YamlViewDefaultFilter { member: String, operator: String, #[serde(default)] @@ -185,7 +185,7 @@ impl YamlSchema { view_builder.include_cube_with_prefix(view_cube.join_path, includes, prefix); } - for filter in view.filters { + for filter in view.default_filters { let mock_filter = MockViewFilterDefinition::builder() .operator(filter.operator) .member_reference(filter.member) diff --git a/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/schemas/yaml_files/common/view_default_filters.yaml b/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/schemas/yaml_files/common/view_default_filters.yaml index 69615ff86f1e2..7c242177e5556 100644 --- a/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/schemas/yaml_files/common/view_default_filters.yaml +++ b/rust/cube/cubesqlplanner/cubesqlplanner/src/test_fixtures/schemas/yaml_files/common/view_default_filters.yaml @@ -46,7 +46,7 @@ views: cubes: - join_path: orders includes: "*" - filters: + default_filters: - member: orders_view.currency operator: equals values: @@ -56,7 +56,7 @@ views: cubes: - join_path: orders includes: "*" - filters: + default_filters: - member: orders_view_with_unless.currency operator: equals values: