@@ -173,6 +173,13 @@ describe('PreAggregations', () => {
173173 timeDimensionReference: createdAt,
174174 granularity: 'day'
175175 },
176+ uniqueSourceCountRollup: {
177+ type: 'rollup',
178+ measures: [uniqueSourceCount],
179+ dimensions: [source],
180+ timeDimension: createdAt,
181+ granularity: 'day'
182+ },
176183 forJoin: {
177184 type: 'rollup',
178185 dimensionReferences: [id, source]
@@ -458,7 +465,7 @@ describe('PreAggregations', () => {
458465 view('visitors_view', {
459466 cubes: [{
460467 join_path: visitors,
461- includes: ['uniqueSourceCount', 'ratio', 'createdAt', 'signedUpAt']
468+ includes: ['uniqueSourceCount', 'ratio', 'createdAt', 'signedUpAt', 'source' ]
462469 }]
463470 });
464471 ` ) ;
@@ -645,6 +652,46 @@ describe('PreAggregations', () => {
645652 } ) ;
646653 } ) ) ;
647654
655+ it ( 'non-additive single value view filter' , ( ) => compiler . compile ( ) . then ( ( ) => {
656+ const query = new PostgresQuery ( { joinGraph, cubeEvaluator, compiler } , {
657+ measures : [
658+ 'visitors_view.uniqueSourceCount'
659+ ] ,
660+ timeDimensions : [ {
661+ dimension : 'visitors_view.signedUpAt' ,
662+ granularity : 'day' ,
663+ dateRange : [ '2017-01-01' , '2017-01-30' ]
664+ } ] ,
665+ filters : [ {
666+ dimension : 'visitors_view.source' ,
667+ operator : 'equals' ,
668+ values : [ 'google' ]
669+ } ] ,
670+ timezone : 'America/Los_Angeles' ,
671+ order : [ {
672+ id : 'visitors_view.createdAt'
673+ } ] ,
674+ preAggregationsSchema : ''
675+ } ) ;
676+
677+ const queryAndParams = query . buildSqlAndParams ( ) ;
678+ console . log ( queryAndParams ) ;
679+ const preAggregationsDescription = query . preAggregations ?. preAggregationsDescription ( ) ;
680+ console . log ( preAggregationsDescription ) ;
681+ expect ( ( < any > preAggregationsDescription ) [ 0 ] . loadSql [ 0 ] ) . toMatch ( / v i s i t o r s _ u n i q u e _ s o u r c e _ c o u n t / ) ;
682+
683+ return dbRunner . evaluateQueryWithPreAggregations ( query ) . then ( res => {
684+ expect ( res ) . toEqual (
685+ [
686+ {
687+ visitors_view__signed_up_at_day : '2017-01-05T00:00:00.000Z' ,
688+ visitors_view__unique_source_count : '1'
689+ }
690+ ]
691+ ) ;
692+ } ) ;
693+ } ) ) ;
694+
648695 it ( 'inherited original sql' , ( ) => compiler . compile ( ) . then ( ( ) => {
649696 const query = new PostgresQuery ( { joinGraph, cubeEvaluator, compiler } , {
650697 measures : [
0 commit comments