I want to put an index on my rollup pre-aggregation cube js table :
preAggregations: {
projectDate: {
type: `rollup`,
measureReferences: [count, amount],
dimensionReferences: [state, Projects.slug],
timeDimensionReference: confirmedAt,
granularity: `day`,
refreshKey: {
every: '1 day'
},
indexes: {
main: {
columns: [state]
}
}
},
}
However, the cube does not compile and I get the following error :
Error: Compile errors:
ShopperOrders.js:84
columns: [state]
^
ReferenceError: state is not defined
at ShopperOrders.js:84:21
at Script.runInContext (vm.js:127:20)
at Script.runInNewContext (vm.js:133:17)
at Object.runInNewContext (vm.js:299:38)
at DataSchemaCompiler.compileFile
My state
dimension is well defined, and the preaggregation works when I remove the index. Here is the schema :
cube(`ShopperOrders`, {
sql: `SELECT * FROM shopper_orders`,
joins: {
ShopperOrderLines: {
sql: `${CUBE}.id = ${ShopperOrderLines}.order_id`,
relationship: `hasMany`
}
},
measures: {
count: {
type: `count`
},
amount: {
sql: `amount`,
type: `sum`
},
},
dimensions: {
id: {
sql: `id`,
type: `number`,
primaryKey: true
},
state: {
sql: `state`,
type: `string`
},
confirmedAt: {
sql: `confirmed_at`,
type: `time`
}
},
preAggregations: {
projectDate: {
type: `rollup`,
measureReferences: [count, amount],
dimensionReferences: [state, Projects.slug],
timeDimensionReference: confirmedAt,
granularity: `day`,
refreshKey: {
every: '1 day'
},
index: {
main: {
columns: [state]
}
}
},
}
});
Do you know what could I've mis-declared or omitted ?
I used the example given in the doc: https://cube.dev/docs/pre-aggregations#indexes