[Mondrian] PC hierarchy and visibility of MemberReader and MemberSource

damien hostin damien.hostin at axege.com
Tue Nov 27 09:43:26 EST 2012


Hello,


XML for the dimension looks like:

     <Dimension name="Structure">
     <Hierarchy hasAll="false" name="Structure" caption="Structure" 
primaryKey="rfoade_i_rfodstide" primaryKeyTable="adedst" 
defaultMember="STRC" nullParentValue="AXS_ROOT">
         <Table name="adedst">
             <SQL dialect="generic">rfoade___rforefide = 'REF' and
                 rfoade___rfovdeide='VDE' and
                 rfoadervs=1 </SQL>
         </Table>
         <Level name="STRC" table="adedst" column="rfoade_i_rfodstide" 
parentColumn="rfoade_s_rfodstide" uniqueMembers="true">
         </Level>
     </Hierarchy>
     </Dimension>


And the MDX :

select NON EMPTY [DefaultMeasures] ON COLUMNS, NON EMPTY 
[DefaultDimensions] ON ROWS
from [cana_cube_1354026362876]
where [DefaultFilters]

And the namedset in the schema for the MDX :

           <NamedSet name="DefaultMeasures">
             <Formula>{[Measures].[Montant]}</Formula>
           </NamedSet>

           <NamedSet name="DefaultDimensions">
             <Formula>Crossjoin({[Temps.Temps par mois].[2009]), 
([Temps.Temps par mois].[2010]}, {([Structure].DefaultMember, 
[Natures].DefaultMember)})</Formula>
           </NamedSet>

           <NamedSet name="DefaultFilters">
             <Formula>{([Stade].DefaultMember, 
[Processus].DefaultMember, [rfovsn].DefaultMember)}</Formula>
           </NamedSet>


Closure table are not mandatory, but I think we can't skip them if we 
want good performances with parent-child hierarchies. I though it would 
be easier to debug without.

I can give more information, but I'm not sure what could help.


Thanks,

Damien

Le 27/11/2012 14:54, Kurtis Walker a écrit :
> Damien,
>    Can you send an example of the MDX you are trying to run and the XML for the dimension in your schema?
>
> Kurt
>
> On Tuesday, November 27, 2012 05:15:12 AM damien hostin wrote:
>> Hello,
>>
>> I am trying to use parent-child hierarchy, but it has some restriction.
>>
>> It looks like we need to give a list sorted in such a way that parent
>> always come before their child, even if we are not using Closure Tables.
>> But in the same time, an order by clause is generated on the parent and
>> the child column.
>>
>> In foodmart.xml it is OK because parent and child are integer, and
>> sorted correctly. It is also OK because the hierarchy is always the
>> same, there is no real-life end user that modify it.
>>
>> In my case, sorting the hierarchy on parent and child doesn't garanted
>> to give mondrian the correct order. This can't work but it is possible
>> to change the code. I could have patch mondrian to handle PC hierarchies
>> with my "custom" order by clause, but regression tests find 35 failures
>> and 1 error with original code running with derby.
>>
>> As it is possible the give MemberReader or MemberSource own
>> implementation I decided to use that cleaner way. But
>> mondrian.rolap.MemberSource uses a MemberCache class that is not visible
>> outside mondrian's package, and mondrian.rolap.MemberReader is package
>> visible too. So I must implements my custom MemberReader/Source inside
>> mondrian project, with my 36 regression.
>>
>> Is it a volunteer restriction or can the visibility be change to allow
>> outside implementation ? I'm a bit messy with those problems.
>>
>>
>> Thanks,
>>
>> Damien Hostin
>> _______________________________________________
>> Mondrian mailing list
>> Mondrian at pentaho.org
>> http://lists.pentaho.org/mailman/listinfo/mondrian



More information about the Mondrian mailing list