When we run this mdx we get an error stacktrace for which is as below.<br><br>WITH <br>MEMBER [Gender].agg<br>AS &#39;IIF(1=1, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ([Store].[All Stores],[Gender].[All Gender]),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ([Store].[All Stores],[Gender].[All Gender],measures.[unit sales]) )&#39;, SOLVE_ORDER = 4<br>
SELECT {[Measures].[unit sales]} ON 0, <br>{{[Gender].[Gender].MEMBERS},{([Gender].agg)}} on 1 FROM sales<br><br>Caused by: mondrian.olap.MondrianException: Mondrian Error:Internal<br>error: could not derive type<br>at mondrian.resource.MondrianResource$_Def0.ex(Mondri anResource.java:777)<br>
at mondrian.olap.Util.newInternal(Util.java:1333)<br>at mondrian.olap.fun.FunDefBase.createCall(FunDefBase .java:245)<br>at mondrian.mdx.UnresolvedFunCall.accept(UnresolvedFu nCall.java:101)<br>at mondrian.olap.Query$StackValidator.validate(Query. java:1229)<br>
at mondrian.olap.Formula.accept(Formula.java:131)<br>at mondrian.olap.Query$StackValidator.validate(Query. java:1304)<br>at mondrian.olap.Query.resolve(Query.java:571)<br>at mondrian.olap.Query.resolve(Query.java:433)<br>
at mondrian.olap.Query.&lt;init&gt;(Query.java:217)<br>at mondrian.olap.Query.&lt;init&gt;(Query.java:177)<br>at mondrian.olap.Parser.makeQuery(Parser.java:850)<br>at mondrian.olap.CUP$Parser$actions.CUP$Parser$do_act ion(Parser.java:1683)<br>
at mondrian.olap.Parser.do_action(Parser.java:684)<br>at java_cup.runtime.lr_parser.parse(lr_parser.java:56 9)<br>at mondrian.olap.Parser.parseInternal(Parser.java:754 )<br><br>When iif function is resolved, it tried to get common result type between its arguments. <br>
It return null if the number of element types in both are unequal.Instead we need to return a ScalarType.<br><br>Following is the code change in TupleType<br><br>TupleType that = (TupleType) type;<br>if (this.elementTypes.length !=<br>
&nbsp;&nbsp;&nbsp; that.elementTypes.length) {<br>&nbsp;&nbsp;&nbsp; return new ScalarType();&nbsp;&nbsp; //earlier it was returning null<br>}<br><br><br>Can we go ahead and check this in?<br>