<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16546" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=463290900-20112007><FONT face=Verdana
color=#000080 size=2>Ati,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=463290900-20112007><FONT face=Verdana
color=#000080 size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=463290900-20112007><FONT face=Verdana
color=#000080 size=2>Thanks for the update. I don't mind waiting another month
or so, because mondrian 3.0 is not due out til December. For people who are
building mondrian from source (and they are the only people who would benefit
during that month), they can incorporate your posted patch.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=463290900-20112007><FONT face=Verdana
color=#000080 size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=463290900-20112007><FONT face=Verdana
color=#000080 size=2>Sorry to have to be a tough bastard about this... it comes
with being head of QA of mondrian as well as being architect, lead developer and
chief evangelist. If I accept patches without regression tests, mondrian would
soon degrade into a pool of half-working code (or I would spend my whole time
writing regression tests, and then I'd have to jump off a
bridge).</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=463290900-20112007><FONT face=Verdana
color=#000080 size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=463290900-20112007><FONT face=Verdana
color=#000080 size=2>Julian</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=463290900-20112007><FONT face=Verdana
color=#000080 size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=463290900-20112007><FONT face=Verdana
color=#000080 size=2></FONT></SPAN> </DIV><BR>
<BLOCKQUOTE
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>Ati
Rosselet<BR><B>Sent:</B> Saturday, November 17, 2007 1:46 PM<BR><B>To:</B>
Mondrian developer mailing list<BR><B>Subject:</B> Re: [Mondrian] Problem with
aggregate tables..<BR></FONT><BR></DIV>
<DIV></DIV>Julian,<BR>I just haven't been able to get the regression test
done... completely swamped by my work, and now I'm waiting for a knee
operation (blew out my knee) - not conducive to coherent thought..
:( This was an important fix for us, so I'd like to get it into
the mondrian code (surely someone else will be, or has already encountered the
problem..). I don't suppose anyone else would like to throw a test
together? If not.. I'll try to deal with it when I'm back on the grid..
about 2 weeks I think <BR>Cheers.<BR>Ati<BR><BR>
<DIV class=gmail_quote>On Oct 23, 2007 2:12 AM, Julian Hyde <<A
href="mailto:julianhyde@speakeasy.net">julianhyde@speakeasy.net</A>>
wrote:<BR>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Verdana color=#000080
size=2>Ati,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Verdana color=#000080
size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Verdana color=#000080 size=2>Thanks
for the fix. I've run your changes through the regression suite. Looking
good so far. I'll run the suite in all of its various property settings
tonight and see if anything pops out.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Verdana color=#000080
size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Verdana color=#000080 size=2>Since
this change is a bug fix, I need a regression test before I will check in. I
think you could construct a testcase based on the foodmart database. Add the
test to TestAggregationManager; testMultipleMeasures is an example of a
test which runs an MDX query and checks that a particular SQL query is
generated. You will also need to use TestContext.create() to alter the XML;
testKeyExpressionCardinalityCache is an example of a test which does
that.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Verdana color=#000080
size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Verdana color=#000080
size=2>Julian</FONT></SPAN></DIV><BR>
<BLOCKQUOTE
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: rgb(0,0,128) 2px solid; MARGIN-RIGHT: 0px">
<DIV lang=en-us dir=ltr align=left>
<HR>
<FONT face=Tahoma size=2>
<DIV class=Ih2E3d><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>Ati
Rosselet<BR></DIV><B>Sent:</B> Monday, October 22, 2007 5:23
PM<BR><B>To:</B> Mondrian developer mailing list<BR><B>Subject:</B> Re:
[Mondrian] Problem with aggregate tables..<BR></FONT><BR></DIV>
<DIV>
<DIV></DIV>
<DIV class=Wj3C7c>
<DIV></DIV>sorry... cut and paste got me.. end of first function ended up
after the end of the 2nd modified function.
so<BR><BR>
/**<BR> * Finds ALL the
child tables of the fact table with the given
columnName<BR> * used in
their left join condition. This is used by the AggTableManager
<BR> * while
characterizing the fact table columns. (previous only returned FIRST
child)<BR>
*/<BR> public
ArrayList<RolapStar.Table> findTablesWithLeftJoinCondition(final
String columnName) <BR>
<DIV>
{<BR>
java.util.ArrayList<RolapStar.Table> tables = new
java.util.ArrayList<RolapStar.Table>();<BR>
for (Table child : getChildren())
{<BR>
Condition condition =
child.joinCondition;<BR>
if (condition != null)
{<BR>
if (condition.left instanceof MondrianDef.Column)
{<BR>
MondrianDef.Column mcolumn
=<BR>
( MondrianDef.Column)
condition.left;<BR>
if (mcolumn.name.equals(columnName))
{<BR>
tables.add(child);<BR>
}<BR>
}<BR>
} </DIV>
}<BR>
return
(tables.size()==0?null:tables);<BR>
}<BR><BR>and remove the return part from other
function..<BR><BR>Cheers..<BR>Ati<BR></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></BLOCKQUOTE></BODY></HTML>