<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><font size=2 face=Verdana><span style='font-size:10.0pt;
font-family:Verdana'>Turning on the &#8220;highCardinality&#8221; switch for
the Product dimension in FoodMart causes a cast exception.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Verdana><span style='font-size:10.0pt;
font-family:Verdana'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Verdana><span style='font-size:10.0pt;
font-family:Verdana'>The problem was that HighCardSqlTupleReader.readTuples was
returning a list of Member[] not a list of RolapMember[].<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Verdana><span style='font-size:10.0pt;
font-family:Verdana'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Verdana><span style='font-size:10.0pt;
font-family:Verdana'>Fix attached.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Verdana><span style='font-size:10.0pt;
font-family:Verdana'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Verdana><span style='font-size:10.0pt;
font-family:Verdana'>Example exception stack&#8230;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Verdana><span style='font-size:10.0pt;
font-family:Verdana'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>Caused by: </span></font><u><font size=2 color=navy
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>java.lang.ClassCastException</span></font></u><font size=2
color=red face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>: [Lmondrian.olap.Member; cannot be cast to
[Lmondrian.rolap.RolapMember;</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.SqlMemberSource$1$1.next(</span></font><u><font size=2
color=navy face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>SqlMemberSource.java:485</span></font></u><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.SqlMemberSource$1$1.next(</span></font><u><font size=2
color=navy face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>SqlMemberSource.java:1</span></font></u><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.RolapCubeHierarchy$CacheRolapCubeHierarchyMemberReader.getMembersInLevel(</span></font><u><font
size=2 color=navy face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:navy'>RolapCubeHierarchy.java:627</span></font></u><font
size=2 color=red face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.RolapSchemaReader.getLevelMembers(</span></font><u><font size=2
color=navy face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>RolapSchemaReader.java:447</span></font></u><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.RolapSchemaReader.getLevelMembers(</span></font><u><font size=2
color=navy face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>RolapSchemaReader.java:430</span></font></u><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.RolapCube$RolapCubeSchemaReader.getLevelMembers(</span></font><u><font
size=2 color=navy face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:navy'>RolapCube.java:2425</span></font></u><font size=2
color=red face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.olap.DelegatingSchemaReader.getLevelMembers(</span></font><u><font
size=2 color=navy face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:navy'>DelegatingSchemaReader.java:139</span></font></u><font
size=2 color=red face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.olap.Query$QuerySchemaReader.getLevelMembers(</span></font><u><font
size=2 color=navy face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:navy'>Query.java:1472</span></font></u><font size=2
color=red face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.olap.fun.FunUtil.getNonEmptyLevelMembers(</span></font><u><font
size=2 color=navy face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:navy'>FunUtil.java:1803</span></font></u><font size=2
color=red face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.olap.fun.FunUtil.levelMembers(</span></font><u><font size=2
color=navy face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>FunUtil.java:1812</span></font></u><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at mondrian.olap.fun.BuiltinFunTable$34$1.evaluateMemberList(</span></font><u><font
size=2 color=navy face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:navy'>BuiltinFunTable.java:1064</span></font></u><font
size=2 color=red face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.olap.fun.SetFunDef$ListSetCalc$1.evaluateVoid(</span></font><u><font
size=2 color=navy face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:navy'>SetFunDef.java:132</span></font></u><font size=2
color=red face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.olap.fun.SetFunDef$ListSetCalc.evaluateList(</span></font><u><font
size=2 color=navy face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:navy'>SetFunDef.java:209</span></font></u><font size=2
color=red face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at mondrian.calc.impl.AbstractListCalc.evaluate(</span></font><u><font
size=2 color=navy face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:navy'>AbstractListCalc.java:67</span></font></u><font
size=2 color=red face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.RolapResult.executeAxis(</span></font><u><font size=2
color=navy face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>RolapResult.java:732</span></font></u><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.RolapResult.evalLoad(</span></font><u><font size=2 color=navy
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>RolapResult.java:588</span></font></u><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.RolapResult.loadMembers(</span></font><u><font size=2
color=navy face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>RolapResult.java:563</span></font></u><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.RolapResult.&lt;init&gt;(</span></font><u><font size=2
color=navy face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>RolapResult.java:286</span></font></u><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=red face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New";color:red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
mondrian.rolap.RolapConnection.execute(</span></font><u><font size=2
color=navy face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'>RolapConnection.java:469</span></font></u><font size=2 color=red
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:red'>)</span></font><font size=2 face=Verdana><span style='font-size:
10.0pt;font-family:Verdana'><o:p></o:p></span></font></p>

</div>

</body>

</html>