Skip to content

Commit 7ca9497

Browse files
committed
refactor(schema-compiler): Use ownedByCube instead of isView for filtering
1 parent 4bf4da7 commit 7ca9497

File tree

1 file changed

+6
-12
lines changed

1 file changed

+6
-12
lines changed

packages/cubejs-schema-compiler/src/adapter/BaseQuery.js

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1732,12 +1732,10 @@ export class BaseQuery {
17321732
this.queryCache
17331733
);
17341734
const cubeNamesForMeasure = R.pipe(
1735-
R.map(mem => this.cubeEvaluator.parsePathAnyType(mem)[0]),
1736-
// Filtering views, because collectMemberNamesFor can return both view.dim and cube.dim
1737-
R.filter(cubeName => {
1738-
const cubeDef = this.cubeEvaluator.getCubeDefinition(cubeName);
1739-
return !cubeDef.isView;
1740-
}),
1735+
R.map(member => this.memberInstanceByPath(member)),
1736+
// collectMemberNamesFor can return both view.dim and cube.dim
1737+
R.filter(member => member.definition().ownedByCube),
1738+
R.map(member => member.cube()),
17411739
// Single member expression can reference multiple dimensions from same cube
17421740
R.uniq,
17431741
)(
@@ -2056,12 +2054,8 @@ export class BaseQuery {
20562054
);
20572055

20582056
const nonViewMembers = memberNamesForMeasure
2059-
.filter(mem => {
2060-
const cubeName = this.cubeEvaluator.parsePathAnyType(mem)[0];
2061-
const cubeDef = this.cubeEvaluator.getCubeDefinition(cubeName);
2062-
return !cubeDef.isView;
2063-
})
2064-
.map(m => this.memberInstanceByPath(m));
2057+
.map(member => this.memberInstanceByPath(member))
2058+
.filter(member => member.definition().ownedByCube);
20652059

20662060
const cubes = this.collectFrom(nonViewMembers, this.collectCubeNamesFor.bind(this), 'collectCubeNamesFor');
20672061
const joinHints = this.collectFrom(nonViewMembers, this.collectJoinHintsFor.bind(this), 'collectJoinHintsFor');

0 commit comments

Comments
 (0)