@@ -4293,69 +4293,81 @@ cubes:
42934293 type: string
42944294 ` ) ;
42954295
4296- it ( 'querying cube dimension that require transitive joins' , async ( ) => {
4297- await compiler . compile ( ) ;
4298- const query = new PostgresQuery ( { joinGraph, cubeEvaluator, compiler } , {
4299- measures : [ ] ,
4300- dimensions : [
4301- 'test_facts.reporting_date' ,
4302- 'test_facts.merchant_sk' ,
4303- 'test_facts.product_sk' ,
4304- 'test_facts.acquisition_channel'
4305- ] ,
4306- order : [ {
4307- id : 'test_facts.acquisition_channel'
4308- } ] ,
4309- timezone : 'America/Los_Angeles'
4310- } ) ;
4311-
4312- const res = await dbRunner . testQuery ( query . buildSqlAndParams ( ) ) ;
4313- console . log ( JSON . stringify ( res ) ) ;
4314-
4315- expect ( res ) . toEqual ( [
4316- {
4317- test_facts__acquisition_channel : 'Organic' ,
4318- test_facts__merchant_sk : 101 ,
4319- test_facts__product_sk : 201 ,
4320- test_facts__reporting_date : '2023-01-01T00:00:00.000Z' ,
4321- } ,
4322- {
4323- test_facts__acquisition_channel : 'Paid' ,
4324- test_facts__merchant_sk : 101 ,
4325- test_facts__product_sk : 202 ,
4326- test_facts__reporting_date : '2023-01-01T00:00:00.000Z' ,
4327- } ,
4328- {
4329- test_facts__acquisition_channel : 'Referral' ,
4330- test_facts__merchant_sk : 102 ,
4331- test_facts__product_sk : 201 ,
4332- test_facts__reporting_date : '2023-01-02T00:00:00.000Z' ,
4333- } ,
4334- ] ) ;
4335- } ) ;
4336-
4337- it ( 'querying cube with transitive joins with loop' , async ( ) => {
4338- await compiler . compile ( ) ;
4339-
4340- try {
4296+ if ( ! getEnv ( 'nativeSqlPlanner' ) ) {
4297+ it ( 'querying cube dimension that require transitive joins' , async ( ) => {
4298+ await compiler . compile ( ) ;
43414299 const query = new PostgresQuery ( { joinGraph, cubeEvaluator, compiler } , {
43424300 measures : [ ] ,
43434301 dimensions : [
4344- 'alpha_facts.reporting_date' ,
4345- 'delta_bridge.b_name' ,
4346- 'alpha_facts.channel'
4302+ 'test_facts.reporting_date' ,
4303+ 'test_facts.merchant_sk' ,
4304+ 'test_facts.product_sk' ,
4305+ 'test_facts.acquisition_channel'
43474306 ] ,
43484307 order : [ {
4349- id : 'alpha_facts.reporting_date '
4308+ id : 'test_facts.acquisition_channel '
43504309 } ] ,
43514310 timezone : 'America/Los_Angeles'
43524311 } ) ;
43534312
4354- await dbRunner . testQuery ( query . buildSqlAndParams ( ) ) ;
4355- throw new Error ( 'Should have thrown an error' ) ;
4356- } catch ( err : any ) {
4357- expect ( err . message ) . toContain ( 'Can not construct joins for the query, potential loop detected' ) ;
4358- }
4359- } ) ;
4313+ const res = await dbRunner . testQuery ( query . buildSqlAndParams ( ) ) ;
4314+ console . log ( JSON . stringify ( res ) ) ;
4315+
4316+ expect ( res ) . toEqual ( [
4317+ {
4318+ test_facts__acquisition_channel : 'Organic' ,
4319+ test_facts__merchant_sk : 101 ,
4320+ test_facts__product_sk : 201 ,
4321+ test_facts__reporting_date : '2023-01-01T00:00:00.000Z' ,
4322+ } ,
4323+ {
4324+ test_facts__acquisition_channel : 'Paid' ,
4325+ test_facts__merchant_sk : 101 ,
4326+ test_facts__product_sk : 202 ,
4327+ test_facts__reporting_date : '2023-01-01T00:00:00.000Z' ,
4328+ } ,
4329+ {
4330+ test_facts__acquisition_channel : 'Referral' ,
4331+ test_facts__merchant_sk : 102 ,
4332+ test_facts__product_sk : 201 ,
4333+ test_facts__reporting_date : '2023-01-02T00:00:00.000Z' ,
4334+ } ,
4335+ ] ) ;
4336+ } ) ;
4337+ } else {
4338+ it . skip ( 'querying cube dimension that require transitive joins' , async ( ) => {
4339+ // FIXME should be implemented in Tesseract
4340+ } ) ;
4341+ }
4342+
4343+ if ( ! getEnv ( 'nativeSqlPlanner' ) ) {
4344+ it ( 'querying cube with transitive joins with loop' , async ( ) => {
4345+ await compiler . compile ( ) ;
4346+
4347+ try {
4348+ const query = new PostgresQuery ( { joinGraph, cubeEvaluator, compiler } , {
4349+ measures : [ ] ,
4350+ dimensions : [
4351+ 'alpha_facts.reporting_date' ,
4352+ 'delta_bridge.b_name' ,
4353+ 'alpha_facts.channel'
4354+ ] ,
4355+ order : [ {
4356+ id : 'alpha_facts.reporting_date'
4357+ } ] ,
4358+ timezone : 'America/Los_Angeles'
4359+ } ) ;
4360+
4361+ await dbRunner . testQuery ( query . buildSqlAndParams ( ) ) ;
4362+ throw new Error ( 'Should have thrown an error' ) ;
4363+ } catch ( err : any ) {
4364+ expect ( err . message ) . toContain ( 'Can not construct joins for the query, potential loop detected' ) ;
4365+ }
4366+ } ) ;
4367+ } else {
4368+ it . skip ( 'querying cube dimension that require transitive joins' , async ( ) => {
4369+ // FIXME should be implemented in Tesseract
4370+ } ) ;
4371+ }
43604372 } ) ;
43614373} ) ;
0 commit comments