Julian (and others?)<br>Ok... I give up.. I have no idea how to properly test these changes. Are they still applicable to the current CVS version? (I assume so.. since I haven't seen any notes/commits pertaining to this problem). You mentioned that you were going to run it through the regression suite to see if any problems popped up - but I never heard of any results.. Does this mean that basically all is ok? This fix is kind of important.. pretty vital to us in fact, and I'm surprised no-one else has encountered the problem I address in it. If you (or anyone) would be willing to either write the test, or give me some pointers (I'm completely lost - probably partly from being in the middle of a large .NET project :)), I'd be very grateful. I'll try to get the CVS version of 3.0 and see if the patches can still be applied.<br>
<br>Cheers<br>Ati<br><br><div class="gmail_quote">2007/10/23 Julian Hyde <<a href="mailto:julianhyde@speakeasy.net">julianhyde@speakeasy.net</a>>:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
<div dir="ltr" align="left"><span><font color="#000080" face="Verdana" size="2">Ati,</font></span></div>
<div dir="ltr" align="left"><span><font color="#000080" face="Verdana" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" face="Verdana" 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 color="#000080" face="Verdana" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" face="Verdana" 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 color="#000080" face="Verdana" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#000080" face="Verdana" size="2">Julian</font></span></div><br>
<blockquote style="border-left: 2px solid rgb(0, 0, 128); padding-left: 5px; margin-left: 5px; margin-right: 0px;">
<div dir="ltr" align="left" lang="en-us">
<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>