<!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.6001.17052" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=594491319-17022008><FONT face=Verdana 
color=#000080 size=2>I don't think any progress has been made on this issue. I 
looked at the history of the email thread, and it quickly diverged into another 
issue. I ran the tests, but as I said, I need that regression test, and I'm not 
going to have any time soon to write it. Maybe someone else will write it - my 
description re. TestAggregationManager is as much as I'll give as far as 
'pointers' - any more and I'd be writing the code myself - but I have a feeling 
that no one else will write the test.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=594491319-17022008><FONT face=Verdana 
color=#000080 size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=594491319-17022008><FONT face=Verdana 
color=#000080 size=2>So, please log a bug with all of this information in it, so 
it doesn't get forgotten, and we will get to it one day.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=594491319-17022008><FONT face=Verdana 
color=#000080 size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=594491319-17022008><FONT face=Verdana 
color=#000080 size=2>Julian</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> Sunday, February 17, 2008 5:04 AM<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 (and others?)<BR>Ok... I give up.. I have no idea how to 
  properly test these changes.&nbsp; Are they still applicable to the current 
  CVS version? (I assume so.. since I haven't seen any notes/commits pertaining 
  to this problem).&nbsp;&nbsp; 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?&nbsp; 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.&nbsp;&nbsp; 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.&nbsp;&nbsp; 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 &lt;<A 
  href="mailto:julianhyde@speakeasy.net">julianhyde@speakeasy.net</A>&gt;:<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>&nbsp;</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>&nbsp;</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&nbsp;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>&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /**<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Finds ALL the 
      child tables of the fact table with the given 
      columnName<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * used in 
      their left join condition. This is used by the AggTableManager 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * while 
      characterizing the fact table columns. (previous only returned FIRST 
      child)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public 
      ArrayList&lt;RolapStar.Table&gt; findTablesWithLeftJoinCondition(final 
      String columnName) <BR>
      <DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      java.util.ArrayList&lt;RolapStar.Table&gt; tables = new 
      java.util.ArrayList&lt;RolapStar.Table&gt;();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      for (Table child : getChildren()) 
      {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      Condition condition = 
      child.joinCondition;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      if (condition != null) 
      {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      if (condition.left instanceof MondrianDef.Column) 
      {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      MondrianDef.Column mcolumn 
      =<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      ( MondrianDef.Column) 
      condition.left;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      if (mcolumn.name.equals(columnName)) 
      {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      tables.add(child);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      } </DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      return 
      (tables.size()==0?null:tables);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      }<BR><BR>and&nbsp; 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>