[Mondrian] RE: Cron <jhyde at marmalade> nice bash --login /home/jhyde/open2/mondrian/testAll --nightly

Robin Tharappel rtharappel at prospricing.com
Fri Aug 17 17:08:01 EDT 2007


I went ahead and changed the test to use a NonEmptyCrossJoin instead of
a CrossJoin. Using the NonEmptyCrossJoin still reproduces the bug
reported with tracker 1630754 and no longer occurs with the Mondrian
tip. The test case passes with the mondrian.native.nonempty.enable set
to true and false.

However I was not sure if changing the mondrian.native.nonempty.enable
to false should result in a different result set size if a CrossJoin is
used. The customer dimension has a total of 10281 members with 5581
members being non empty. Using a CrossJoin you would expect the result
set to have a row for all 10281 customers. However if the
mondrian.native.nonempty.enable is set to true only 5581 rows are
returned (using the same CrossJoin query). 

Looking at the SQL when mondrian.native.nonempty.enable=false the query
to obtain the customer members joins with the fact table to get the
non-empty members even when a CrossJoin is used:

select "customer"."customer_id" as "c0" from "customer" "customer",
"sales_fact_1997" "sales_fact_1997" 
where "sales_fact_1997"."customer_id" = "customer"."customer_id" 
group by "customer"."customer_id" order by "customer"."customer_id" ASC

I was anticipating the result set to have the all the customers in the
result set regardless of the mondrian.native.nonempty.enable property.
Let me know what you think and if a separate tracker should be opened
for this. 

Thanks,

Robin

-----Original Message-----
From: Julian Hyde [mailto:julianhyde at speakeasy.net] 
Sent: Friday, August 17, 2007 12:33 PM
To: Robin Tharappel
Cc: mondrian at pentaho.org
Subject: FW: Cron <jhyde at marmalade> nice bash --login
/home/jhyde/open2/mondrian/testAll --nightly

Robin,

Your new test failed the regression last night:

     [java] 1)
testBug1630754(mondrian.test.BasicQueryTest)junit.framework.AssertionFai
ledE
rror: expected:<5581> but was:<10281>
     [java] 	at
mondrian.test.BasicQueryTest.testBug1630754(BasicQueryTest.java:5930)
     [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
     [java] 	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39
)
     [java] 	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl
.java:25)
     [java] 	at
mondrian.test.MondrianTestRunner$2.run(MondrianTestRunner.java:130)
     [java] 	at java.lang.Thread.run(Thread.java:619)

With the configuration:

Running test with JDK=jdk1.6 database=oracle props={
mondrian.rolap.aggregates.Use=true mondrian.rolap.aggregates.Read=true
mondrian.rolap.aggregates.ChooseByVolume=true
mondrian.rolap.star.disableCaching=true
mondrian.native.filter.enable=false
mondrian.native.nonempty.enable=false
mondrian.xmla.drillthroughTotalCount.enable=false
mondrian.olap.fun.crossjoin.optimizer.size=0
mondrian.rolap.groupingsets.enable=true}

I managed to reproduce it on access with just the flag
-Dmondrian.native.nonempty.enable=false.

Can you take a look?

Julian

-----Original Message-----
From: Cron Daemon [mailto:root at marmalade.hydromatic.net] 
Sent: Thursday, August 16, 2007 11:00 PM
To: julianhyde at gmail.com
Subject: Cron <jhyde at marmalade> nice bash --login
/home/jhyde/open2/mondrian/testAll --nightly

... - file(s) up-to-date.
No file(s) to resolve.
At revision 26.

::: Summary :::::::::::::::::::::::::::::::::::::
Tests completed at Fri Aug 17 01:10:50 PDT 2007.
Running test with JDK=jdk1.6 database=oracle props={}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=oracle props={}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=derby props={
mondrian.test.VUsers=1}
     [java] OK (1463 tests)
Running test with JDK=jdk1.4 database=mysql props={
mondrian.test.VUsers=1
mondrian.rolap.aggregates.Use=true mondrian.rolap.aggregates.Read=true}
     [java] 1)
testUnknownUsages(mondrian.test.SchemaTest)junit.framework.ComparisonFai
lure
: expected:<......> but was:<...06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 2)
testUnknownUsages1(mondrian.test.SchemaTest)junit.framework.ComparisonFa
ilur
e: expected:<...> but was:<...WARN - Recognizer.checkUnusedColumns:
Candidate aggregate table 'agg_lc_06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] Tests run: 1463,  Failures: 2,  Errors: 0
Running test with JDK=jdk1.5 database=mysql props={
mondrian.test.VUsers=1
mondrian.rolap.aggregates.Use=true mondrian.rolap.aggregates.Read=true}
     [java] 1)
testUnknownUsages(mondrian.test.SchemaTest)junit.framework.ComparisonFai
lure
: expected:<......> but was:<...06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 2)
testUnknownUsages1(mondrian.test.SchemaTest)junit.framework.ComparisonFa
ilur
e: expected:<...> but was:<...WARN - Recognizer.checkUnusedColumns:
Candidate aggregate table 'agg_lc_06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 3)
testGroupBatchesForTwoSetOfGroupableBatches(mondrian.rolap.FastBatchingC
ellR
eaderTest)junit.framework.AssertionFailedError: expected:<2> but was:<4>
     [java] 4)
testCanBatchForBatchesFromSameAggregationButDifferentRollupOption(mondri
an.r
olap.FastBatchingCellReaderTest)junit.framework.AssertionFailedError
     [java] Tests run: 1463,  Failures: 4,  Errors: 0
Running test with JDK=jdk1.4 database=oracle props={
mondrian.test.VUsers=1}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=oracle props={
mondrian.test.VUsers=1}
     [java] OK (1463 tests)
Running test with JDK=jdk1.6 database=oracle props={
mondrian.test.VUsers=1}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=oracle props={
mondrian.test.ExpDependencies=10 mondrian.rolap.evaluate.MaxEvalDepth=6
mondrian.test.random.seed=-1 mondrian.expCache.enable=false}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=oracle props={
mondrian.rolap.aggregates.Use=true mondrian.rolap.aggregates.Read=true}
     [java] 1)
testUnknownUsages(mondrian.test.SchemaTest)junit.framework.ComparisonFai
lure
: expected:<......> but was:<...06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 2)
testUnknownUsages1(mondrian.test.SchemaTest)junit.framework.ComparisonFa
ilur
e: expected:<...> but was:<...WARN - Recognizer.checkUnusedColumns:
Candidate aggregate table 'agg_lc_06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 3)
testGroupingSetForSingleColumnConstraint(mondrian.rolap.GroupingSetQuery
Test
)junit.framework.ComparisonFailure: Expected:
     [java] 4)
testGroupingSetForMultipleMeasureAndSingleConstraint(mondrian.rolap.Grou
ping
SetQueryTest)junit.framework.ComparisonFailure: Expected:
     [java] 5)
testGroupingSetForMultipleColumnConstraint(mondrian.rolap.GroupingSetQue
ryTe
st)junit.framework.AssertionFailedError
     [java] 6)
testGroupBatchesForTwoSetOfGroupableBatches(mondrian.rolap.FastBatchingC
ellR
eaderTest)junit.framework.AssertionFailedError: expected:<2> but was:<4>
     [java] 7)
testCanBatchForBatchesFromSameAggregationButDifferentRollupOption(mondri
an.r
olap.FastBatchingCellReaderTest)junit.framework.AssertionFailedError
     [java] Tests run: 1463,  Failures: 7,  Errors: 0
Running test with JDK=jdk1.5 database=oracle props={
mondrian.olap.case.sensitive=false}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=mysql props={
mondrian.rolap.star.disableCaching=true
mondrian.olap.case.sensitive=false
mondrian.test.ExpDependencies=10 mondrian.rolap.evaluate.MaxEvalDepth=6
mondrian.rolap.star.disableCaching=true
mondrian.rolap.SparseSegmentValueThreshold=10
mondrian.olap.fun.crossjoin.optimizer.size=10000
mondrian.rolap.groupingsets.enable=true}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=oracle props={
mondrian.test.ExpDependencies=10 mondrian.rolap.evaluate.MaxEvalDepth=6
mondrian.test.random.seed=-1 mondrian.expCache.enable=false}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=oracle props={
mondrian.test.ExpDependencies=100 mondrian.rolap.evaluate.MaxEvalDepth=6
mondrian.test.random.seed=15583 mondrian.expCache.enable=false}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=oracle props={
mondrian.expCache.enable=false}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=oracle props={
mondrian.rolap.aggregates.Use=true mondrian.rolap.aggregates.Read=true}
     [java] 1)
testUnknownUsages(mondrian.test.SchemaTest)junit.framework.ComparisonFai
lure
: expected:<......> but was:<...06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 2)
testUnknownUsages1(mondrian.test.SchemaTest)junit.framework.ComparisonFa
ilur
e: expected:<...> but was:<...WARN - Recognizer.checkUnusedColumns:
Candidate aggregate table 'agg_lc_06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 3)
testGroupingSetForSingleColumnConstraint(mondrian.rolap.GroupingSetQuery
Test
)junit.framework.ComparisonFailure: Expected:
     [java] 4)
testGroupingSetForMultipleMeasureAndSingleConstraint(mondrian.rolap.Grou
ping
SetQueryTest)junit.framework.ComparisonFailure: Expected:
     [java] 5)
testGroupingSetForMultipleColumnConstraint(mondrian.rolap.GroupingSetQue
ryTe
st)junit.framework.AssertionFailedError
     [java] 6)
testGroupBatchesForTwoSetOfGroupableBatches(mondrian.rolap.FastBatchingC
ellR
eaderTest)junit.framework.AssertionFailedError: expected:<2> but was:<4>
     [java] 7)
testCanBatchForBatchesFromSameAggregationButDifferentRollupOption(mondri
an.r
olap.FastBatchingCellReaderTest)junit.framework.AssertionFailedError
     [java] Tests run: 1463,  Failures: 7,  Errors: 0
Running test with JDK=jdk1.5 database=oracle props={
mondrian.rolap.star.disableCaching=true}
     [java] OK (1463 tests)
Running test with JDK=jdk1.5 database=oracle props={
mondrian.olap.case.sensitive=false}
     [java] OK (1463 tests)
Running test with JDK=jdk1.6 database=mysql props={
mondrian.native.crossjoin.enable=false
mondrian.native.topcount.enable=false
mondrian.xmla.drillthroughTotalCount.enable=false
mondrian.rolap.LargeDimensionThreshold=1}
     [java] OK (1366 tests)
Running test with JDK=jdk1.6 database=oracle props={
mondrian.rolap.aggregates.Use=true mondrian.rolap.aggregates.Read=true
mondrian.rolap.aggregates.ChooseByVolume=true
mondrian.rolap.star.disableCaching=true
mondrian.native.filter.enable=false
mondrian.native.nonempty.enable=false
mondrian.xmla.drillthroughTotalCount.enable=false
mondrian.olap.fun.crossjoin.optimizer.size=0
mondrian.rolap.groupingsets.enable=true}
     [java] 1)
testBug1630754(mondrian.test.BasicQueryTest)junit.framework.AssertionFai
ledE
rror: expected:<5581> but was:<10281>
     [java] 2)
testUnknownUsages(mondrian.test.SchemaTest)junit.framework.ComparisonFai
lure
: expected:<......> but was:<...06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 3)
testUnknownUsages1(mondrian.test.SchemaTest)junit.framework.ComparisonFa
ilur
e: expected:<...> but was:<...WARN - Recognizer.checkUnusedColumns:
Candidate aggregate table 'agg_lc_06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 4)
testGroupingSetForSingleColumnConstraint(mondrian.rolap.GroupingSetQuery
Test
)junit.framework.ComparisonFailure: Expected:
     [java] 5)
testGroupingSetForMultipleMeasureAndSingleConstraint(mondrian.rolap.Grou
ping
SetQueryTest)junit.framework.ComparisonFailure: Expected:
     [java] 6)
testGroupingSetForMultipleColumnConstraint(mondrian.rolap.GroupingSetQue
ryTe
st)junit.framework.AssertionFailedError
     [java] 7)
testGroupBatchesForTwoSetOfGroupableBatches(mondrian.rolap.FastBatchingC
ellR
eaderTest)junit.framework.AssertionFailedError: expected:<2> but was:<4>
     [java] 8)
testCanBatchForBatchesFromSameAggregationButDifferentRollupOption(mondri
an.r
olap.FastBatchingCellReaderTest)junit.framework.AssertionFailedError
     [java] Tests run: 1366,  Failures: 8,  Errors: 0
Running test with JDK=jdk1.6 database=oracle props={
mondrian.test.ExpDependencies=10 mondrian.rolap.evaluate.MaxEvalDepth=6
mondrian.native.crossjoin.enable=false}
     [java] OK (1366 tests)
Running test with JDK=jdk1.6 database=oracle props={
mondrian.rolap.aggregates.Use=true mondrian.rolap.aggregates.Read=true
mondrian.olap.case.sensitive=false mondrian.test.ExpDependencies=10
mondrian.rolap.evaluate.MaxEvalDepth=6
mondrian.xmla.drillthroughTotalCount.enable=false
mondrian.expCache.enable=false
mondrian.rolap.SparseSegmentValueThreshold=25000}
     [java] 1)
testUnknownUsages(mondrian.test.SchemaTest)junit.framework.ComparisonFai
lure
: expected:<......> but was:<...06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 2)
testUnknownUsages1(mondrian.test.SchemaTest)junit.framework.ComparisonFa
ilur
e: expected:<...> but was:<...WARN - Recognizer.checkUnusedColumns:
Candidate aggregate table 'agg_lc_06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 3)
testGroupingSetForSingleColumnConstraint(mondrian.rolap.GroupingSetQuery
Test
)junit.framework.ComparisonFailure: Expected:
     [java] 4)
testGroupingSetForMultipleMeasureAndSingleConstraint(mondrian.rolap.Grou
ping
SetQueryTest)junit.framework.ComparisonFailure: Expected:
     [java] 5)
testGroupingSetForMultipleColumnConstraint(mondrian.rolap.GroupingSetQue
ryTe
st)junit.framework.AssertionFailedError
     [java] 6)
testGroupBatchesForTwoSetOfGroupableBatches(mondrian.rolap.FastBatchingC
ellR
eaderTest)junit.framework.AssertionFailedError: expected:<2> but was:<4>
     [java] 7)
testCanBatchForBatchesFromSameAggregationButDifferentRollupOption(mondri
an.r
olap.FastBatchingCellReaderTest)junit.framework.AssertionFailedError
     [java] Tests run: 1463,  Failures: 7,  Errors: 0
Running test with JDK=jdk1.4 database=mysql props={
mondrian.test.ExpDependencies=10 mondrian.rolap.evaluate.MaxEvalDepth=6
mondrian.native.crossjoin.enable=false
mondrian.xmla.drillthroughTotalCount.enable=false
mondrian.rolap.LargeDimensionThreshold=1000
mondrian.rolap.SparseSegmentValueThreshold=10}
     [java] 1)
testFlush(mondrian.rolap.CacheControlTest)junit.framework.ComparisonFail
ure:
Expected:
     [java] Tests run: 1366,  Failures: 1,  Errors: 0
Running test with JDK=jdk1.5 database=oracle props={
mondrian.rolap.aggregates.Use=true mondrian.rolap.aggregates.Read=true
mondrian.rolap.aggregates.ChooseByVolume=true
mondrian.rolap.star.disableCaching=true
mondrian.olap.case.sensitive=false
mondrian.test.ExpDependencies=10 mondrian.rolap.evaluate.MaxEvalDepth=6
mondrian.rolap.SparseSegmentValueThreshold=25000}
     [java] 1)
testUnknownUsages(mondrian.test.SchemaTest)junit.framework.ComparisonFai
lure
: expected:<......> but was:<...06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 2)
testUnknownUsages1(mondrian.test.SchemaTest)junit.framework.ComparisonFa
ilur
e: expected:<...> but was:<...WARN - Recognizer.checkUnusedColumns:
Candidate aggregate table 'agg_lc_06_sales_fact_1997' for fact table
'sales_fact_1997' has a column 'city' with unknown usage.
     [java] 3)
testGroupingSetForSingleColumnConstraint(mondrian.rolap.GroupingSetQuery
Test
)junit.framework.ComparisonFailure: Expected:
     [java] 4)
testGroupingSetForMultipleMeasureAndSingleConstraint(mondrian.rolap.Grou
ping
SetQueryTest)junit.framework.ComparisonFailure: Expected:
     [java] 5)
testGroupingSetForMultipleColumnConstraint(mondrian.rolap.GroupingSetQue
ryTe
st)junit.framework.AssertionFailedError
     [java] 6)
testGroupBatchesForTwoSetOfGroupableBatches(mondrian.rolap.FastBatchingC
ellR
eaderTest)junit.framework.AssertionFailedError: expected:<2> but was:<4>
     [java] 7)
testCanBatchForBatchesFromSameAggregationButDifferentRollupOption(mondri
an.r
olap.FastBatchingCellReaderTest)junit.framework.AssertionFailedError
     [java] Tests run: 1463,  Failures: 7,  Errors: 0
Running test with JDK=jdk1.6 database=derby props={
mondrian.native.crossjoin.enable=false
mondrian.native.topcount.enable=false
mondrian.native.nonempty.enable=false
mondrian.xmla.drillthroughTotalCount.enable=false}
     [java] 1)
testBug1630754(mondrian.test.BasicQueryTest)junit.framework.AssertionFai
ledE
rror: expected:<5581> but was:<10281>
     [java] Tests run: 1366,  Failures: 1,  Errors: 0
     [java] FAILURES!!!
     [java] Tests run: 1463,  Failures: 2,  Errors: 0
     [java] FAILURES!!!
     [java] Tests run: 1463,  Failures: 4,  Errors: 0
     [java] FAILURES!!!
     [java] Tests run: 1463,  Failures: 7,  Errors: 0
     [java] FAILURES!!!
     [java] Tests run: 1463,  Failures: 7,  Errors: 0
     [java] FAILURES!!!
     [java] Tests run: 1366,  Failures: 8,  Errors: 0
     [java] FAILURES!!!
     [java] Tests run: 1463,  Failures: 7,  Errors: 0
     [java] FAILURES!!!
     [java] Tests run: 1366,  Failures: 1,  Errors: 0
     [java] FAILURES!!!
     [java] Tests run: 1463,  Failures: 7,  Errors: 0
     [java] FAILURES!!!
     [java] Tests run: 1366,  Failures: 1,  Errors: 0
There were failures.




The information contained in this email may be confidential and/or legally privileged. It has been sent for the sole use of the intended recipient(s). If the reader of this message is not an intended recipient, you are hereby notified that any unauthorized review, use, disclosure, dissemination, distribution, or copying of this communication, or any of its contents, is strictly prohibited. If you have received this communication in error, please contact the sender by reply email and destroy all copies of the original message. Thank you





More information about the Mondrian mailing list