Pentaho Analysis - Mondrian
  1. Pentaho Analysis - Mondrian
  2. MONDRIAN-734

Exception thrown when creating a "New Analysis View" with JPivot

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 3.2.0 GA (3.6.0 GA Suite Release)
    • Component/s: None
    • Labels:
      None
    • Notice:
      When an issue is open, the "Fix Version/s" field conveys a target, not necessarily a commitment. When an issue is closed, the "Fix Version/s" field conveys the version that the issue was fixed in.
    • QA Validation Status:
      Not Yet Validated

      Description

      Repro path:

      -Start the "biserver-ee" (used 3.6 snapshot)
      -Click "New Analysis View"
      -Select the schema SteelWheels with the SteelWheelsSales cube
      -Attempt to slice and dice on Product
      -You will get a

      Error Occurred While getting Resultset
      An error occurred while rendering Pivot.jsp. Please see the log for details.

      NOTE: Work around for this problem is by setting:

      mondrian.native.crossjoin.enable=true to false
      at
      pentaho-solutions/system/mondrian/mondrian.properties

      The stack trace is:

      14:47:41,500 WARN [Logger] misc-org.pentaho.platform.engine.core.system.Pentaho
      System: PentahoSystem.WARN_OBJECT_NOT_CONFIGURED - Object with name "Mondrian-Us
      erRoleMapper" has not been configured in the Pentaho object factory.
      14:47:43,078 WARN [TemplateUtil] not found: [Measures].[Quantity]
      Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
      Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
      Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
      java.lang.StackOverflowError
      at mondrian.olap.type.MemberType.<init>(MemberType.java:51)
      at mondrian.olap.type.MemberType.forMember(MemberType.java:115)
      at mondrian.calc.impl.ConstantCalc.constantMember(ConstantCalc.java:156)

      at mondrian.mdx.MemberExpr.accept(MemberExpr.java:73)
      at mondrian.calc.impl.AbstractExpCompiler.compile(AbstractExpCompiler.ja
      va:80)
      at mondrian.calc.impl.AbstractExpCompiler.compileMember(AbstractExpCompi
      ler.java:173)
      at mondrian.olap.fun.SetFunDef$MemberSetListCalc.createCalc(SetFunDef.ja
      va:170)
      at mondrian.olap.fun.SetFunDef$MemberSetListCalc.compileSelf(SetFunDef.j
      ava:134)
      at mondrian.olap.fun.SetFunDef$MemberSetListCalc.<init>(SetFunDef.java:1
      20)
      at mondrian.olap.fun.SetFunDef.compileCall(SetFunDef.java:89)
      at mondrian.mdx.ResolvedFunCall.accept(ResolvedFunCall.java:152)
      at mondrian.calc.impl.AbstractExpCompiler.compile(AbstractExpCompiler.ja
      va:80)
      at mondrian.calc.impl.AbstractExpCompiler.compileAs(AbstractExpCompiler.
      java:127)
      at mondrian.olap.fun.CrossJoinFunDef.toList(CrossJoinFunDef.java:1139)
      at mondrian.olap.fun.CrossJoinFunDef.compileCallImmutableList(CrossJoinF
      unDef.java:1087)
      at mondrian.olap.fun.CrossJoinFunDef.compileCall(CrossJoinFunDef.java:10
      6)
      at mondrian.mdx.ResolvedFunCall.accept(ResolvedFunCall.java:152)
      at mondrian.calc.impl.AbstractExpCompiler.compile(AbstractExpCompiler.ja
      va:80)
      at mondrian.calc.impl.AbstractExpCompiler.compileAs(AbstractExpCompiler.
      java:127)
      at mondrian.calc.impl.AbstractExpCompiler.compileList(AbstractExpCompile
      r.java:304)
      at mondrian.calc.impl.BetterExpCompiler.compileList(BetterExpCompiler.ja
      va:77)
      at mondrian.calc.impl.AbstractExpCompiler.compileList(AbstractExpCompile
      r.java:293)
      at mondrian.olap.fun.UnionFunDef.compileCall(UnionFunDef.java:52)
      at mondrian.mdx.ResolvedFunCall.accept(ResolvedFunCall.java:152)
      at mondrian.calc.impl.AbstractExpCompiler.compile(AbstractExpCompiler.ja
      va:80)
      at mondrian.calc.impl.AbstractExpCompiler.compileAs(AbstractExpCompiler.
      java:127)
      at mondrian.olap.fun.CrossJoinFunDef.toList(CrossJoinFunDef.java:1139)
      at mondrian.olap.fun.CrossJoinFunDef.compileCallMutableList(CrossJoinFun
      Def.java:1536)
      at mondrian.olap.fun.CrossJoinFunDef.compileCall(CrossJoinFunDef.java:10
      9)
      at mondrian.mdx.ResolvedFunCall.accept(ResolvedFunCall.java:152)
      at mondrian.calc.impl.AbstractExpCompiler.compile(AbstractExpCompiler.ja
      va:80)
      at mondrian.calc.impl.AbstractExpCompiler.compileAs(AbstractExpCompiler.
      java:127)
      at mondrian.calc.impl.AbstractExpCompiler.compileList(AbstractExpCompile
      r.java:304)
      at mondrian.calc.impl.BetterExpCompiler.compileList(BetterExpCompiler.ja
      va:77)
      at mondrian.olap.fun.HierarchizeFunDef.compileCall(HierarchizeFunDef.jav
      a:45)
      at mondrian.mdx.ResolvedFunCall.accept(ResolvedFunCall.java:152)
      at mondrian.calc.impl.AbstractExpCompiler.compile(AbstractExpCompiler.ja
      va:80)
      at mondrian.calc.impl.AbstractExpCompiler.compileAs(AbstractExpCompiler.
      java:127)
      at mondrian.calc.impl.AbstractExpCompiler.compileList(AbstractExpCompile
      r.java:304)
      at mondrian.calc.impl.BetterExpCompiler.compileList(BetterExpCompiler.ja
      va:77)
      at mondrian.calc.impl.AbstractExpCompiler.compileList(AbstractExpCompile
      r.java:293)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:899)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoinArg(CrossJoinArg
      Factory.java:147)
      at mondrian.rolap.sql.CrossJoinArgFactory.buildConstraintFromAllAxes(Cro
      ssJoinArgFactory.java:51)
      at mondrian.rolap.RolapNativeCrossJoin.buildArgs(RolapNativeCrossJoin.ja
      va:274)
      at mondrian.rolap.RolapNativeCrossJoin.buildConstraint(RolapNativeCrossJ
      oin.java:264)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:235)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.olap.fun.UnionFunDef$1.evaluateList(UnionFunDef.java:59)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:105)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.calc.impl.AbstractListCalc.evaluateTupleList(AbstractListCal
      c.java:89)
      at mondrian.olap.fun.HierarchizeFunDef$2.evaluateTupleList(HierarchizeFu
      nDef.java:64)
      at mondrian.calc.impl.AbstractTupleListCalc.evaluateList(AbstractTupleLi
      stCalc.java:88)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoinArg(CrossJoinArg
      Factory.java:147)
      at mondrian.rolap.sql.CrossJoinArgFactory.buildConstraintFromAllAxes(Cro
      ssJoinArgFactory.java:51)
      at mondrian.rolap.RolapNativeCrossJoin.buildArgs(RolapNativeCrossJoin.ja
      va:274)
      at mondrian.rolap.RolapNativeCrossJoin.buildConstraint(RolapNativeCrossJ
      oin.java:264)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:235)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.olap.fun.UnionFunDef$1.evaluateList(UnionFunDef.java:59)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:105)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.calc.impl.AbstractListCalc.evaluateTupleList(AbstractListCal
      c.java:89)
      at mondrian.olap.fun.HierarchizeFunDef$2.evaluateTupleList(HierarchizeFu
      nDef.java:64)
      at mondrian.calc.impl.AbstractTupleListCalc.evaluateList(AbstractTupleLi
      stCalc.java:88)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoinArg(CrossJoinArg
      Factory.java:147)
      at mondrian.rolap.sql.CrossJoinArgFactory.buildConstraintFromAllAxes(Cro
      ssJoinArgFactory.java:51)
      at mondrian.rolap.RolapNativeCrossJoin.buildArgs(RolapNativeCrossJoin.ja
      va:274)
      at mondrian.rolap.RolapNativeCrossJoin.buildConstraint(RolapNativeCrossJ
      oin.java:264)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:235)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.olap.fun.UnionFunDef$1.evaluateList(UnionFunDef.java:59)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:105)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.calc.impl.AbstractListCalc.evaluateTupleList(AbstractListCal
      c.java:89)
      at mondrian.olap.fun.HierarchizeFunDef$2.evaluateTupleList(HierarchizeFu
      nDef.java:64)
      at mondrian.calc.impl.AbstractTupleListCalc.evaluateList(AbstractTupleLi
      stCalc.java:88)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoinArg(CrossJoinArg
      Factory.java:147)
      at mondrian.rolap.sql.CrossJoinArgFactory.buildConstraintFromAllAxes(Cro
      ssJoinArgFactory.java:51)
      at mondrian.rolap.RolapNativeCrossJoin.buildArgs(RolapNativeCrossJoin.ja
      va:274)
      at mondrian.rolap.RolapNativeCrossJoin.buildConstraint(RolapNativeCrossJ
      oin.java:264)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:235)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.olap.fun.UnionFunDef$1.evaluateList(UnionFunDef.java:59)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:105)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.calc.impl.AbstractListCalc.evaluateTupleList(AbstractListCal
      c.java:89)
      at mondrian.olap.fun.HierarchizeFunDef$2.evaluateTupleList(HierarchizeFu
      nDef.java:64)
      at mondrian.calc.impl.AbstractTupleListCalc.evaluateList(AbstractTupleLi
      stCalc.java:88)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoinArg(CrossJoinArg
      Factory.java:147)
      at mondrian.rolap.sql.CrossJoinArgFactory.buildConstraintFromAllAxes(Cro
      ssJoinArgFactory.java:51)
      at mondrian.rolap.RolapNativeCrossJoin.buildArgs(RolapNativeCrossJoin.ja
      va:274)
      at mondrian.rolap.RolapNativeCrossJoin.buildConstraint(RolapNativeCrossJ
      oin.java:264)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:235)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.olap.fun.UnionFunDef$1.evaluateList(UnionFunDef.java:59)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:105)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.calc.impl.AbstractListCalc.evaluateTupleList(AbstractListCal
      c.java:89)
      at mondrian.olap.fun.HierarchizeFunDef$2.evaluateTupleList(HierarchizeFu
      nDef.java:64)
      at mondrian.calc.impl.AbstractTupleListCalc.evaluateList(AbstractTupleLi
      stCalc.java:88)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoinArg(CrossJoinArg
      Factory.java:147)
      at mondrian.rolap.sql.CrossJoinArgFactory.buildConstraintFromAllAxes(Cro
      ssJoinArgFactory.java:51)
      at mondrian.rolap.RolapNativeCrossJoin.buildArgs(RolapNativeCrossJoin.ja
      va:274)
      at mondrian.rolap.RolapNativeCrossJoin.buildConstraint(RolapNativeCrossJ
      oin.java:264)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:235)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr
      y.java:56)
      at mondrian.rolap.RolapSchemaReader.getNativeSetEvaluator(RolapSchemaRea
      der.java:608)
      at mondrian.olap.DelegatingSchemaReader.getNativeSetEvaluator(Delegating
      SchemaReader.java:235)
      at mondrian.olap.fun.CrossJoinFunDef$BaseListCalc.evaluateList(CrossJoin
      FunDef.java:1168)
      at mondrian.olap.fun.UnionFunDef$1.evaluateList(UnionFunDef.java:59)
      at mondrian.rolap.sql.CrossJoinArgFactory.expandNonNative(CrossJoinArgFa
      ctory.java:900)
      at mondrian.rolap.sql.CrossJoinArgFactory.checkCrossJoin(CrossJoinArgFac
      tory.java:345)
      at mondrian.rolap.RolapNativeCrossJoin.createEvaluator(RolapNativeCrossJ
      oin.java:105)
      at mondrian.rolap.RolapNativeRegistry.createEvaluator(RolapNativeRegistr

        Activity

        Hide
        Ezequiel Cuellar added a comment -

        MDX for this with crossjoin set to false is:

        select NON EMPTY

        {[Measures].[Quantity]}

        ON COLUMNS,
        NON EMPTY Crossjoin(Hierarchize(Crossjoin(

        {[Markets].[All Markets]}

        , Union(Crossjoin(

        {[Customers].[All Customers]}, {[Product].[All Products]}), Crossjoin({[Customers].[All Customers]}

        , [Product].[All Products].Children)))),

        {([Time].[All Years], [Order Status].[All Status Types])}

        ) ON ROWS
        from [SteelWheelsSales]

        Show
        Ezequiel Cuellar added a comment - MDX for this with crossjoin set to false is: select NON EMPTY {[Measures].[Quantity]} ON COLUMNS, NON EMPTY Crossjoin(Hierarchize(Crossjoin( {[Markets].[All Markets]} , Union(Crossjoin( {[Customers].[All Customers]}, {[Product].[All Products]}), Crossjoin({[Customers].[All Customers]} , [Product] . [All Products] .Children)))), {([Time].[All Years], [Order Status].[All Status Types])} ) ON ROWS from [SteelWheelsSales]
        Hide
        Ezequiel Cuellar added a comment -

        MDX for foodmart with crossjoin set to false is:

        select NON EMPTY

        {[Measures].[Unit Sales]}

        ON COLUMNS,
        NON EMPTY Crossjoin(Hierarchize(Crossjoin(

        {[Store].[All Stores]}

        , Crossjoin(

        {[Store Size in SQFT].[All Store Size in SQFTs]}

        , Crossjoin(

        {[Store Type].[All Store Types]}

        , Union(Crossjoin(

        {[Time].[1997]}, {[Product].[All Products]}), Crossjoin({[Time].[1997]}

        , [Product].[All Products].Children)))))),

        {([Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes])}

        ) ON ROWS
        from [Sales]

        Show
        Ezequiel Cuellar added a comment - MDX for foodmart with crossjoin set to false is: select NON EMPTY {[Measures].[Unit Sales]} ON COLUMNS, NON EMPTY Crossjoin(Hierarchize(Crossjoin( {[Store].[All Stores]} , Crossjoin( {[Store Size in SQFT].[All Store Size in SQFTs]} , Crossjoin( {[Store Type].[All Store Types]} , Union(Crossjoin( {[Time].[1997]}, {[Product].[All Products]}), Crossjoin({[Time].[1997]} , [Product] . [All Products] .Children)))))), {([Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes])} ) ON ROWS from [Sales]
        Hide
        Will Gorman added a comment - - edited

        Debugging further, this is related to setting both EnableNativeCrossJoin and ExpandNonNative to true. Please see the below Foodmart test case for an example:

        public void testExpandNonNativeWithEnableNativeCrossJoin() {
        final MondrianProperties mondrianProperties =
        MondrianProperties.instance();
        propSaver.set(mondrianProperties.EnableNativeCrossJoin, true);
        propSaver.set(mondrianProperties.ExpandNonNative, true);

        String mdx =
        "select NON EMPTY

        {[Measures].[Unit Sales]} ON COLUMNS,"
        + " NON EMPTY Crossjoin(Hierarchize(Crossjoin({[Store].[All Stores]}, Crossjoin({[Store Size in SQFT].[All Store Size in SQFTs]}, Crossjoin({[Store Type].[All Store Types]}, Union(Crossjoin({[Time].[1997]}, {[Product].[All Products]}), Crossjoin({[Time].[1997]}, [Product].[All Products].Children)))))), {([Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes])}) ON ROWS"
        + " from [Sales] ";
        assertQueryReturns(
        mdx,
        "Axis #0:\n"
        + "{}\n"
        + "Axis #1:\n"
        + "{[Measures].[Unit Sales]}

        \n"
        + "Axis #2:\n"
        + "

        {[Store].[All Stores], [Store Size in SQFT].[All Store Size in SQFTs], [Store Type].[All Store Types], [Time].[1997], [Product].[All Products], [Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes]}

        \n"
        + "

        {[Store].[All Stores], [Store Size in SQFT].[All Store Size in SQFTs], [Store Type].[All Store Types], [Time].[1997], [Product].[Drink], [Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes]}

        \n"
        + "

        {[Store].[All Stores], [Store Size in SQFT].[All Store Size in SQFTs], [Store Type].[All Store Types], [Time].[1997], [Product].[Food], [Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes]}

        \n"
        + "

        {[Store].[All Stores], [Store Size in SQFT].[All Store Size in SQFTs], [Store Type].[All Store Types], [Time].[1997], [Product].[Non-Consumable], [Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes]}

        \n"
        + "Row #0: 266,773\n"
        + "Row #1: 24,597\n"
        + "Row #2: 191,940\n"
        + "Row #3: 50,236\n");
        }

        Show
        Will Gorman added a comment - - edited Debugging further, this is related to setting both EnableNativeCrossJoin and ExpandNonNative to true. Please see the below Foodmart test case for an example: public void testExpandNonNativeWithEnableNativeCrossJoin() { final MondrianProperties mondrianProperties = MondrianProperties.instance(); propSaver.set(mondrianProperties.EnableNativeCrossJoin, true); propSaver.set(mondrianProperties.ExpandNonNative, true); String mdx = "select NON EMPTY {[Measures].[Unit Sales]} ON COLUMNS," + " NON EMPTY Crossjoin(Hierarchize(Crossjoin({[Store].[All Stores]}, Crossjoin({[Store Size in SQFT].[All Store Size in SQFTs]}, Crossjoin({[Store Type].[All Store Types]}, Union(Crossjoin({[Time].[1997]}, {[Product].[All Products]}), Crossjoin({[Time].[1997]}, [Product] . [All Products] .Children)))))), {([Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes])}) ON ROWS" + " from [Sales] "; assertQueryReturns( mdx, "Axis #0:\n" + "{}\n" + "Axis #1:\n" + "{[Measures].[Unit Sales]} \n" + "Axis #2:\n" + " {[Store].[All Stores], [Store Size in SQFT].[All Store Size in SQFTs], [Store Type].[All Store Types], [Time].[1997], [Product].[All Products], [Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes]} \n" + " {[Store].[All Stores], [Store Size in SQFT].[All Store Size in SQFTs], [Store Type].[All Store Types], [Time].[1997], [Product].[Drink], [Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes]} \n" + " {[Store].[All Stores], [Store Size in SQFT].[All Store Size in SQFTs], [Store Type].[All Store Types], [Time].[1997], [Product].[Food], [Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes]} \n" + " {[Store].[All Stores], [Store Size in SQFT].[All Store Size in SQFTs], [Store Type].[All Store Types], [Time].[1997], [Product].[Non-Consumable], [Promotion Media].[All Media], [Promotions].[All Promotions], [Customers].[All Customers], [Education Level].[All Education Levels], [Gender].[All Gender], [Marital Status].[All Marital Status], [Yearly Income].[All Yearly Incomes]} \n" + "Row #0: 266,773\n" + "Row #1: 24,597\n" + "Row #2: 191,940\n" + "Row #3: 50,236\n"); }
        Hide
        Julian Hyde added a comment -

        Fixed in change 13600.

        Show
        Julian Hyde added a comment - Fixed in change 13600.
        Hide
        Vikram NS added a comment -

        This issue has been fixed and validated using 3.7.0-M1 build on 29/Sept/10.

        Show
        Vikram NS added a comment - This issue has been fixed and validated using 3.7.0-M1 build on 29/Sept/10.

          People

          • Assignee:
            Rahul Gurjar
            Reporter:
            Ezequiel Cuellar
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: