[Mondrian] When iif has tupletypes with unequal lengths as arguments, we get an exception
Harun Pathan
harunap at gmail.com
Tue Feb 5 02:32:56 EST 2008
When we run this mdx we get an error stacktrace for which is as below.
WITH
MEMBER [Gender].agg
AS 'IIF(1=1,
([Store].[All Stores],[Gender].[All Gender]),
([Store].[All Stores],[Gender].[All Gender],measures.[unit sales])
)', SOLVE_ORDER = 4
SELECT {[Measures].[unit sales]} ON 0,
{{[Gender].[Gender].MEMBERS},{([Gender].agg)}} on 1 FROM sales
Caused by: mondrian.olap.MondrianException: Mondrian Error:Internal
error: could not derive type
at mondrian.resource.MondrianResource$_Def0.ex(Mondri anResource.java:777)
at mondrian.olap.Util.newInternal(Util.java:1333)
at mondrian.olap.fun.FunDefBase.createCall(FunDefBase .java:245)
at mondrian.mdx.UnresolvedFunCall.accept(UnresolvedFu nCall.java:101)
at mondrian.olap.Query$StackValidator.validate(Query. java:1229)
at mondrian.olap.Formula.accept(Formula.java:131)
at mondrian.olap.Query$StackValidator.validate(Query. java:1304)
at mondrian.olap.Query.resolve(Query.java:571)
at mondrian.olap.Query.resolve(Query.java:433)
at mondrian.olap.Query.<init>(Query.java:217)
at mondrian.olap.Query.<init>(Query.java:177)
at mondrian.olap.Parser.makeQuery(Parser.java:850)
at mondrian.olap.CUP$Parser$actions.CUP$Parser$do_act ion(Parser.java:1683)
at mondrian.olap.Parser.do_action(Parser.java:684)
at java_cup.runtime.lr_parser.parse(lr_parser.java:56 9)
at mondrian.olap.Parser.parseInternal(Parser.java:754 )
When iif function is resolved, it tried to get common result type between
its arguments.
It return null if the number of element types in both are unequal.Instead we
need to return a ScalarType.
Following is the code change in TupleType
TupleType that = (TupleType) type;
if (this.elementTypes.length !=
that.elementTypes.length) {
return new ScalarType(); //earlier it was returning null
}
Can we go ahead and check this in?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pentaho.org/pipermail/mondrian/attachments/20080205/a195e163/attachment.html
More information about the Mondrian
mailing list