Skip to content

Commit 9863c35

Browse files
authored
chore: Update to views spec (#6518)
* chore: Update to spec views * fixes
1 parent e27a525 commit 9863c35

File tree

3 files changed

+18
-13
lines changed

3 files changed

+18
-13
lines changed

packages/cubejs-schema-compiler/src/compiler/CubeEvaluator.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -196,23 +196,23 @@ export class CubeEvaluator extends CubeSymbols {
196196
const fullPath = this.evaluateReferences(null, cubeInclude.cube, { collectJoinHints: true });
197197
const split = fullPath.split('.');
198198
const cubeReference = split[split.length - 1];
199-
const cubeName = cubeInclude.name || cubeReference;
199+
const cubeName = cubeInclude.alias || cubeReference;
200200
let includes;
201201
if (cubeInclude.includes === '*') {
202202
const membersObj = this.symbols[cubeReference]?.cubeObj()?.[type] || {};
203203
includes = Object.keys(membersObj).map(memberName => ({ member: `${fullPath}.${memberName}` }));
204204
} else {
205205
includes = cubeInclude.includes.map(include => {
206-
const member = include.member || include;
206+
const member = include.alias || include;
207207
if (member.indexOf('.') !== -1) {
208208
errorReporter.error(`Paths aren't allowed in cube includes but '${member}' provided as include member`);
209209
}
210-
let name = include.name || member;
210+
let name = include.alias || member;
211211
name = cubeInclude.prefix ? `${cubeName}_${name}` : name;
212-
if (include.member) {
213-
const resolvedMember = this.symbols[cubeReference]?.cubeObj()?.[type]?.[include.member];
212+
if (include.name) {
213+
const resolvedMember = this.symbols[cubeReference]?.cubeObj()?.[type]?.[include.name];
214214
return resolvedMember ? {
215-
member: `${fullPath}.${include.member}`,
215+
member: `${fullPath}.${include.name}`,
216216
name,
217217
} : undefined;
218218
} else {

packages/cubejs-schema-compiler/src/compiler/CubeValidator.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -541,14 +541,14 @@ const viewSchema = inherit(baseSchema, {
541541
Joi.object().keys({
542542
cube: Joi.func().required(),
543543
prefix: Joi.boolean(),
544-
name: Joi.string(),
544+
alias: Joi.string(),
545545
includes: Joi.alternatives([
546546
Joi.string().valid('*'),
547547
Joi.array().items(Joi.alternatives([
548548
Joi.string().required(),
549549
Joi.object().keys({
550-
member: Joi.string().required(),
551-
name: Joi.string()
550+
name: Joi.string().required(),
551+
alias: Joi.string()
552552
})
553553
]))
554554
]).required(),

packages/cubejs-schema-compiler/test/integration/postgres/yaml-compiler.test.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -346,22 +346,26 @@ cubes:
346346
347347
views:
348348
- name: orders_view
349+
349350
cubes:
350351
- cube: orders
351352
prefix: true
352353
includes:
353354
- count
354-
- member: time
355-
name: date
355+
- name: time
356+
alias: date
357+
356358
- cube: orders.customers
359+
alias: aliased_customers
360+
prefix: true
357361
includes:
358362
- name
359363
`);
360364
await compiler.compile();
361365

362366
const query = new PostgresQuery({ joinGraph, cubeEvaluator, compiler }, {
363367
measures: ['orders_view.orders_count'],
364-
dimensions: ['orders_view.name'],
368+
dimensions: ['orders_view.aliased_customers_name'],
365369
timeDimensions: [{
366370
dimension: 'orders_view.orders_date',
367371
granularity: 'day',
@@ -374,12 +378,13 @@ views:
374378
console.log(query.buildSqlAndParams());
375379

376380
const res = await dbRunner.evaluateQueryWithPreAggregations(query);
381+
377382
console.log(JSON.stringify(res));
378383

379384
expect(res).toEqual(
380385
[{
381386
orders_view__orders_count: '1',
382-
orders_view__name: 'Foo',
387+
orders_view__aliased_customers_name: 'Foo',
383388
orders_view__orders_date_day: '2022-01-01T00:00:00.000Z',
384389
}]
385390
);

0 commit comments

Comments
 (0)