[Mondrian] question on "circular" MDX

John V. Sichi jsichi at gmail.com
Sun Feb 4 16:05:03 EST 2007


Julian Hyde wrote:
> I can't figure out just yet what the correct behavior should be. One of the
> factors is that NonEmptyCrossJoin is being called in the slicer, which seems
> dubious; the other, as you point out, is that a set is being invoked in the
> slicer whose value depends (via NonEmptyCrossJoin) on the output of the
> slicer.

Since as Michael points out, named set evaluation shouldn't see the 
slicer, seems like correct behavior is what we're currently getting with 
native enabled (no error).

Having NECJ called in the slicer should be OK, since it's an axis like 
any other.

I've noted in the bug comments that this portion of the stack shows the 
incorrect call from NECJ to AGGREGATE (one full cycle of the stack is in 
the bug description).

at mondrian.olap.fun.AggregateFunDef$1.evaluate(AggregateFunDef.java:56)
at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:422)
at
mondrian.olap.fun.CrossJoinFunDef.nonEmptyList(CrossJoinFunDef.java:2318)

> I need to do some more research into the behavior of the weird and wonderful
> NonEmptyCrossJoin function.
> 
> I note that MSAS 2000 does not give an error; it returns
> 
>            Unit Sales
> ========== ==========
> Drink          961.00

Hmmm...with native evaluation enabled in Mondrian, I get

Axis #0:
{[Education Level].[FILTER1], [Gender].[FILTER2]}
Axis #1:
{[Measures].[Unit Sales]}
Axis #2:
{[Product].[All Products].[Drink]}
Row #0: 12,395

But then there's this:

http://support.microsoft.com/kb/829050

> Can you log it please?
> http://sourceforge.net/tracker/?group_id=35302&atid=414613

Done:

https://sourceforge.net/tracker/?func=detail&atid=414613&aid=1651936&group_id=35302

JVS



More information about the Mondrian mailing list