<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div apple-content-edited="true">(Signed messages arenot easy readable.... sorry....)<div><br></div><div><div><div>Hi all,</div><div><br></div><div>about this question, problem arises when using functions with high cardinality dimensions not implemented (or not implementable) for this kind of dimensions.</div><div>Since not every function or query will work for high cardinality dimensions, I think it's not a good idea to use "mondrian.test.highCardDimensions=...". The solution would be to use mondrian/rolap/HighDimensionsTest (or simiar) and include any tests related with high dimensions into it instead of this kind of "blind" tests for all functions.</div><div><br></div><div>So the first thing to do is: move from testing every functions against high card. dimensions to detailed tests function by function for suitable ones.</div><div><br></div><div>The key question here is the limitations for the meaning of "high cardility" feature: high cardinality dimensions are able to be managed. But the use of functions with these kind of dimensions can't be equivalent to usual dimensions. Mainly, all functions that require the whole set of elements to produce a result will not work for high cardinality dimensions (obviously).</div><div><br></div><div>At this time, we have no human sructure to refactor everything and implement all possible functions to work with high dimension property (Mondrian is a very big project).&nbsp;</div><div>It's a continuous task, open for everyone, ans sould be done by everyone.</div><div><br></div><div>The first (and most difficult) step has been done: Mondrian can read high cardinality dimensions; the second step (implement all suitable functions to work for high cardimality dimensions) is drafted, with "head", "count", "filter" and "non empty" functions already running.&nbsp;</div><div><br></div><div>I see here an opportunity to "transfer knowledge": it would be better that someone (different than us) made propper changes to implement "Ancestor" function (if has sense) for high cardilanity dimensions. For example, for "Ancestor" function, the approach would be:</div><div>&nbsp;&nbsp; The first question: Would Ancestor work for high cardinality dimensions?&nbsp;</div><div>&nbsp;&nbsp; Second question: How would it work for h.c. dimensions?</div><div>&nbsp;&nbsp; Then, implement it.</div><div><br></div><div><br></div><div>Best regards!</div><div><br></div></div></div> </div><br><div><div>On 14/07/2008, at 8:47, Luis F. Canals wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>Hi all,</div><div><br></div><div>about this question, problem arises when using functions with high cardinality dimensions not implemented (or not implementable) for this kind of dimensions.</div><div>Since not every function or query will work for high cardinality dimensions, I think it's not a good idea to use "mondrian.test.highCardDimensions=...". The solution would be to use mondrian/rolap/HighDimensionsTest (or simiar) and include any tests related with high dimensions into it instead of this kind of "blind" tests for all functions.</div><div><br></div><div>So the first thing to do is: move from testing every functions against high card. dimensions to detailed tests function by function for suitable ones.</div><div><br></div><div>The key question here is the limitations for the meaning of "high cardility" feature: high cardinality dimensions are able to be managed. But the use of functions with these kind of dimensions can't be equivalent to usual dimensions. Mainly, all functions that require the whole set of elements to produce a result will not work for high cardinality dimensions (obviously).</div><div><br></div><div>At this time, we have no human sructure to refactor everything and implement all possible functions to work with high dimension property (Mondrian is a very big project).&nbsp;</div><div>It's a continuous task, open for everyone, ans sould be done by everyone.</div><div><br></div><div>The first (and most difficult) step has been done: Mondrian can read high cardinality dimensions; the second step (implement all suitable functions to work for high cardimality dimensions) is drafted, with "head", "count", "filter" and "non empty" functions already running.&nbsp;</div><div><br></div><div>I see here an opportunity to "transfer knowledge": it would be better that someone (different than us) made propper changes to implement "Ancestor" function (if has sense) for high cardilanity dimensions. For example, for "Ancestor" function, the approach would be:</div><div>&nbsp;&nbsp; The first question: Would Ancestor work for high cardinality dimensions?&nbsp;</div><div>&nbsp;&nbsp; Second question: How would it work for h.c. dimensions?</div><div>&nbsp;&nbsp; Then, implement it.</div><div><br></div><div><br></div><div>Best regards!</div><div><br></div></div><br><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>- Luis F. Canals</div><div>&nbsp;&nbsp;CISM</div><div>&nbsp;&nbsp;<a href="mailto:luis.canals@stratebi.com">luis.canals@stratebi.com</a></div><div><br></div></div></span><br class="Apple-interchange-newline"> </div><br><div><div>On 06/07/2008, at 19:48, Julian Hyde wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"> <div> <div><span lang="EN"><p><span class="956503317-06072008"><font face="Verdana" color="#000080" size="2">Luis, Jorge, Javier,</font></span></p><p><span class="956503317-06072008"><font face="Verdana" color="#000080" size="2">There are still some errors with high-cardinality dimensions. See below; and also search for 'execHighCardTest' in <a href="http://www.hydromatic.net/buildlogs/mondrian-marmalade.hydromatic.net-20080705-change11263.log.bz2">http://www.hydromatic.net/buildlogs/mondrian-marmalade.hydromatic.net-20080705-change11263.log.bz2</a>.</font></span></p><p><span class="956503317-06072008"><font face="Verdana" color="#000080" size="2">Do you know about these? Any idea what the cause is? When can they be fixed?</font></span></p><p><span class="956503317-06072008"><font face="Verdana" color="#000080" size="2">Julian</font></span></p><p>Running test with JDK=jdk1.6 retroweave= database=oracle props={ mondrian.test.highCardDimensions=Store}</p><p>[java] 1) testAncestorNumeric(mondrian.olap.fun.FunctionTest)mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'select {Ancestor([Store].[USA].[Washington], 1)} on columns from [Sales Ragged]'</p><p>[java] 2) testAncestorWithHiddenParent(mondrian.olap.fun.FunctionTest)mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'select {Ancestor([Store].[All Stores].[Israel].[Haifa], [Store].[Store Country])} on columns from [Sales Ragged]'</p><p>[java] 3) testOrdinal(mondrian.olap.fun.FunctionTest)mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'with member [Measures].[Foo] as '[Store].[All Stores].[USA].[Washington].ordinal' select {[Measures].[Foo]} on columns from [Sales Ragged]'</p><p>[java] 4) testLead(mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'select {[Store].[All Stores].[Mexico].[DF].Lead(1)} on columns from [Sales Ragged]'</p><p>[java] 5) testParentOfHaifa(mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'select {[Store].[Israel].[Haifa].Parent} on columns from [Sales Ragged]'</p><p>[java] 6) testPrevMemberOfHaifa(mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'select {[Store].[Israel].[Haifa].PrevMember} on columns from [Sales Ragged]'</p><p>[java] 7) testNextMemberOfTelAviv(mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'select {[Store].[Israel].[Tel Aviv].NextMember} on columns from [Sales Ragged]'</p><p>[java] 8) testNextMemberOfBC(mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'select {[Store].[All Stores].[Canada].[BC].NextMember} on columns from [Sales Ragged]'</p><p>[java] 9) testAncestorOfHaifa(mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'select {Ancestor([Store].[Israel].[Haifa], [Store].[Store State])} on columns from [Sales Ragged]'</p><p>[java] 10) testDataSourceChangeListenerPlugin(mondrian.rolap.DataSourceChangeListenerTest)java.lang.ClassCastException: mondrian.rolap.NoCacheMemberReader cannot be cast to mondrian.rolap.SmartMemberReader</p><p>[java] 11) testLookupMemberCache(mondrian.rolap.NonEmptyTest)java.lang.ClassCastException: mondrian.rolap.NoCacheMemberReader cannot be cast to mondrian.rolap.SmartMemberReader</p><p>[java] 12) testLookupMember2(mondrian.rolap.NonEmptyTest)mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'select {[Store].[USA].[Washington]} on columns from [Sales Ragged]'</p><p>[java] 1) testCrossJoinAsteriskQuery(mondrian.olap.fun.FunctionTest)junit.framework.ComparisonFailure: Expected:</p><p>[java] 2) testCalculatedMemberInCube(mondrian.test.TestCalculatedMembers)junit.framework.ComparisonFailure: Expected:</p><p>[java] 3) testHierarchize(mondrian.test.RaggedHierarchyTest)junit.framework.ComparisonFailure: Expected:</p><p>[java] 4) testDescendantsOfRootAtCity(mondrian.test.RaggedHierarchyTest)junit.framework.ComparisonFailure: Expected:</p><p>[java] Tests run: 1856, Failures: 4, Errors: 12</p></span></div></div></blockquote></div><br></div></blockquote></div><br></body></html>