<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Verdana;
        color:windowtext;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal style='text-autospace:none'><b><font size=3 face=Verdana><span
style='font-size:12.0pt;font-family:Verdana;font-weight:bold'>Calculated Member
Solve Order & Aggregate Function Handling <o:p></o:p></span></font></b></p>
<p class=MsoNormal style='text-autospace:none'><b><font size=3 face=Verdana><span
style='font-size:12.0pt;font-family:Verdana;font-weight:bold'>SSAS2005 vs.
SSAS2000 vs. Mondrian<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Verdana><span
style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><b><font size=3 face=Verdana><span
style='font-size:12.0pt;font-family:Verdana;font-weight:bold'>Background<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Verdana><span
style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>This proposal
was seeded by the R&D of others.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>Following are
links to some of that work…<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>http://forums.pentaho.org/showthread.php?t=60654<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>http://777eisenhower.blogspot.com/2008/03/analysis-services-2000-vs-2005.html<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'><o:p> </o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'>SOLVE_ORDER Calculated Member Property<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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. <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'>Aggregate Function<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>Definition:
Returns a number that is calculated by aggregating over the cells returned by
the set expression. <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>The Aggregation
function is designed to be used against base measures.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>SSAS2000
Behavior: The SOLVE_ORDER value must be manually applied such that
aggregate values are solved before other related calculated members.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'>Current Mondrian Behavior<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'><o:p> </o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>In regard to
solve_order and Aggregate function handling, Mondrian behaves like SSAS2000.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:1.0in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>Through this
recursive process, the calculated members with lower solve_order values get
calculated before those with higher values.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><b><font size=3 face=Verdana><span
style='font-size:12.0pt;font-family:Verdana;font-weight:bold'>Mondrian Issue<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='text-autospace:none'><b><font size=2 face=Verdana><span
style='font-size:10.0pt;font-family:Verdana;font-weight:bold'><o:p> </o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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. <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<br>
<br>
<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Verdana><span
style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><b><font size=3 face=Verdana><span
style='font-size:12.0pt;font-family:Verdana;font-weight:bold'>Proposed Mondrian
Changes<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'>High Level<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>The proposal
involves enhancing Mondrian to optionally behave like SSAS2005 rather than
SSAS2000 in regard to solve order. <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>The option is
controlled using the MondrianProperties entry S</span></font><font size=2
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>olveOrderMode=absolute|scoped</span></font><font
size=2 face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>The 'scoped'
solve order mode code determines the highest solve order based on…<br>
<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;text-autospace:
none'><font size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>- If
the calculated member is involved with an aggregate function. <br>
<br>
Aggregation function based calculations are calculated first.<br>
<br>
<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;text-autospace:
none'><font size=2 face=Verdana><span style='font-size:10.0pt;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.<br>
<br>
<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;text-autospace:
none'><font size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>- The
solve_order property. <br>
<br>
This property is only used to order calculations within a given scope.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'><o:p> </o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'>Code Changes<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>Attached to
this email – the archive was built with the packChange script.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>Determining
relative solve_order is also trivial since that property is readily available
for a given calculated member.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'><o:p> </o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'>Unit Tests<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><b><font
size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana;
font-weight:bold'><o:p> </o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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. <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>When this test
is enabled, the proposed implementation with the new AS2005 solve order
behavior passes all test cases. <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>Also note there
is one test case that passes for both the old and new behavior.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;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.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face=Verdana><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
</div>
</body>
</html>