<!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.16414" name=GENERATOR>
<STYLE>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        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:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:Arial;
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:2.0cm 42.5pt 2.0cm 3.0cm;}
div.Section1
        {page:Section1;}
-->
</STYLE>
</HEAD>
<BODY lang=RU vLink=purple link=blue>
<DIV dir=ltr align=left><SPAN class=566130022-23042007><FONT face=Verdana
color=#000080 size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=566130022-23042007><FONT face=Verdana
color=#000080 size=2>MDX probably behaves this way because it is modeled after
Visual Basic, which has no boolean type, and therefore simulates booleans
using integers. Sigh. I would much rather MDX had the semantics of SQL or Java,
where you need to explicitly convert, using '!= 0'.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=566130022-23042007><FONT face=Verdana
color=#000080 size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=566130022-23042007><FONT face=Verdana
color=#000080 size=2>But I don't write the MDX specification, <SPAN
class=566130022-23042007><FONT face=Verdana color=#000080 size=2>so this is a
bug. Please log it.</FONT></SPAN></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=566130022-23042007><FONT face=Verdana
color=#000080 size=2><SPAN
class=566130022-23042007></SPAN></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=566130022-23042007><FONT face=Verdana
color=#000080 size=2><SPAN
class=566130022-23042007>Julian</SPAN></FONT></SPAN></DIV><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>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> mondrian-bounces@pentaho.org
[mailto:mondrian-bounces@pentaho.org] <B>On Behalf Of </B>Anton
Nikitin<BR><B>Sent:</B> Monday, April 23, 2007 10:48 AM<BR><B>To:</B>
mondrian@pentaho.org<BR><B>Subject:</B> [Mondrian] MDX Conversion from Numeric
to boolean<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN lang=EN-US
style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Hello.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I have found one little
incompatibility between Mondrian and MSOLAP MDX.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Mondrian doesn’t automatically
convert integer values to Boolean if necessary.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Example (Foodmart Sales) – let’s
display all Baked Goods which are non-leaves:<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">select
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> {[Measures].[Unit Sales]}
on columns,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
Filter(Descendants([Product].[Food].[Baked
Goods].[Bread]),<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> <B><SPAN
style="FONT-WEIGHT: bold">Count ([Product].currentMember.children)</SPAN></B>)
on Rows <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">from
[Sales]<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">This query works OK in MSAS 2000,
but fails in Mondrian 2.3.2:<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P><PRE><FONT face="Courier New" size=2><SPAN lang=EN-US style="FONT-SIZE: 10pt">mondrian.olap.MondrianException: Mondrian Error:No function matches signature 'Filter(<Set>, <Numeric Expression>)'<o:p></o:p></SPAN></FONT></PRE>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">At the same time, if we modify it
a bit, it starts to work in Mondrian:<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">select
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> {[Measures].[Unit Sales]}
on columns,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
Filter(Descendants([Product].[Food].[Baked
Goods].[Bread]),<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> <B><SPAN
style="FONT-WEIGHT: bold">Count
([Product].currentMember.children)<>0</SPAN></B>) on Rows
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">from
[Sales]<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">AFAIK the solution is rather cheap
(changing FunUtil.canConvert() &
FunUtil.convert())…<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I assume it is a
bug…<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Best
regards,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Anton
Nikitin<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P></DIV></BLOCKQUOTE></BODY></HTML>