I think it should be the default behavior. It doesn't seem like an MDX client should usually need to know anything about the solve order of cube defined calculated members. In the AS2K world there was always the possibility of unintended conflict just because the client didn't know how cube solve orders happened to be set.<br>
<br><div class="gmail_quote">On Mon, May 19, 2008 at 8:39 PM, Julian Hyde <<a href="mailto:jhyde@pentaho.com">jhyde@pentaho.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div vlink="purple" link="blue" lang="EN-US">
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">Timothy,</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">The change looks good, but you need to tie up a few loose
ends to be tied up before I can accept the contribution:</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">1. The unit test cases need some work. I enabled the tests
in SolveOrderScopeIsolationTest, and most worked if I preceded them with
a check that SolveOrderMode==scoped. But
testOverrideOverCubeMemberHappensWithScopeIsolation still gives errors; can't
figure out whether it's to do with case sensitivity.</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">And, can you create some cases that test the behavior when
SolveOrderMode==absolute. This will be especially important when scoped becomes
the default behavior. Maybe make each test case into an 'if ... else' with
alternative outputs.</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">2. The description of the property in mondrian.properties
and MondrianProperties.java needs a little more information, because the average
DBA would not know what SS2K behavior was (or SS2K was, for that matter). The
information in your email below would do just fine.</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">3. Please put the same property information into
configuration.html.</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">4. For future changes, please keep those lines to 80
characters, and use <p> to delimit paragraphs in
javadoc.</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">See attached a new change list with my
modifications.</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">All,</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">Any opinions what should be the default behavior? I'm
inclined to think that mondrian should use scoped solve-order (like Analysis
Services 2005) by default.</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" size="2" face="Verdana">Julian</font></span></div><br>
<blockquote dir="ltr" style="border-left: 2px solid rgb(0, 0, 128); padding-left: 5px; margin-left: 5px; margin-right: 0px;">
<div dir="ltr" align="left" lang="en-us">
<hr>
<font size="2" face="Tahoma"><b>From:</b> <a href="mailto:mondrian-bounces@pentaho.org" target="_blank">mondrian-bounces@pentaho.org</a>
[mailto:<a href="mailto:mondrian-bounces@pentaho.org" target="_blank">mondrian-bounces@pentaho.org</a>] <b>On Behalf Of
</b><a href="mailto:timothy.lambert@thomsonreuters.com" target="_blank">timothy.lambert@thomsonreuters.com</a><br><b>Sent:</b> Monday, May 12, 2008
12:08 PM<br><b>To:</b> <a href="mailto:mondrian@pentaho.org" target="_blank">mondrian@pentaho.org</a><br><b>Subject:</b> [Mondrian]
Calculated Member Solve Order & AggregateFunctionHandling
<br></font><br></div>
<div></div>
<div>
<p><font color="blue" size="2" face="Verdana"><span style="font-size: 10pt; color: blue; font-family: Verdana;">Sorry folks …
hopefully this third time will be charmed. </span></font></p>
<p><font color="blue" size="2" face="Verdana"><span style="font-size: 10pt; color: blue; font-family: Verdana;"> </span></font></p>
<p><font color="blue" size="2" face="Verdana"><span style="font-size: 10pt; color: blue; font-family: Verdana;">This time with a
subject *<b><span style="font-weight: bold;">and</span></b>* the code
attachment.</span></font></p>
<p><font color="blue" size="2" face="Verdana"><span style="font-size: 10pt; color: blue; font-family: Verdana;"> </span></font></p>
<div>
<div style="text-align: center;" align="center"><font size="3" face="Times New Roman"><span style="font-size: 12pt;">
<hr align="center" size="2" width="100%">
</span></font></div>
<p><b><font size="2" face="Tahoma"><span style="font-weight: bold; font-size: 10pt; font-family: Tahoma;">From:</span></font></b><font size="2" face="Tahoma"><span style="font-size: 10pt; font-family: Tahoma;">
<a href="mailto:mondrian-bounces@pentaho.org" target="_blank">mondrian-bounces@pentaho.org</a> [mailto:<a href="mailto:mondrian-bounces@pentaho.org" target="_blank">mondrian-bounces@pentaho.org</a>] <b><span style="font-weight: bold;">On Behalf Of </span></b>Lambert, Timothy<br>
<b><span style="font-weight: bold;">Sent:</span></b> Monday, May 12, 2008 3:05
PM<br><b><span style="font-weight: bold;">To:</span></b>
<a href="mailto:mondrian@pentaho.org" target="_blank">mondrian@pentaho.org</a><br><b><span style="font-weight: bold;">Subject:</span></b>
[Mondrian] Calculated Member Solve Order & Aggregate FunctionHandling
</span></font></p></div><div><div></div><div class="Wj3C7c">
<p><font size="3" face="Times New Roman"><span style="font-size: 12pt;"> </span></font></p>
<p><b><font size="3" face="Verdana"><span style="font-weight: bold; font-size: 12pt; font-family: Verdana;">Calculated
Member Solve Order & Aggregate Function Handling
</span></font></b></p>
<p><b><font size="3" face="Verdana"><span style="font-weight: bold; font-size: 12pt; font-family: Verdana;">SSAS2005 vs.
SSAS2000 vs. Mondrian</span></font></b></p>
<p><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p><b><font size="3" face="Verdana"><span style="font-weight: bold; font-size: 12pt; font-family: Verdana;">Background</span></font></b></p>
<p><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">This proposal was seeded by the
R&D of others.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Following are links to some of
that work…</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"><a href="http://forums.pentaho.org/showthread.php?t=60654" target="_blank">http://forums.pentaho.org/showthread.php?t=60654</a></span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"><a href="http://777eisenhower.blogspot.com/2008/03/analysis-services-2000-vs-2005.html" target="_blank">http://777eisenhower.blogspot.com/2008/03/analysis-services-2000-vs-2005.html</a></span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;"> </span></font></b></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;">SOLVE_ORDER
Calculated Member Property</span></font></b></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Definition: The order of
evaluation (from highest to lowest solve order) and calculation (from lowest
to highest solve order) for calculated members, custom members, custom rollup
formulas, and calculated cells in a single calculation pass of a
multidimensional cube. Solve order is used to determine formula precedence
when calculating values for cells in multidimensional cubes, but only within a
single calculation pass.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">SSAS2000 Behavior: The
SOLVE_ORDER value is absolute regardless of where it is defined; e.g. a query
defined calculated member with a SOLVE_ORDER of 1 always takes precedence over
a cube defined value of 2.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">SSAS2005 Behavior: By
default, cube calculated members are resolved before any session scope
calculated members, and session scope members are resolved before any query
defined calculation. The SOLVE_ORDER value only applies within the scope
in which it was defined. </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Achieving SSAS2000 Behavior on
SSAS2005: Using the SCOPE_ISOLATION=CUBE property in a query calculated
member definition will put the query defined member into cube scope. So
effectively solve_order is treated like an SSAS2000 absolute value since all
members are treated as if they were defined in the same
scope.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;">Aggregate
Function</span></font></b></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Definition: Returns a
number that is calculated by aggregating over the cells returned by the set
expression. </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">The Aggregation function is
designed to be used against base measures.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">SSAS2000 Behavior: The
SOLVE_ORDER value must be manually applied such that aggregate values are
solved before other related calculated members.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">SSAS2005 Behavior: The
aggregate function is always applied to base members; i.e. as if solve_order
was defined to be the lowest value in a given evaluation in a SSAS2000
sense.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;">Current
Mondrian Behavior</span></font></b></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;"> </span></font></b></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">In regard to solve_order and
Aggregate function handling, Mondrian behaves like
SSAS2000.</span></font></p>
<p style="margin-left: 1in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">During the evaluation of a given
cell, if there are multiple calculated members in the evaluation context then
the member with the highest solve_order is evaluated. The other
calculated members with lower solve_order values stay within the evaluation
context, and are evaluated during the processing of the calculated member with
the higher solve_order.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Through this recursive process,
the calculated members with lower solve_order values get calculated before
those with higher values.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p><b><font size="3" face="Verdana"><span style="font-weight: bold; font-size: 12pt; font-family: Verdana;">Mondrian
Issue</span></font></b></p>
<p><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;"> </span></font></b></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">For use with certain reporting
clients (e.g. Cognos), it is better for Mondrian to behave like SSAS2005
rather than SSAS2000 in regard to solve order and aggregate function
evaluation. </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-bottom: 12pt; margin-left: 0.5in; margin-right: 0in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Note
that some reporting clients (e.g. Cognos) do not take advantage of the
SSAS2005 SCOPE_ISOLATION property, so support for it is not considered
critically important.</span></font></p>
<p><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p><b><font size="3" face="Verdana"><span style="font-weight: bold; font-size: 12pt; font-family: Verdana;">Proposed
Mondrian Changes</span></font></b></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">
</span></font></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;">High
Level</span></font></b></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">The proposal involves enhancing
Mondrian to optionally behave like SSAS2005 rather than SSAS2000 in regard to
solve order. </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">The option is controlled using
the MondrianProperties entry S</span></font><font size="2" face="Courier New"><span style="font-size: 10pt;">olveOrderMode=absolute|scoped</span></font><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">. The current Mondrian
solve order behavior remains the default; 'absolute'. The SSAS2005
behavior can be turned on with the value of 'scoped'. One can achieve
SSAS2005 SCOPE_ISOLATION=CUBE semantics by using 'absolute'
mode.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">While preserving old behavior as
a default is usually desirable, in this case it is recommended that Mondrian
adopt the SSAS2005 behavior as the default.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">The implementation of the
proposal is based on the same sort of logic one uses when manually applying
the solve_order property to get the desired SSAS2005-like behavior with
current Mondrian.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">The 'scoped' solve order mode
code determines the highest solve order based
on…<br> </span></font></p>
<p style="margin-bottom: 12pt; margin-left: 1in; text-indent: -0.25in; margin-right: 0in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">- If the calculated
member is involved with an aggregate function. <br><br>Aggregation
function based calculations are calculated first.</span></font></p>
<p style="margin-bottom: 12pt; margin-left: 1in; text-indent: -0.25in; margin-right: 0in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">- The location of
the calculated member definition; i.e. its scope. <br><br>Cube scope members
are calculated after Aggregate function based calculations.
<br><br>Query scope members are calculated after cube scope
calculations.</span></font></p>
<p style="margin-left: 1in; text-indent: -0.25in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">- The solve_order
property. <br><br>This property is only used to order calculations
within a given scope.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;"> </span></font></b></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;">Code
Changes</span></font></b></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Attached to this email – the
archive was built with the packChange script.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">The
RolapEvaluator.peekCalcMember method now invokes one of two methods for
determining the highest solve order for two or more calculated
members. One of these methods implements the "absolute" algorithm
and the other implements the "scoped" algorithm.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Determining cube and query scope
is easy since there is an already defined class method for determining if a
member is defined in a query. If it's not defined in the query then it
must be defined in the cube.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Determining relative solve_order
is also trivial since that property is readily available for a given
calculated member.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Determining if the member is
part of an aggregate function is a little more difficult. There are (at
least) two ways to go about this.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">In the proposed solution, there
is a new RolapEvaluator method that traverses the expression graph associated
with a calculated member explicitly looking for an aggregate
function.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">An alternate solution performed
a full evaluation of the calculated member in order to look for an aggregate
function. After the evaluation, a flag was checked to see if an
aggregate function was found.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;"> </span></font></b></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;">Unit
Tests</span></font></b></p>
<p style="margin-left: 0.5in;"><b><font size="2" face="Verdana"><span style="font-weight: bold; font-size: 10pt; font-family: Verdana;"> </span></font></b></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">A JUnit test
(SolveOrderScopeIsolationTest) was recently contributed to the Mondrian
project. These test cases expect AS2005 behavior and as such fail with
the current Mondrian. So this test is not normally setup to run with the
regular regression suite. </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">When this test is enabled, the
proposed implementation with the new AS2005 solve order behavior passes all
test cases. </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Note there is one exception in
which Mondrian fails regardless of SolveOrderMode. There seems to be an
MDX syntax problem in one of the test cases.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">Also note there is one test case
that passes for both the old and new behavior.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;">There is another test case that
passes for current Mondrian but fails for the new solve order behavior.
The test case is Mondrian.test.NamedSetTest.testOrderedNamedSet. The
test case explicitly expects SSAS2000 behavior and as such should fail with
the new AS2005 behavior.</span></font></p>
<p style="margin-left: 0.5in;"><font size="2" face="Verdana"><span style="font-size: 10pt; font-family: Verdana;"> </span></font></p></div></div></div></blockquote></div>
<br>_______________________________________________<br>
Mondrian mailing list<br>
<a href="mailto:Mondrian@pentaho.org">Mondrian@pentaho.org</a><br>
<a href="http://lists.pentaho.org/mailman/listinfo/mondrian" target="_blank">http://lists.pentaho.org/mailman/listinfo/mondrian</a><br>
<br></blockquote></div><br>