<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:o =
"urn:schemas-microsoft-com:office:office" xmlns:w =
"urn:schemas-microsoft-com:office:word"><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16527" name=GENERATOR>
<STYLE>
<!--
/* 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;}
pre
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@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 vLink=purple link=blue>
<DIV dir=ltr align=left><FONT face=Verdana color=#000080
size=2></FONT> </DIV><FONT face=Verdana color=#000080 size=2></FONT><BR>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000080 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left><FONT
face=Arial><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p><SPAN
class=803113322-04092007><FONT face=Tahoma><FONT face=Verdana
color=#000080>Robin Tharappel
wrote:</FONT></FONT></SPAN></o:p></SPAN></FONT></DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left><FONT
face=Arial><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p><SPAN
class=803113322-04092007> </SPAN> </o:p></SPAN></FONT></DIV>
<DIV class=Section1>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">In reviewing tracker 1755778
(Cross Join with Filter returns empty result set), it appears that the type of
ResultStyle impacts the result set returned in some cases. Using JDK 1.5 the
Iterable ResultStyle will be used and the List ResultStyle will be used with
JDK 1.4. Given the following MDX:<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P><PRE><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt">WITH SET [#DataSet#] as 'Filter(Crossjoin({[Store].[All Stores]},<o:p></o:p></SPAN></FONT></PRE><PRE><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt">{[Customers].[All Customers]}), <o:p></o:p></SPAN></FONT></PRE><PRE><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt">[Measures].[Unit Sales] > 0)' <o:p></o:p></SPAN></FONT></PRE><PRE><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt">SELECT {[Measures].[Unit Sales]} ON COLUMNS, <o:p></o:p></SPAN></FONT></PRE><PRE><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt">{[#DataSet#] } ON ROWS FROM Sales<o:p></o:p></SPAN></FONT></PRE>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Using the Iterable ResultStyle
(with JDK 1.5) an empty result set is returned. However if I force the
ResultStyle to List the correct result set is returned. It appears that the
List implementation is evaluating the expressions while the list is created.
The Iterable implementation evaluates the expressions during iteration.
Should the Iterable ResultStyle evaluate the expressions when it is created
(similar to the List ResultStyle) ? <FONT face=Verdana><FONT
color=#000080><SPAN
class=803113322-04092007> </SPAN></FONT></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><FONT face=Verdana><FONT
color=#000080><SPAN
class=803113322-04092007></SPAN></FONT></FONT></SPAN></FONT> </P></DIV></BLOCKQUOTE>
<P class=MsoNormal dir=ltr><FONT face=Arial><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><FONT face=Verdana><FONT
color=#000080><SPAN class=803113322-04092007>Well, the result should certainly
be the same, whichever result style is used. I think (not having looked at the
code) that the problem you're seeing is in the Iterable ResultStyle
implementation of the Filter function. The semantics of the Filter function are
that the boolean expression is evaluated in the context of each successive
member from the list expression. If Iterable ResultStyle doesn't implement those
semantics, it's a bug.</SPAN></FONT></FONT></SPAN></FONT></P>
<P class=MsoNormal dir=ltr><FONT face=Arial><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><FONT face=Verdana><FONT
color=#000080><SPAN
class=803113322-04092007></SPAN></FONT></FONT></SPAN></FONT> </P>
<P class=MsoNormal dir=ltr><FONT face=Arial><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><FONT face=Verdana><FONT
color=#000080><SPAN class=803113322-04092007>Note that the CrossJoin function
has different semantics: each of the arguments should be evaluated
independently.</SPAN></FONT></FONT></SPAN></FONT></P>
<P class=MsoNormal dir=ltr><FONT face=Arial><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><FONT face=Verdana><FONT
color=#000080><SPAN
class=803113322-04092007></SPAN></FONT></FONT></SPAN></FONT> </P>
<P class=MsoNormal dir=ltr><FONT face=Arial><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><FONT face=Verdana><FONT
color=#000080><SPAN
class=803113322-04092007>Julian</SPAN></FONT></FONT></SPAN></FONT></P></BODY></HTML>