...
Feature | Status | Notes | |
---|---|---|---|
Degenerate Schemas |
|
| |
Star Schemas | |
| |
Snowflake Schemas |
| Not all join structures are properly handled. The JDBC parser fails to parse certain types of schemas. | |
Filters |
| Complex compound filters produce wrong numbers. | |
Top Count | | Top Counts are not implemented correctly in the JDBC driver. |
|
Aggregation Tables | |
| |
Null Values & Keys | |
| |
Inline Tables | | Inline tables are not supported. |
|
Distinct Count | | Not all forms of distinct counts are supported, although the minimum support it offers is sufficient for Mondrian. | |
Grouping Sets | | Grouping sets are not supported. |
...
Test | Result | ||||||
---|---|---|---|---|---|---|---|
org.pentaho.mondrian.tck.JoinTest.testThreeWayJoinPlusDoubleStarLeaf89 | The driver throws an exception when the following arrangement of table is used. The error happens with both SQL-89 and SQL-92 style joins.
| ||||||
org.pentaho.mondrian.tck.JoinTest.testImplicitJoin | Implicit joins are not supported. If mondrian tries to evaluate a crossjoin of the members of two levels in a context allowing empty cells, the fact table is omitted from the SQL query and both tables are joined by what is called an 'implicit' join.
|
Top Count
Symptom
TopCount operations are not working. The JDBC driver doesn't enforce the value passed to java.sql.Statement.setMaxRows().
Failed tests
...
Test
...
Result
...
org.pentaho.mondrian.tck.TopCountTest.testSetMaxRows
org.pentaho.mondrian.tck.TopCountTest.testTopCount
...
Code Block |
---|
java.lang.AssertionError: ResultSet returned more rows than expected
at org.junit.Assert.fail(Assert.java:88)
at org.pentaho.mondrian.tck.SqlExpectation.validateRows(SqlExpectation.java:107)
at org.pentaho.mondrian.tck.SqlExpectation.verify(SqlExpectation.java:64)
at org.pentaho.mondrian.tck.SqlContext.verify(SqlContext.java:75)
at org.pentaho.mondrian.tck.TopCountTest.testSetMaxRows(TopCountTest.java:53) |
Inline tables
Symptom
Inline tables are not supported. The JDBC driver can't parse the queries correctly.
Failed tests
Test | Result | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
org.pentaho.mondrian.tck.InlineTablesTest.testInlineTable | Simple inline tables fail to run successfully.
Code Block |
---|
java.lang.Exception: Query failed to run successfully:
select
alt_promotion.promo_id promo_id,
alt_promotion.promo_name promo_name
from
(select 0 promo_id, 'Promo0' promo_name union all select 1 promo_id, 'Promo1' promo_name) alt_promotion
group by
alt_promotion.promo_id,
alt_promotion.promo_name
order by
CASE WHEN alt_promotion.promo_id IS NULL THEN 1 ELSE 0 END, alt_promotion.promo_id ASC
at org.pentaho.mondrian.tck.SqlExpectation$Builder$1.getData(SqlExpectation.java:271)
at org.pentaho.mondrian.tck.SqlContext.verify(SqlContext.java:73)
at org.pentaho.mondrian.tck.InlineTablesTest.testInlineTable(InlineTablesTest.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.sql.SQLFeatureNotSupportedException: [Simba][JSQLEngine](10010) Feature not supported: UNION, EXCEPT not supported.
at com.cloudera.impala.sqlengine.exceptions.SQLEngineExceptionFactory.featureNotImplementedException(SQLEngineExceptionFactory.java:37)
at com.cloudera.impala.sqlengine.aeprocessor.aebuilder.relation.AERelationalExprBuilder.visit(AERelationalExprBuilder.java:109)
at com.cloudera.impala.sqlengine.aeprocessor.aebuilder.relation.AERelationalExprBuilder.visit(AERelationalExprBuilder.java:35)
at com.cloudera.impala.sqlengine.parser.parsetree.PTNonterminalNode.acceptVisitor(PTNonterminalNode.java:76) |
org.pentaho.mondrian.tck.InlineTablesTest.testInlineTableJoin
Code Block |
---|
java.lang.Exception: Query failed to run successfully:
select
time_by_day.the_year the_year,
nation.nation_name nation_name,
sum(sales_fact_1997.unit_sales) sum_sales
from
time_by_day time_by_day,
sales_fact_1997 sales_fact_1997,
(select 'USA' nation_name, 'US' nation_shortcode union all select 'Mexico' nation_name, 'MX' nation_shortcode union all select 'Canada' nation_name, 'CA' nation_shortcode) nation,
store store
where
sales_fact_1997.time_id = time_by_day.time_id
and
time_by_day.the_year = 1997
and
sales_fact_1997.store_id = store.store_id
and
store.store_country = nation.nation_name
group by
time_by_day.the_year,
nation.nation_name
at org.pentaho.mondrian.tck.SqlExpectation$Builder$1.getData(SqlExpectation.java:271)
at org.pentaho.mondrian.tck.SqlContext.verify(SqlContext.java:73)
at org.pentaho.mondrian.tck.InlineTablesTest.testInlineTableJoin(InlineTablesTest.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.sql.SQLFeatureNotSupportedException: [Simba][JSQLEngine](10010) Feature not supported: UNION, EXCEPT not supported.
at com.cloudera.impala.sqlengine.exceptions.SQLEngineExceptionFactory.featureNotImplementedException(SQLEngineExceptionFactory.java:37)
at com.cloudera.impala.sqlengine.aeprocessor.aebuilder.relation.AERelationalExprBuilder.visit(AERelationalExprBuilder.java:109)
at com.cloudera.impala.sqlengine.aeprocessor.aebuilder.relation.AERelationalExprBuilder.visit(AERelationalExprBuilder.java:35)
at com.cloudera.impala.sqlengine.parser.parsetree.PTNonterminalNode.acceptVisitor(PTNonterminalNode.java:76) |
org.pentaho.mondrian.tck.InlineTablesTest.testInlineTableSnowflake
Code Block |
---|
Caused by: mondrian.olap.MondrianException: Mondrian Error:Internal error: while building member cache; sql=[select
nation.nation_name as c0,
nation.nation_shortcode as c1
from
store store,
(select 'USA' nation_name, 'US' nation_shortcode union all select 'Mexico' nation_name, 'MX' nation_shortcode union all select 'Canada' nation_name, 'CA' nation_shortcode) nation
where
store.store_country = nation.nation_name
group by
nation.nation_name,
nation.nation_shortcode
order by
CASE WHEN nation.nation_name IS NULL THEN 1 ELSE 0 END, nation.nation_name ASC]
at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:977)
at mondrian.olap.Util.newInternal(Util.java:2404)
at mondrian.olap.Util.newError(Util.java:2420)
at mondrian.rolap.SqlStatement.handle(SqlStatement.java:352)
at mondrian.rolap.SqlStatement.execute(SqlStatement.java:252)
at mondrian.rolap.RolapUtil.executeQuery(RolapUtil.java:350)
at mondrian.rolap.SqlMemberSource.getMemberChildren2(SqlMemberSource.java:949)
at mondrian.rolap.SqlMemberSource.getMemberChildren(SqlMemberSource.java:876)
at mondrian.rolap.SqlMemberSource.getMemberChildren(SqlMemberSource.java:849)
at mondrian.rolap.SmartMemberReader.readMemberChildren(SmartMemberReader.java:249)
at mondrian.rolap.SmartMemberReader.getMemberChildren(SmartMemberReader.java:211)
at mondrian.rolap.RolapCubeHierarchy$CacheRolapCubeHierarchyMemberReader.readMemberChildren(RolapCubeHierarchy.java:600)
at mondrian.rolap.RolapCubeHierarchy$CacheRolapCubeHierarchyMemberReader.getMemberChildren(RolapCubeHierarchy.java:696)
at mondrian.rolap.SmartMemberReader.getMemberChildren(SmartMemberReader.java:177)
at mondrian.rolap.RolapSchemaReader.internalGetMemberChildren(RolapSchemaReader.java:186)
at mondrian.rolap.RolapSchemaReader.getMemberChildren(RolapSchemaReader.java:168)
at mondrian.rolap.RolapSchemaReader.getMemberChildren(RolapSchemaReader.java:162)
at mondrian.olap.DelegatingSchemaReader.getMemberChildren(DelegatingSchemaReader.java:79)
at mondrian.olap.fun.FunUtil.getNonEmptyMemberChildren(FunUtil.java:2162)
at mondrian.olap.fun.BuiltinFunTable$22$1.evaluateList(BuiltinFunTable.java:843)
at mondrian.calc.impl.AbstractListCalc.evaluateIterable(AbstractListCalc.java:71)
at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:879)
at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:704)
at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:660)
at mondrian.rolap.RolapResult.<init>(RolapResult.java:288)
at mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:672)
... 8 more
Caused by: java.sql.SQLFeatureNotSupportedException: [Simba][JSQLEngine](10010) Feature not supported: UNION, EXCEPT not supported.
at com.cloudera.impala.sqlengine.exceptions.SQLEngineExceptionFactory.featureNotImplementedException(SQLEngineExceptionFactory.java:37)
at com.cloudera.impala.sqlengine.aeprocessor.aebuilder.relation.AERelationalExprBuilder.visit(AERelationalExprBuilder.java:109)
at com.cloudera.impala.sqlengine.aeprocessor.aebuilder.relation.AERelationalExprBuilder.visit(AERelationalExprBuilder.java:35)
at com.cloudera.impala.sqlengine.parser.parsetree.PTNonterminalNode.acceptVisitor(PTNonterminalNode.java:76) |
org.pentaho.mondrian.tck.InlineTablesTest.testInlineTableInSharedDim
Code Block |
---|
Caused by: mondrian.olap.MondrianException: Mondrian Error:Internal error: while building member cache; sql=[select
alt_promotion.promo_id as c0,
alt_promotion.promo_name as c1
from
(select 0 promo_id, 'First promo' promo_name union all select 1 promo_id, 'Second promo' promo_name) alt_promotion
group by
alt_promotion.promo_id,
alt_promotion.promo_name
order by
CASE WHEN alt_promotion.promo_id IS NULL THEN 1 ELSE 0 END, alt_promotion.promo_id ASC]
at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:977)
at mondrian.olap.Util.newInternal(Util.java:2404)
at mondrian.olap.Util.newError(Util.java:2420)
at mondrian.rolap.SqlStatement.handle(SqlStatement.java:352)
at mondrian.rolap.SqlStatement.execute(SqlStatement.java:252)
at mondrian.rolap.RolapUtil.executeQuery(RolapUtil.java:350)
at mondrian.rolap.SqlMemberSource.getMemberChildren2(SqlMemberSource.java:949)
at mondrian.rolap.SqlMemberSource.getMemberChildren(SqlMemberSource.java:876)
at mondrian.rolap.SqlMemberSource.getMemberChildren(SqlMemberSource.java:849)
at mondrian.rolap.SmartMemberReader.readMemberChildren(SmartMemberReader.java:249)
at mondrian.rolap.SmartMemberReader.getMemberChildren(SmartMemberReader.java:211)
at mondrian.rolap.RolapCubeHierarchy$CacheRolapCubeHierarchyMemberReader.readMemberChildren(RolapCubeHierarchy.java:600)
at mondrian.rolap.RolapCubeHierarchy$CacheRolapCubeHierarchyMemberReader.getMemberChildren(RolapCubeHierarchy.java:696)
at mondrian.rolap.SmartMemberReader.getMemberChildren(SmartMemberReader.java:177)
at mondrian.rolap.RolapSchemaReader.internalGetMemberChildren(RolapSchemaReader.java:186)
at mondrian.rolap.RolapSchemaReader.getMemberChildren(RolapSchemaReader.java:168)
at mondrian.rolap.RolapSchemaReader.getMemberChildren(RolapSchemaReader.java:162)
at mondrian.olap.DelegatingSchemaReader.getMemberChildren(DelegatingSchemaReader.java:79)
at mondrian.olap.fun.FunUtil.getNonEmptyMemberChildren(FunUtil.java:2162)
at mondrian.olap.fun.BuiltinFunTable$22$1.evaluateList(BuiltinFunTable.java:843)
at mondrian.calc.impl.AbstractListCalc.evaluateIterable(AbstractListCalc.java:71)
at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:879)
at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:704)
at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:660)
at mondrian.rolap.RolapResult.<init>(RolapResult.java:288)
at mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:672)
... 8 more
Caused by: java.sql.SQLFeatureNotSupportedException: [Simba][JSQLEngine](10010) Feature not supported: UNION, EXCEPT not supported.
at com.cloudera.impala.sqlengine.exceptions.SQLEngineExceptionFactory.featureNotImplementedException(SQLEngineExceptionFactory.java:37)
at com.cloudera.impala.sqlengine.aeprocessor.aebuilder.relation.AERelationalExprBuilder.visit(AERelationalExprBuilder.java:109)
at com.cloudera.impala.sqlengine.aeprocessor.aebuilder.relation.AERelationalExprBuilder.visit(AERelationalExprBuilder.java:35)
at com.cloudera.impala.sqlengine.parser.parsetree.PTNonterminalNode.acceptVisitor(PTNonterminalNode.java:76) |
Warnings
Distinct Count
Symptom
Not all forms of distinct count queries are supported. One form of distinct count for multiple columns is supported however, so mondrian can batch the queries as needed. The integration tests have also shown that the dialect is issuing the distinct count queries correctly.
Failed tests
Test | Result | ||
---|---|---|---|
org.pentaho.mondrian.tck.AggregationTest.testDistinctTwoCount | Cannot batch multiple distinct count columns with the following syntax
|
Grouping sets
Symptom
Queries which use grouping sets are not supported. This is a optimization feature supported by some more advanced databases. It allows to batch cell requests and improve the overall performance.
Failed tests
Test | Result | ||
---|---|---|---|
org.pentaho.mondrian.tck.GroupingSetTest.testEmptyEntry | Grouping set queries are not supported.
| ||
org.pentaho.mondrian.tck.GroupingSetTest.testPlainEntry | Grouping set queries are not supported.
| ||
org.pentaho.mondrian.tck.GroupingSetTest.testComplexEntry | Grouping set queries are not supported.
| ||
org.pentaho.mondrian.tck.GroupingSetTest.testMultipleEntries | Grouping set queries are not supported.
|