Hitachi Vantara Pentaho Community Forums
Results 1 to 2 of 2

Thread: [Mondrian] Bug in Large Dimension Handling First Cut

  1. #1
    Guest

    Default [Mondrian] Bug in Large Dimension Handling First Cut

    Turning on the "highCardinality" switch for the Product dimension in
    FoodMart causes a cast exception.



    The problem was that HighCardSqlTupleReader.readTuples was returning a
    list of Member[] not a list of RolapMember[].



    Fix attached.



    Example exception stack...



    Caused by: java.lang.ClassCastException: [Lmondrian.olap.Member; cannot
    be cast to [Lmondrian.rolap.RolapMember;

    at
    mondrian.rolap.SqlMemberSource$1$1.next(SqlMemberSource.java:485)

    at mondrian.rolap.SqlMemberSource$1$1.next(SqlMemberSource.java:1)

    at
    mondrian.rolap.RolapCubeHierarchy$CacheRolapCubeHierarchyMemberReader.ge
    tMembersInLevel(RolapCubeHierarchy.java:627)

    at
    mondrian.rolap.RolapSchemaReader.getLevelMembers(RolapSchemaReader.java:
    447)

    at
    mondrian.rolap.RolapSchemaReader.getLevelMembers(RolapSchemaReader.java:
    430)

    at
    mondrian.rolap.RolapCube$RolapCubeSchemaReader.getLevelMembers(RolapCube
    ..java:2425)

    at
    mondrian.olap.DelegatingSchemaReader.getLevelMembers(DelegatingSchemaRea
    der.java:139)

    at
    mondrian.olap.Query$QuerySchemaReader.getLevelMembers(Query.java:1472)

    at
    mondrian.olap.fun.FunUtil.getNonEmptyLevelMembers(FunUtil.java:1803)

    at mondrian.olap.fun.FunUtil.levelMembers(FunUtil.java:1812)

    at
    mondrian.olap.fun.BuiltinFunTable$34$1.evaluateMemberList(BuiltinFunTabl
    e.java:1064)

    at
    mondrian.olap.fun.SetFunDef$ListSetCalc$1.evaluateVoid(SetFunDef.java:13
    2)

    at
    mondrian.olap.fun.SetFunDef$ListSetCalc.evaluateList(SetFunDef.java:209)

    at
    mondrian.calc.impl.AbstractListCalc.evaluate(AbstractListCalc.java:67)

    at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:732)

    at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:588)

    at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:563)

    at mondrian.rolap.RolapResult.<init>(RolapResult.java:286)

    at
    mondrian.rolap.RolapConnection.execute(RolapConnection.java:469)


    _______________________________________________
    Mondrian mailing list
    Mondrian (AT) pentaho (DOT) org
    http://lists.pentaho.org/mailman/listinfo/mondrian

  2. #2
    Julian Hyde Guest

    Default RE: [Mondrian] Bug in Large Dimension Handling First Cut

    Timothy,

    Thanks. I have checked in your change as 11055.

    You didn't provide an explicit test case, but it was easy enough to
    reproduce. For the record, I noticed that this bug reproduced on
    FunctionTest.testAggregate2() if I made the Store dimension
    high-cardinality.

    Jorge & Luis,

    As part of that change, I added a property mondrian.test.highCardDimensions
    to make testing easier. If you set this property to, say
    mondrian.test.highCardDimensions=Gender,Store,Customers and run the test
    suite it will preprocess the FoodMart.xml to make those dimensions high
    cardinality. This turns up lots of errors.

    We need the test suite to pass regardless of which dimensions are
    high-cardinality. I don't think there are any dimensions for which it
    currently passes. If there are, let me know and I will add the property
    setting to my nightly regress.

    Julian


    _____

    From: mondrian-bounces (AT) pentaho (DOT) org [mailto:mondrian-bounces (AT) pentaho (DOT) org] On
    Behalf Of timothy.lambert (AT) thomsonreuters (DOT) com
    Sent: Monday, May 12, 2008 5:29 PM
    To: mondrian (AT) pentaho (DOT) org
    Subject: [Mondrian] Bug in Large Dimension Handling First Cut



    Turning on the "highCardinality" switch for the Product dimension in
    FoodMart causes a cast exception.



    The problem was that HighCardSqlTupleReader.readTuples was returning a list
    of Member[] not a list of RolapMember[].



    Fix attached.



    Example exception stack.



    Caused by: java.lang.ClassCastException: [Lmondrian.olap.Member; cannot be
    cast to [Lmondrian.rolap.RolapMember;

    at mondrian.rolap.SqlMemberSource$1$1.next(SqlMemberSource.java:485)

    at mondrian.rolap.SqlMemberSource$1$1.next(SqlMemberSource.java:1)

    at
    mondrian.rolap.RolapCubeHierarchy$CacheRolapCubeHierarchyMemberReader.getMem
    bersInLevel(RolapCubeHierarchy.java:627)

    at
    mondrian.rolap.RolapSchemaReader.getLevelMembers(RolapSchemaReader.java:447)

    at
    mondrian.rolap.RolapSchemaReader.getLevelMembers(RolapSchemaReader.java:430)

    at
    mondrian.rolap.RolapCube$RolapCubeSchemaReader.getLevelMembers(RolapCube.jav
    a:2425)

    at
    mondrian.olap.DelegatingSchemaReader.getLevelMembers(DelegatingSchemaReader.
    java:139)

    at
    mondrian.olap.Query$QuerySchemaReader.getLevelMembers(Query.java:1472)

    at
    mondrian.olap.fun.FunUtil.getNonEmptyLevelMembers(FunUtil.java:1803)

    at mondrian.olap.fun.FunUtil.levelMembers(FunUtil.java:1812)

    at
    mondrian.olap.fun.BuiltinFunTable$34$1.evaluateMemberList(BuiltinFunTable.ja
    va:1064)

    at
    mondrian.olap.fun.SetFunDef$ListSetCalc$1.evaluateVoid(SetFunDef.java:132)

    at
    mondrian.olap.fun.SetFunDef$ListSetCalc.evaluateList(SetFunDef.java:209)

    at
    mondrian.calc.impl.AbstractListCalc.evaluate(AbstractListCalc.java:67)

    at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:732)

    at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:588)

    at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:563)

    at mondrian.rolap.RolapResult.<init>(RolapResult.java:286)

    at mondrian.rolap.RolapConnection.execute(RolapConnection.java:469)


    _______________________________________________
    Mondrian mailing list
    Mondrian (AT) pentaho (DOT) org
    http://lists.pentaho.org/mailman/listinfo/mondrian

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Privacy Policy | Legal Notices | Safe Harbor Privacy Policy

Copyright © 2005 - 2019 Hitachi Vantara Corporation. All Rights Reserved.