[Mondrian] [Fwd: Eigenbase perforce change 9251 for review]

John V. Sichi jsichi at gmail.com
Sun May 13 18:10:08 EDT 2007

Julian Hyde wrote:
> When you were writing the code in RolapNativeSet, were you seeing null
> members (that is, members for which Member.isNull() returns true)?

Yes.  I was intentionally looking for the null members since my earlier 
change was putting them there in place of invalid members.

> Many of the MDX operators implicitly drop null members from sets. For
> example, in the case of the "{...}" operator, that constructs and unions
> sets, {[Gender].Parent, [Gender].[M], [Gender].[F].PrevMember} returns a
> set of length 1. Your code could perhaps have asserted that none of the
> members was null, rather than defensively handling null members.

That's what I thought when I was making the original change.  But it 
turns out that the {...} operator doesn't actually drop the null members 
until evaluation time.  The test for applicability of native NECJ 
happens earlier than that, so it has to filter them out also.  The 
alternative would be to do some kind of rewrite earlier as a prefilter 
to simplify both evaluation paths.


More information about the Mondrian mailing list