[Mondrian] Better understanding of hierarchies without an All Member

Will Gorman wgorman at pentaho.com
Fri May 9 17:46:23 EDT 2014


Here's Richard's commit, fascinating that it also includes the general description of the evaluation algorithm, this was a big one!

https://github.com/pentaho/mondrian/commit/493ae4ac1409dd23f9d176aa894658d6ac27cd2b

There's an algorithm description there that helps a bit. 

I also ran the test suite removing the nonAllMembers.add(rootMembers); line from loadSpecialMembers, there was only one regression in the test suite:

https://github.com/pentaho/mondrian/blob/master/testsrc/main/mondrian/rolap/NonEmptyTest.java#L659

In this test case, it seems like the non-empty context is derived not from the default member, but all root members of Promotions.  How would people feel if we updated the logic to skip the nonAllMembers.add(rootMembers) if there is an explicit default member specified in the hierarchy?  This approach would resolve the issue we're facing, and still allow the current behavior for implicit default members.

Thanks,

Will 

-----Original Message-----
From: mondrian-bounces at pentaho.org [mailto:mondrian-bounces at pentaho.org] On Behalf Of Will Gorman
Sent: Friday, May 09, 2014 1:32 PM
To: Mondrian developer mailing list
Subject: Re: [Mondrian] Better understanding of hierarchies without an All Member

Thanks Julian (and Pedro!).  I'll dive deeper into the history and see what I can come up with... If nothing else I'll add some more dev doc to RolapResult for future investigators.

Will

-----Original Message-----
From: mondrian-bounces at pentaho.org [mailto:mondrian-bounces at pentaho.org] On Behalf Of Julian Hyde
Sent: Friday, May 09, 2014 1:10 PM
To: Mondrian mailing list
Subject: Re: [Mondrian] Better understanding of hierarchies without an All Member

I don't recall exactly what RolapResult.loadSpecialMembers is doing; you may get some enlightenment by turning on "git annotate" and looking at the features that Richard Emberson was working on when we created that code. That is old code, and it is just possible that it is not needed.

A word about default members and "all" members. In general, we should use the default member of a hierarchy, not its all member. This applies especially to hierarchies mentioned in the MDX query. So, any code that is explicitly using the "all" member should be viewed skeptically.

But deeper down in the code, far away from the MDX, there are places where we want a hierarchy "not to have a filtering effect". This occurs, for example, when pulling dimensions into a virtual cube. For this reason, we make sure that every hierarchy internally has an "all" member, even if the user explicitly asked that it did not have one.

Julian

_______________________________________________
Mondrian mailing list
Mondrian at pentaho.org
http://lists.pentaho.org/mailman/listinfo/mondrian
_______________________________________________
Mondrian mailing list
Mondrian at pentaho.org
http://lists.pentaho.org/mailman/listinfo/mondrian


More information about the Mondrian mailing list