@@ -296,6 +296,7 @@ describe('SQL Generation', () => {
296296 \${FILTER_PARAMS.visitor_checkins.created_at.filter('created_at')} AND
297297 \${FILTER_GROUP(FILTER_PARAMS.visitor_checkins.created_at.filter("(created_at - INTERVAL '3 DAY')"), FILTER_PARAMS.visitor_checkins.source.filter('source'))}
298298 \`,
299+ sql_alias: \`vc\`,
299300
300301 rewriteQueries: true,
301302
@@ -568,28 +569,28 @@ describe('SQL Generation', () => {
568569 visitors__created_at_day : '2017-01-02T00:00:00.000Z' ,
569570 visitors__visitor_revenue : '100' ,
570571 visitors__visitor_count : '1' ,
571- visitor_checkins__visitor_checkins_count : '3' ,
572+ vc__visitor_checkins_count : '3' ,
572573 visitors__per_visitor_revenue : '100'
573574 } ,
574575 {
575576 visitors__created_at_day : '2017-01-04T00:00:00.000Z' ,
576577 visitors__visitor_revenue : '200' ,
577578 visitors__visitor_count : '1' ,
578- visitor_checkins__visitor_checkins_count : '2' ,
579+ vc__visitor_checkins_count : '2' ,
579580 visitors__per_visitor_revenue : '200'
580581 } ,
581582 {
582583 visitors__created_at_day : '2017-01-05T00:00:00.000Z' ,
583584 visitors__visitor_revenue : null ,
584585 visitors__visitor_count : '1' ,
585- visitor_checkins__visitor_checkins_count : '1' ,
586+ vc__visitor_checkins_count : '1' ,
586587 visitors__per_visitor_revenue : null
587588 } ,
588589 {
589590 visitors__created_at_day : '2017-01-06T00:00:00.000Z' ,
590591 visitors__visitor_revenue : null ,
591592 visitors__visitor_count : '2' ,
592- visitor_checkins__visitor_checkins_count : '0' ,
593+ vc__visitor_checkins_count : '0' ,
593594 visitors__per_visitor_revenue : null
594595 }
595596 ]
@@ -627,7 +628,7 @@ describe('SQL Generation', () => {
627628 } , [ {
628629 visitors__visitor_revenue : '300' ,
629630 visitors__visitor_count : '5' ,
630- visitor_checkins__visitor_checkins_count : '6' ,
631+ vc__visitor_checkins_count : '6' ,
631632 visitors__per_visitor_revenue : '60'
632633 } ] ) ) ;
633634
@@ -748,22 +749,22 @@ describe('SQL Generation', () => {
748749 {
749750 visitors__created_at_day : '2017-01-02T00:00:00.000Z' ,
750751 visitors__revenue_rolling : null ,
751- visitor_checkins__visitor_checkins_count : '3'
752+ vc__visitor_checkins_count : '3'
752753 } ,
753754 {
754755 visitors__created_at_day : '2017-01-04T00:00:00.000Z' ,
755756 visitors__revenue_rolling : '100' ,
756- visitor_checkins__visitor_checkins_count : '2'
757+ vc__visitor_checkins_count : '2'
757758 } ,
758759 {
759760 visitors__created_at_day : '2017-01-05T00:00:00.000Z' ,
760761 visitors__revenue_rolling : '200' ,
761- visitor_checkins__visitor_checkins_count : '1'
762+ vc__visitor_checkins_count : '1'
762763 } ,
763764 {
764765 visitors__created_at_day : '2017-01-06T00:00:00.000Z' ,
765766 visitors__revenue_rolling : '500' ,
766- visitor_checkins__visitor_checkins_count : '0'
767+ vc__visitor_checkins_count : '0'
767768 }
768769 ] ) ) ;
769770
@@ -979,7 +980,7 @@ describe('SQL Generation', () => {
979980 return dbRunner . testQuery ( query . buildSqlAndParams ( ) ) . then ( res => {
980981 console . log ( JSON . stringify ( res ) ) ;
981982 expect ( res ) . toEqual (
982- [ { visitor_checkins__revenue_per_checkin : '50' } ]
983+ [ { vc__revenue_per_checkin : '50' } ]
983984 ) ;
984985 } ) ;
985986 } ) ;
@@ -1000,7 +1001,7 @@ describe('SQL Generation', () => {
10001001 return dbRunner . testQuery ( query . buildSqlAndParams ( ) ) . then ( res => {
10011002 console . log ( JSON . stringify ( res ) ) ;
10021003 expect ( res ) . toEqual (
1003- [ { visitor_checkins__google_sourced_checkins : '1' } ]
1004+ [ { vc__google_sourced_checkins : '1' } ]
10041005 ) ;
10051006 } ) ;
10061007 } ) ;
@@ -1024,7 +1025,7 @@ describe('SQL Generation', () => {
10241025 return dbRunner . testQuery ( query . buildSqlAndParams ( ) ) . then ( res => {
10251026 console . log ( JSON . stringify ( res ) ) ;
10261027 expect ( res ) . toEqual (
1027- [ { visitor_checkins__google_sourced_checkins : '1' } ]
1028+ [ { vc__google_sourced_checkins : '1' } ]
10281029 ) ;
10291030 } ) ;
10301031 } ) ;
@@ -1435,19 +1436,78 @@ describe('SQL Generation', () => {
14351436 } ]
14361437 } , [
14371438 {
1438- visitor_checkins__cards_count : '0' ,
1439+ vc__cards_count : '0' ,
14391440 visitors__visitor_revenue : '300'
14401441 } ,
14411442 {
1442- visitor_checkins__cards_count : '1' ,
1443+ vc__cards_count : '1' ,
14431444 visitors__visitor_revenue : '100'
14441445 } ,
14451446 {
1446- visitor_checkins__cards_count : null ,
1447+ vc__cards_count : null ,
14471448 visitors__visitor_revenue : null
14481449 }
14491450 ] ) ) ;
14501451
1452+ it ( 'ungrouped cumulative query' , async ( ) => {
1453+ await compiler . compile ( ) ;
1454+
1455+ const query = new PostgresQuery ( { joinGraph, cubeEvaluator, compiler } , {
1456+ measures : [
1457+ 'visitor_checkins.visitor_checkins_count' ,
1458+ 'visitor_checkins.visitorCheckinsRolling' ,
1459+ ] ,
1460+ dimensions : [
1461+ 'visitor_checkins.id'
1462+ ] ,
1463+ timeDimensions : [ {
1464+ dimension : 'visitor_checkins.created_at' ,
1465+ granularity : 'day' ,
1466+ dateRange : [ '2017-01-01' , '2017-01-30' ]
1467+ } ] ,
1468+ timezone : 'America/Los_Angeles' ,
1469+ filters : [ ] ,
1470+ order : [ {
1471+ id : 'visitor_checkins.id'
1472+ } ] ,
1473+ ungrouped : true
1474+ } ) ;
1475+
1476+ console . log ( query . buildSqlAndParams ( ) ) ;
1477+
1478+ return dbRunner . testQuery ( query . buildSqlAndParams ( ) ) . then ( res => {
1479+ console . log ( JSON . stringify ( res ) ) ;
1480+ expect ( res ) . toEqual (
1481+ [
1482+ {
1483+ vc__id : 3 ,
1484+ vc__created_at_day : '2017-01-04T00:00:00.000Z' ,
1485+ vc__visitor_checkins_count : 1 ,
1486+ vc__visitor_checkins_rolling : 1
1487+ } ,
1488+ {
1489+ vc__id : 4 ,
1490+ vc__created_at_day : '2017-01-04T00:00:00.000Z' ,
1491+ vc__visitor_checkins_count : 1 ,
1492+ vc__visitor_checkins_rolling : 1
1493+ } ,
1494+ {
1495+ vc__id : 5 ,
1496+ vc__created_at_day : '2017-01-04T00:00:00.000Z' ,
1497+ vc__visitor_checkins_count : 1 ,
1498+ vc__visitor_checkins_rolling : 1
1499+ } ,
1500+ {
1501+ vc__id : 6 ,
1502+ vc__created_at_day : '2017-01-05T00:00:00.000Z' ,
1503+ vc__visitor_checkins_count : 1 ,
1504+ vc__visitor_checkins_rolling : 1
1505+ }
1506+ ]
1507+ ) ;
1508+ } ) ;
1509+ } ) ;
1510+
14511511 it ( 'join rollup pre-aggregation' , async ( ) => {
14521512 await compiler . compile ( ) ;
14531513
@@ -1490,7 +1550,7 @@ describe('SQL Generation', () => {
14901550 expect ( res ) . toEqual (
14911551 [
14921552 {
1493- visitor_checkins__source : 'google' ,
1553+ vc__source : 'google' ,
14941554 visitors__created_at_day : '2017-01-02T00:00:00.000Z' ,
14951555 visitors__per_visitor_revenue : '100'
14961556 }
@@ -1537,7 +1597,7 @@ describe('SQL Generation', () => {
15371597 console . log ( JSON . stringify ( res ) ) ;
15381598 expect ( res ) . toEqual (
15391599 [ {
1540- visitor_checkins__source : 'google' ,
1600+ vc__source : 'google' ,
15411601 visitors__created_at_day : '2017-01-02T00:00:00.000Z' ,
15421602 visitors__visitor_revenue : '100'
15431603 } ]
@@ -1564,7 +1624,7 @@ describe('SQL Generation', () => {
15641624 return dbRunner . testQuery ( query . buildSqlAndParams ( ) ) . then ( res => {
15651625 console . log ( JSON . stringify ( res ) ) ;
15661626 expect ( res ) . toEqual (
1567- [ { visitor_checkins__revenue_per_checkin : '60' } ]
1627+ [ { vc__revenue_per_checkin : '60' } ]
15681628 ) ;
15691629 } ) ;
15701630 } ) ;
@@ -1590,7 +1650,7 @@ describe('SQL Generation', () => {
15901650 return dbRunner . testQuery ( query . buildSqlAndParams ( ) ) . then ( res => {
15911651 console . log ( JSON . stringify ( res ) ) ;
15921652 expect ( res ) . toEqual (
1593- [ { visitor_checkins__revenue_per_checkin : '50' } ]
1653+ [ { vc__revenue_per_checkin : '50' } ]
15941654 ) ;
15951655 } ) ;
15961656 } ) ;
@@ -1635,12 +1695,12 @@ describe('SQL Generation', () => {
16351695 ungrouped : true ,
16361696 allowUngroupedWithoutPrimaryKey : true ,
16371697 } , [
1638- { visitor_checkins__created_at_day : '2017-01-02T00:00:00.000Z' , visitor_checkins__google_sourced_checkins : null } ,
1639- { visitor_checkins__created_at_day : '2017-01-03T00:00:00.000Z' , visitor_checkins__google_sourced_checkins : null } ,
1640- { visitor_checkins__created_at_day : '2017-01-04T00:00:00.000Z' , visitor_checkins__google_sourced_checkins : null } ,
1641- { visitor_checkins__created_at_day : '2017-01-04T00:00:00.000Z' , visitor_checkins__google_sourced_checkins : null } ,
1642- { visitor_checkins__created_at_day : '2017-01-04T00:00:00.000Z' , visitor_checkins__google_sourced_checkins : null } ,
1643- { visitor_checkins__created_at_day : '2017-01-05T00:00:00.000Z' , visitor_checkins__google_sourced_checkins : 1 } ,
1698+ { vc__created_at_day : '2017-01-02T00:00:00.000Z' , vc__google_sourced_checkins : null } ,
1699+ { vc__created_at_day : '2017-01-03T00:00:00.000Z' , vc__google_sourced_checkins : null } ,
1700+ { vc__created_at_day : '2017-01-04T00:00:00.000Z' , vc__google_sourced_checkins : null } ,
1701+ { vc__created_at_day : '2017-01-04T00:00:00.000Z' , vc__google_sourced_checkins : null } ,
1702+ { vc__created_at_day : '2017-01-04T00:00:00.000Z' , vc__google_sourced_checkins : null } ,
1703+ { vc__created_at_day : '2017-01-05T00:00:00.000Z' , vc__google_sourced_checkins : 1 } ,
16441704 ] ) ) ;
16451705
16461706 it ( 'ungrouped filtered distinct count' , ( ) => runQueryTest ( {
@@ -1659,12 +1719,12 @@ describe('SQL Generation', () => {
16591719 ungrouped : true ,
16601720 allowUngroupedWithoutPrimaryKey : true ,
16611721 } , [
1662- { visitor_checkins__created_at_day : '2017-01-02T00:00:00.000Z' , visitor_checkins__unique_google_sourced_checkins : null } ,
1663- { visitor_checkins__created_at_day : '2017-01-03T00:00:00.000Z' , visitor_checkins__unique_google_sourced_checkins : null } ,
1664- { visitor_checkins__created_at_day : '2017-01-04T00:00:00.000Z' , visitor_checkins__unique_google_sourced_checkins : null } ,
1665- { visitor_checkins__created_at_day : '2017-01-04T00:00:00.000Z' , visitor_checkins__unique_google_sourced_checkins : null } ,
1666- { visitor_checkins__created_at_day : '2017-01-04T00:00:00.000Z' , visitor_checkins__unique_google_sourced_checkins : null } ,
1667- { visitor_checkins__created_at_day : '2017-01-05T00:00:00.000Z' , visitor_checkins__unique_google_sourced_checkins : 1 } ,
1722+ { vc__created_at_day : '2017-01-02T00:00:00.000Z' , vc__unique_google_sourced_checkins : null } ,
1723+ { vc__created_at_day : '2017-01-03T00:00:00.000Z' , vc__unique_google_sourced_checkins : null } ,
1724+ { vc__created_at_day : '2017-01-04T00:00:00.000Z' , vc__unique_google_sourced_checkins : null } ,
1725+ { vc__created_at_day : '2017-01-04T00:00:00.000Z' , vc__unique_google_sourced_checkins : null } ,
1726+ { vc__created_at_day : '2017-01-04T00:00:00.000Z' , vc__unique_google_sourced_checkins : null } ,
1727+ { vc__created_at_day : '2017-01-05T00:00:00.000Z' , vc__unique_google_sourced_checkins : 1 } ,
16681728 ] ) ) ;
16691729
16701730 it ( 'ungrouped ratio measure' , ( ) => runQueryTest ( {
@@ -1683,12 +1743,12 @@ describe('SQL Generation', () => {
16831743 ungrouped : true ,
16841744 allowUngroupedWithoutPrimaryKey : true ,
16851745 } , [
1686- { visitor_checkins__created_at_day : '2017-01-02T00:00:00.000Z' , visitor_checkins__unique_sources_per_checking : 1 } ,
1687- { visitor_checkins__created_at_day : '2017-01-03T00:00:00.000Z' , visitor_checkins__unique_sources_per_checking : 1 } ,
1688- { visitor_checkins__created_at_day : '2017-01-04T00:00:00.000Z' , visitor_checkins__unique_sources_per_checking : 1 } ,
1689- { visitor_checkins__created_at_day : '2017-01-04T00:00:00.000Z' , visitor_checkins__unique_sources_per_checking : 1 } ,
1690- { visitor_checkins__created_at_day : '2017-01-04T00:00:00.000Z' , visitor_checkins__unique_sources_per_checking : 1 } ,
1691- { visitor_checkins__created_at_day : '2017-01-05T00:00:00.000Z' , visitor_checkins__unique_sources_per_checking : 1 } ,
1746+ { vc__created_at_day : '2017-01-02T00:00:00.000Z' , vc__unique_sources_per_checking : 1 } ,
1747+ { vc__created_at_day : '2017-01-03T00:00:00.000Z' , vc__unique_sources_per_checking : 1 } ,
1748+ { vc__created_at_day : '2017-01-04T00:00:00.000Z' , vc__unique_sources_per_checking : 1 } ,
1749+ { vc__created_at_day : '2017-01-04T00:00:00.000Z' , vc__unique_sources_per_checking : 1 } ,
1750+ { vc__created_at_day : '2017-01-04T00:00:00.000Z' , vc__unique_sources_per_checking : 1 } ,
1751+ { vc__created_at_day : '2017-01-05T00:00:00.000Z' , vc__unique_sources_per_checking : 1 } ,
16921752 ] ) ) ;
16931753
16941754 it ( 'builds geo dimension' , ( ) => runQueryTest ( {
@@ -2116,7 +2176,7 @@ describe('SQL Generation', () => {
21162176 } ] ,
21172177 order : [ ]
21182178 } , [
2119- { visitor_checkins__visitor_checkins_count : '4' }
2179+ { vc__visitor_checkins_count : '4' }
21202180 ] )
21212181 ) ;
21222182
@@ -2150,7 +2210,7 @@ describe('SQL Generation', () => {
21502210 } ] ,
21512211 order : [ ]
21522212 } , [
2153- { visitor_checkins__visitor_checkins_count : '4' }
2213+ { vc__visitor_checkins_count : '4' }
21542214 ] )
21552215 ) ;
21562216
@@ -2168,7 +2228,7 @@ describe('SQL Generation', () => {
21682228 } ] ,
21692229 order : [ ]
21702230 } , [
2171- { visitor_checkins__visitor_checkins_count : '4' }
2231+ { vc__visitor_checkins_count : '4' }
21722232 ] )
21732233 ) ;
21742234
@@ -2204,7 +2264,7 @@ describe('SQL Generation', () => {
22042264 } ] ,
22052265 order : [ ]
22062266 } , [
2207- { visitor_checkins__visitor_checkins_count : '1' }
2267+ { vc__visitor_checkins_count : '1' }
22082268 ] )
22092269 ) ;
22102270
@@ -2244,7 +2304,7 @@ describe('SQL Generation', () => {
22442304 } ] ,
22452305 order : [ ]
22462306 } , [
2247- { visitor_checkins__visitor_checkins_count : '1' }
2307+ { vc__visitor_checkins_count : '1' }
22482308 ] )
22492309 ) ;
22502310
@@ -2711,11 +2771,11 @@ describe('SQL Generation', () => {
27112771 [ {
27122772 visitors__percentage_of_total : 9 ,
27132773 visitors__revenue : '100' ,
2714- visitor_checkins__source : 'google'
2774+ vc__source : 'google'
27152775 } , {
27162776 visitors__percentage_of_total : 91 ,
27172777 visitors__revenue : '1000' ,
2718- visitor_checkins__source : null
2778+ vc__source : null
27192779 } ]
27202780 ) ) ;
27212781
0 commit comments