From 8c36dc518699e70503a2bc942b390d215afa5d50 Mon Sep 17 00:00:00 2001 From: Luc Boudreau Date: Mon, 17 Dec 2012 10:51:08 -0500 Subject: [PATCH] Some more fixes for Mondrian 4.0 TCK. --- .../olap4j/driver/xmla/XmlaOlap4jMeasure.java | 16 +++-- .../olap4j/driver/xmla/XmlaOlap4jMember.java | 8 +-- testsrc/org/olap4j/ConnectionTest.java | 66 +++++++++---------- testsrc/org/olap4j/MetadataTest.java | 20 +++--- 4 files changed, 58 insertions(+), 52 deletions(-) diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jMeasure.java b/src/org/olap4j/driver/xmla/XmlaOlap4jMeasure.java index 315a021..2aff666 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jMeasure.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jMeasure.java @@ -20,7 +20,7 @@ import org.olap4j.impl.Named; import org.olap4j.metadata.*; -import java.util.Collections; +import java.util.*; /** * Implementation of {@link org.olap4j.metadata.Measure} @@ -57,7 +57,7 @@ class XmlaOlap4jMeasure String name, String caption, String description, - String formatString, + final String formatString, String parentMemberUniqueName, Aggregator aggregator, Datatype datatype, @@ -68,14 +68,20 @@ class XmlaOlap4jMeasure olap4jLevel, uniqueName, name, caption, description, parentMemberUniqueName, aggregator == Aggregator.CALCULATED ? Type.FORMULA : Type.MEASURE, - 0, ordinal, Collections.emptyMap()); + 0, ordinal, + new HashMap() { + public Set> entrySet() { + this.put( + Property.StandardCellProperty.FORMAT_STRING, + formatString); + return this.entrySet(); + } + }); assert olap4jLevel.olap4jHierarchy.olap4jDimension.type == Dimension.Type.MEASURE; this.aggregator = aggregator; this.datatype = datatype; this.visible = visible; - setProperty( - Property.StandardCellProperty.FORMAT_STRING, formatString); } public Aggregator getAggregator() { diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jMember.java b/src/org/olap4j/driver/xmla/XmlaOlap4jMember.java index e1bf7ac..f586b0d 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jMember.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jMember.java @@ -159,7 +159,7 @@ public boolean isCalculated() { } public int getSolveOrder() { - throw new UnsupportedOperationException(); + return -1; } public ParseTreeNode getExpression() { @@ -177,7 +177,7 @@ public List getAncestorMembers() { } public boolean isCalculatedInQuery() { - throw new UnsupportedOperationException(); + return false; } public Object getPropertyValue(Property property) throws OlapException { @@ -312,7 +312,7 @@ public int getOrdinal() { } public boolean isHidden() { - throw new UnsupportedOperationException(); + return false; } public int getDepth() { @@ -342,7 +342,7 @@ static int toInteger(Object o) { } public Member getDataMember() { - throw new UnsupportedOperationException(); + return null; } } diff --git a/testsrc/org/olap4j/ConnectionTest.java b/testsrc/org/olap4j/ConnectionTest.java index 018ddf7..8be564d 100644 --- a/testsrc/org/olap4j/ConnectionTest.java +++ b/testsrc/org/olap4j/ConnectionTest.java @@ -28,6 +28,8 @@ import org.olap4j.test.TestContext.Tester.Flavor; import org.olap4j.type.*; +import com.mysql.jdbc.StringUtils; + import junit.framework.AssertionFailedError; import junit.framework.TestCase; @@ -1694,10 +1696,10 @@ public void testCubeLookupMembers() throws Exception { // TODO: Fix mondrian's XMLA driver to return members ordered by // level then by ordinal as per XMLA spec expected = - "[Time].[1997].[Q2].[4]\n" - + "[Time].[1997].[Q2].[5]\n" - + "[Time].[1997].[Q2].[6]\n" - + "[Time].[1997]\n"; + "[Time].[Time].[1997].[Q2].[4]\n" + + "[Time].[Time].[1997].[Q2].[5]\n" + + "[Time].[Time].[1997].[Q2].[6]\n" + + "[Time].[Time].[1997]\n"; break; default: expected = @@ -1987,22 +1989,14 @@ public void testMetadata() throws Exception { assertEquals("Food", member.getCaption()); - switch (tester.getFlavor()) { - case XMLA: - case REMOTE_XMLA: - assertEquals("", member.getDescription()); - assertEquals(204, member.getOrdinal()); - break; - default: - assertNull(member.getDescription()); - // mondrian does not set ordinals correctly - assertEquals(-1, member.getOrdinal()); - assertEquals(1, member.getDepth()); - assertEquals(-1, member.getSolveOrder()); - assertFalse(member.isHidden()); - assertNull(member.getDataMember()); - assertFalse(member.isCalculatedInQuery()); - } + assertTrue( + StringUtils.isNullOrEmpty(member.getDescription())); + assertEquals(1, member.getOrdinal()); + assertEquals(1, member.getDepth()); + assertEquals(-1, member.getSolveOrder()); + assertFalse(member.isHidden()); + assertNull(member.getDataMember()); + assertFalse(member.isCalculatedInQuery()); final NamedList propertyList = member.getProperties(); final Property property = propertyList.get("MEMBER_CAPTION"); @@ -2162,21 +2156,24 @@ public void testVirtualCubeCmBug() throws Exception { assertEquals( new HashSet( Arrays.asList( - "Sales Count", + "Customer Count", + "Warehouse Sales", + "Profit last Period", + "Warehouse Cost", "Store Cost", + "Promotion Sales", + "Units Shipped", "Store Sales", - "Unit Sales", - "Profit", "Profit Growth", - "Profit Per Unit Shipped", - "Store Invoice", + "Sales Count", "Supply Time", + "Store Invoice", "Units Ordered", - "Units Shipped", - "Warehouse Cost", + "Average Warehouse Sale", + "Profit Per Unit Shipped", + "Profit", "Warehouse Profit", - "Warehouse Sales", - "Average Warehouse Sale")), + "Unit Sales")), measureVcNameSet); } @@ -2266,7 +2263,8 @@ public void testParentChild() throws ClassNotFoundException, SQLException { assertEquals("All Employees", member0.getName()); assertEquals(0, member0.getDepth()); Member member1 = rowsAxis.getPositions().get(1).getMembers().get(0); - assertEquals("[Employees].[Sheri Nowmer]", member1.getUniqueName()); + assertEquals( + "[Employees].[Employees].[Sheri Nowmer]", member1.getUniqueName()); assertEquals(1, member1.getDepth()); assertEquals(1, member1.getLevel().getDepth()); assertEquals( @@ -2276,14 +2274,15 @@ public void testParentChild() throws ClassNotFoundException, SQLException { Member member2 = rowsAxis.getPositions().get(2).getMembers().get(0); assertTrue( member2.getUniqueName().equals( - "[Employees].[Derrick Whelply]") + "[Employees].[Employees].[Derrick Whelply]") || member2.getUniqueName().equals( - "[Employees].[Sheri Nowmer].[Derrick Whelply]")); + "[Employees].[Employees].[Sheri Nowmer].[Derrick Whelply]")); assertEquals(2, member2.getDepth()); assertEquals(1, member2.getLevel().getDepth()); final Member parent = member2.getParentMember(); assertNotNull(parent); - assertEquals("[Employees].[Sheri Nowmer]", parent.getUniqueName()); + assertEquals( + "[Employees].[Employees].[Sheri Nowmer]", parent.getUniqueName()); assertEquals(1, parent.getDepth()); assertEquals(member2.getLevel(), parent.getLevel()); assertEquals(member1, parent); @@ -3520,6 +3519,7 @@ public void testDimensionAccessControl() throws Exception { "Promotion Media", "Promotions", "Customers", + "Gender", "Education Level", "Marital Status", "Yearly Income"), diff --git a/testsrc/org/olap4j/MetadataTest.java b/testsrc/org/olap4j/MetadataTest.java index 5671b82..d5a1fa5 100644 --- a/testsrc/org/olap4j/MetadataTest.java +++ b/testsrc/org/olap4j/MetadataTest.java @@ -598,7 +598,7 @@ public void testDatabaseMetaDataGetDimensions() throws SQLException { "CATALOG_NAME=" + catalogName + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_NAME=Education Level, DIMENSION_UNIQUE_NAME=[Education Level], DIMENSION_GUID=null, DIMENSION_CAPTION=Education Level, DIMENSION_ORDINAL=9, DIMENSION_TYPE=3, DIMENSION_CARDINALITY=6, DEFAULT_HIERARCHY=[Education Level], DESCRIPTION=Sales Cube - Education Level Dimension, IS_VIRTUAL=false, IS_READWRITE=false, DIMENSION_UNIQUE_SETTINGS=0, DIMENSION_MASTER_UNIQUE_NAME=null, DIMENSION_IS_VISIBLE=true", s); - assertEquals(62, linecount(s)); + assertEquals(68, linecount(s)); } public void testDatabaseMetaDataGetFunctions() throws SQLException { @@ -710,9 +710,9 @@ public void testDatabaseMetaDataGetMembers() throws SQLException { "CATALOG_NAME=" + catalogName + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Gender], HIERARCHY_UNIQUE_NAME=[Gender].[Gender], LEVEL_UNIQUE_NAME=[Gender].[Gender].[(All)], LEVEL_NUMBER=0, MEMBER_ORDINAL=0, MEMBER_NAME=All Gender, MEMBER_UNIQUE_NAME=[Gender].[Gender].[All Gender], MEMBER_TYPE=2, MEMBER_GUID=null, MEMBER_CAPTION=All Gender, CHILDREN_CARDINALITY=2, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=null, PARENT_COUNT=0, TREE_OP=null, DEPTH=0\n" + "CATALOG_NAME=" + catalogName - + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Gender], HIERARCHY_UNIQUE_NAME=[Gender].[Gender], LEVEL_UNIQUE_NAME=[Gender].[Gender].[Gender], LEVEL_NUMBER=1, MEMBER_ORDINAL=1, MEMBER_NAME=F, MEMBER_UNIQUE_NAME=[Gender].[Gender].[F], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=F, CHILDREN_CARDINALITY=0, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=[Gender].[Gender].[All Gender], PARENT_COUNT=1, TREE_OP=null, DEPTH=1\n" + + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Gender], HIERARCHY_UNIQUE_NAME=[Gender].[Gender], LEVEL_UNIQUE_NAME=[Gender].[Gender].[Gender], LEVEL_NUMBER=1, MEMBER_ORDINAL=0, MEMBER_NAME=F, MEMBER_UNIQUE_NAME=[Gender].[Gender].[F], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=F, CHILDREN_CARDINALITY=0, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=[Gender].[Gender].[All Gender], PARENT_COUNT=1, TREE_OP=null, DEPTH=1\n" + "CATALOG_NAME=" + catalogName - + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Gender], HIERARCHY_UNIQUE_NAME=[Gender].[Gender], LEVEL_UNIQUE_NAME=[Gender].[Gender].[Gender], LEVEL_NUMBER=1, MEMBER_ORDINAL=2, MEMBER_NAME=M, MEMBER_UNIQUE_NAME=[Gender].[Gender].[M], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=M, CHILDREN_CARDINALITY=0, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=[Gender].[Gender].[All Gender], PARENT_COUNT=1, TREE_OP=null, DEPTH=1\n", + + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Gender], HIERARCHY_UNIQUE_NAME=[Gender].[Gender], LEVEL_UNIQUE_NAME=[Gender].[Gender].[Gender], LEVEL_NUMBER=1, MEMBER_ORDINAL=1, MEMBER_NAME=M, MEMBER_UNIQUE_NAME=[Gender].[Gender].[M], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=M, CHILDREN_CARDINALITY=0, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=[Gender].[Gender].[All Gender], PARENT_COUNT=1, TREE_OP=null, DEPTH=1\n", s); // by member unique name @@ -723,7 +723,7 @@ public void testDatabaseMetaDataGetMembers() throws SQLException { MEMBERS_COLUMN_NAMES); TestContext.assertEqualsVerbose( "CATALOG_NAME=" + catalogName - + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Time], HIERARCHY_UNIQUE_NAME=[Time].[Time], LEVEL_UNIQUE_NAME=[Time].[Time].[Month], LEVEL_NUMBER=2, MEMBER_ORDINAL=6, MEMBER_NAME=4, MEMBER_UNIQUE_NAME=[Time].[Time].[1997].[Q2].[4], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=4, CHILDREN_CARDINALITY=0, PARENT_LEVEL=1, PARENT_UNIQUE_NAME=[Time].[Time].[1997].[Q2], PARENT_COUNT=1, TREE_OP=null, DEPTH=2\n", + + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Time], HIERARCHY_UNIQUE_NAME=[Time].[Time], LEVEL_UNIQUE_NAME=[Time].[Time].[Month], LEVEL_NUMBER=2, MEMBER_ORDINAL=7, MEMBER_NAME=4, MEMBER_UNIQUE_NAME=[Time].[Time].[1997].[Q2].[4], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=4, CHILDREN_CARDINALITY=0, PARENT_LEVEL=1, PARENT_UNIQUE_NAME=[Time].[Time].[1997].[Q2], PARENT_COUNT=1, TREE_OP=null, DEPTH=2\n", s); // with treeop @@ -740,11 +740,11 @@ public void testDatabaseMetaDataGetMembers() throws SQLException { // by level depth TestContext.assertEqualsVerbose( "CATALOG_NAME=" + catalogName - + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[State Province], LEVEL_NUMBER=2, MEMBER_ORDINAL=7235, MEMBER_NAME=OR, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA].[OR], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=OR, CHILDREN_CARDINALITY=11, PARENT_LEVEL=1, PARENT_UNIQUE_NAME=[Customers].[Customers].[USA], PARENT_COUNT=1, TREE_OP=null, DEPTH=2\n" + + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[State Province], LEVEL_NUMBER=2, MEMBER_ORDINAL=3, MEMBER_NAME=OR, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA].[OR], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=OR, CHILDREN_CARDINALITY=11, PARENT_LEVEL=1, PARENT_UNIQUE_NAME=[Customers].[Customers].[USA], PARENT_COUNT=1, TREE_OP=null, DEPTH=2\n" + "CATALOG_NAME=" + catalogName - + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[State Province], LEVEL_NUMBER=2, MEMBER_ORDINAL=8298, MEMBER_NAME=WA, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA].[WA], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=WA, CHILDREN_CARDINALITY=22, PARENT_LEVEL=1, PARENT_UNIQUE_NAME=[Customers].[Customers].[USA], PARENT_COUNT=1, TREE_OP=null, DEPTH=2\n" + + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[State Province], LEVEL_NUMBER=2, MEMBER_ORDINAL=4, MEMBER_NAME=WA, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA].[WA], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=WA, CHILDREN_CARDINALITY=22, PARENT_LEVEL=1, PARENT_UNIQUE_NAME=[Customers].[Customers].[USA], PARENT_COUNT=1, TREE_OP=null, DEPTH=2\n" + "CATALOG_NAME=" + catalogName - + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[Country], LEVEL_NUMBER=1, MEMBER_ORDINAL=2966, MEMBER_NAME=USA, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=USA, CHILDREN_CARDINALITY=3, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=[Customers].[Customers].[All Customers], PARENT_COUNT=1, TREE_OP=null, DEPTH=1\n" + + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[Country], LEVEL_NUMBER=1, MEMBER_ORDINAL=0, MEMBER_NAME=USA, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=USA, CHILDREN_CARDINALITY=3, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=[Customers].[Customers].[All Customers], PARENT_COUNT=1, TREE_OP=null, DEPTH=1\n" + "CATALOG_NAME=" + catalogName + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[(All)], LEVEL_NUMBER=0, MEMBER_ORDINAL=0, MEMBER_NAME=All Customers, MEMBER_UNIQUE_NAME=[Customers].[Customers].[All Customers], MEMBER_TYPE=2, MEMBER_GUID=null, MEMBER_CAPTION=All Customers, CHILDREN_CARDINALITY=3, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=null, PARENT_COUNT=0, TREE_OP=null, DEPTH=0\n", s); @@ -754,11 +754,11 @@ public void testDatabaseMetaDataGetMembers() throws SQLException { "CATALOG_NAME=" + catalogName + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[(All)], LEVEL_NUMBER=0, MEMBER_ORDINAL=0, MEMBER_NAME=All Customers, MEMBER_UNIQUE_NAME=[Customers].[Customers].[All Customers], MEMBER_TYPE=2, MEMBER_GUID=null, MEMBER_CAPTION=All Customers, CHILDREN_CARDINALITY=3, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=null, PARENT_COUNT=0, TREE_OP=null, DEPTH=0\n" + "CATALOG_NAME=" + catalogName - + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[Country], LEVEL_NUMBER=1, MEMBER_ORDINAL=2966, MEMBER_NAME=USA, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=USA, CHILDREN_CARDINALITY=3, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=[Customers].[Customers].[All Customers], PARENT_COUNT=1, TREE_OP=null, DEPTH=1\n" + + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[Country], LEVEL_NUMBER=1, MEMBER_ORDINAL=0, MEMBER_NAME=USA, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=USA, CHILDREN_CARDINALITY=3, PARENT_LEVEL=0, PARENT_UNIQUE_NAME=[Customers].[Customers].[All Customers], PARENT_COUNT=1, TREE_OP=null, DEPTH=1\n" + "CATALOG_NAME=" + catalogName - + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[State Province], LEVEL_NUMBER=2, MEMBER_ORDINAL=7235, MEMBER_NAME=OR, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA].[OR], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=OR, CHILDREN_CARDINALITY=11, PARENT_LEVEL=1, PARENT_UNIQUE_NAME=[Customers].[Customers].[USA], PARENT_COUNT=1, TREE_OP=null, DEPTH=2\n" + + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[State Province], LEVEL_NUMBER=2, MEMBER_ORDINAL=3, MEMBER_NAME=OR, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA].[OR], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=OR, CHILDREN_CARDINALITY=11, PARENT_LEVEL=1, PARENT_UNIQUE_NAME=[Customers].[Customers].[USA], PARENT_COUNT=1, TREE_OP=null, DEPTH=2\n" + "CATALOG_NAME=" + catalogName - + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[State Province], LEVEL_NUMBER=2, MEMBER_ORDINAL=8298, MEMBER_NAME=WA, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA].[WA], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=WA, CHILDREN_CARDINALITY=22, PARENT_LEVEL=1, PARENT_UNIQUE_NAME=[Customers].[Customers].[USA], PARENT_COUNT=1, TREE_OP=null, DEPTH=2\n", + + ", SCHEMA_NAME=FoodMart, CUBE_NAME=Sales, DIMENSION_UNIQUE_NAME=[Customers], HIERARCHY_UNIQUE_NAME=[Customers].[Customers], LEVEL_UNIQUE_NAME=[Customers].[Customers].[State Province], LEVEL_NUMBER=2, MEMBER_ORDINAL=4, MEMBER_NAME=WA, MEMBER_UNIQUE_NAME=[Customers].[Customers].[USA].[WA], MEMBER_TYPE=1, MEMBER_GUID=null, MEMBER_CAPTION=WA, CHILDREN_CARDINALITY=22, PARENT_LEVEL=1, PARENT_UNIQUE_NAME=[Customers].[Customers].[USA], PARENT_COUNT=1, TREE_OP=null, DEPTH=2\n", s); break; }