Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

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

Image Removed

Top Counts are not implemented correctly in the JDBC driver. Image Added

 

Aggregation Tables


 

Null Values & Keys


 

Inline Tables

Image Removed

Inline tables are not supported. Image Added

 

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
org.pentaho.mondrian.tck.JoinTest.testThreeWayJoinPlusDoubleStarLeaf92

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.

Code Block
D1'<--
      \
D1''<--D1<--      ----->D2
            \    /
             Fact
D3 <-------/



Code Block
Caused by: java.sql.SQLException: [Simba][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: Unqualified column reference 'description' is ambiguous), Query: SELECT `warehouse_class`.`description`, `wc2`.`description`, `warehouse`.`warehouse_id`, `inventory_fact_1997`.`store_id`, `time_by_day`.`time_id`, `product`.`product_id` FROM `default`.`warehouse`, `default`.`inventory_fact_1997`, `default`.`product`, `default`.`time_by_day`, `default`.`warehouse_class`, `default`.`warehouse_class` `wc2` WHERE ((`wc2`.`warehouse_class_id` = `warehouse`.`warehouse_class_id`) AND ((`warehouse_class`.`warehouse_class_id` = `warehouse`.`warehouse_class_id`) AND ((`inventory_fact_1997`.`product_id` = `product`.`product_id`) AND ((`inventory_fact_1997`.`warehouse_id` = `warehouse`.`warehouse_id`) AND (`inventory_fact_1997`.`time_id` = `time_by_day`.`time_id`))))) ORDER BY `warehouse`.`warehouse_id` ASC, `inventory_fact_1997`.`store_id` ASC, `time_by_day`.`time_id` ASC, `product`.`product_id` ASC.
	at com.cloudera.impala.hivecommon.api.HS2Client.executeStatementInternal(HS2Client.java:832)
	at com.cloudera.impala.hivecommon.api.HS2Client.executeStatement(HS2Client.java:287)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCNativeQueryExecutor.executeQuery(HiveJDBCNativeQueryExecutor.java:487)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCDSIExtQueryExecutor.execute(HiveJDBCDSIExtQueryExecutor.java:165)
	at com.cloudera.impala.jdbc.common.SStatement.executeNoParams(SStatement.java:2695)
	at com.cloudera.impala.jdbc.common.SStatement.execute(SStatement.java:566)
	at org.pentaho.mondrian.tck.SqlExpectation$Builder$1.getData(SqlExpectation.java:269)
	at org.pentaho.mondrian.tck.SqlContext.verify(SqlContext.java:73)
	at org.pentaho.mondrian.tck.JoinTest.testThreeWayJoinPlusDoubleStarLeaf89(JoinTest.java:343)



Code Block
Caused by: java.sql.SQLException: [Simba][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: Unqualified column reference 'description' is ambiguous), Query: SELECT `warehouse_class`.`description`, `wc2`.`description`, `warehouse`.`warehouse_id`, `inventory_fact_1997`.`store_id`, `time_by_day`.`time_id`, `product`.`product_id` FROM `default`.`inventory_fact_1997` INNER JOIN `default`.`warehouse` ON (`inventory_fact_1997`.`warehouse_id` = `warehouse`.`warehouse_id`) INNER JOIN `default`.`product` ON (`inventory_fact_1997`.`product_id` = `product`.`product_id`) INNER JOIN `default`.`time_by_day` ON (`inventory_fact_1997`.`time_id` = `time_by_day`.`time_id`) INNER JOIN `default`.`warehouse_class` ON (`warehouse_class`.`warehouse_class_id` = `warehouse`.`warehouse_class_id`) INNER JOIN `default`.`warehouse_class` `wc2` ON (`wc2`.`warehouse_class_id` = `warehouse`.`warehouse_class_id`) ORDER BY `warehouse`.`warehouse_id` ASC, `inventory_fact_1997`.`store_id` ASC, `time_by_day`.`time_id` ASC, `product`.`product_id` ASC.
	at com.cloudera.impala.hivecommon.api.HS2Client.executeStatementInternal(HS2Client.java:832)
	at com.cloudera.impala.hivecommon.api.HS2Client.executeStatement(HS2Client.java:287)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCNativeQueryExecutor.executeQuery(HiveJDBCNativeQueryExecutor.java:487)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCDSIExtQueryExecutor.execute(HiveJDBCDSIExtQueryExecutor.java:165)
	at com.cloudera.impala.jdbc.common.SStatement.executeNoParams(SStatement.java:2695)
	at com.cloudera.impala.jdbc.common.SStatement.execute(SStatement.java:566)
	at org.pentaho.mondrian.tck.SqlExpectation$Builder$1.getData(SqlExpectation.java:269)
	at org.pentaho.mondrian.tck.SqlContext.verify(SqlContext.java:73)
	at org.pentaho.mondrian.tck.JoinTest.testThreeWayJoinPlusDoubleStarLeaf92(JoinTest.java:381)

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.

Code Block
Caused by: java.sql.SQLException: [Simba][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:NotImplementedException: Join with 'default.warehouse_class' requires at least one conjunctive equality predicate. To perform a Cartesian product between two tables, use a CROSS JOIN.), Query: SELECT `warehouse`.`warehouse_id`, `warehouse_class`.`description` FROM `default`.`warehouse`, `default`.`warehouse_class`.
	at com.cloudera.impala.hivecommon.api.HS2Client.executeStatementInternal(HS2Client.java:832)
	at com.cloudera.impala.hivecommon.api.HS2Client.executeStatement(HS2Client.java:287)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCNativeQueryExecutor.executeQuery(HiveJDBCNativeQueryExecutor.java:487)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCDSIExtQueryExecutor.execute(HiveJDBCDSIExtQueryExecutor.java:165)
	at com.cloudera.impala.jdbc.common.SStatement.executeNoParams(SStatement.java:2695)
	at com.cloudera.impala.jdbc.common.SStatement.execute(SStatement.java:566)
	at org.pentaho.mondrian.tck.SqlExpectation$Builder$1.getData(SqlExpectation.java:269)
	at org.pentaho.mondrian.tck.SqlContext.verify(SqlContext.java:73)
	at org.pentaho.mondrian.tck.JoinTest.testImplicitJoin(JoinTest.java:120)

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
Simple inline tables fail to run successfully.

Test

Result

org.pentaho.mondrian.tck.InlineTablesTest.testInlineTable

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

Joining on an inline table fails.
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

Inline tables can't be used within a snowflake schema
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

Inline tables are not supported when used as a shared dimension.
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

Code Block
Caused by: java.sql.SQLException: [Simba][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: all DISTINCT aggregate functions need to have the same set of parameters as count(DISTINCT sales_fact_1997.unit_sales); deviating function: count(DISTINCT sales_fact_1997.store_id)), Query: SELECT COUNT(DISTINCT `sales_fact_1997`.`unit_sales`) as `count_sales`, COUNT(DISTINCT `sales_fact_1997`.`store_id`) as `count_store_id` FROM `default`.`sales_fact_1997`.
	at com.cloudera.impala.hivecommon.api.HS2Client.executeStatementInternal(HS2Client.java:832)
	at com.cloudera.impala.hivecommon.api.HS2Client.executeStatement(HS2Client.java:287)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCNativeQueryExecutor.executeQuery(HiveJDBCNativeQueryExecutor.java:487)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCDSIExtQueryExecutor.execute(HiveJDBCDSIExtQueryExecutor.java:165)
	at com.cloudera.impala.jdbc.common.SStatement.executeNoParams(SStatement.java:2695)
	at com.cloudera.impala.jdbc.common.SStatement.execute(SStatement.java:566)
	at org.pentaho.mondrian.tck.SqlExpectation$Builder$1.getData(SqlExpectation.java:269)
	at org.pentaho.mondrian.tck.SqlContext.verify(SqlContext.java:73)
	at org.pentaho.mondrian.tck.AggregationTest.testDistinctTwoCount(AggregationTest.java:200)

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.

Code Block
select
    customer.gender as gender, sum(sales_fact_1997.store_cost) as sum_cost
from
    time_by_day, sales_fact_1997, customer
where
    (sales_fact_1997.time_id = time_by_day.time_id and time_by_day.the_year = 1997
    and sales_fact_1997.customer_id = customer.customer_id)
group by grouping sets
    ((customer.gender),())

org.pentaho.mondrian.tck.GroupingSetTest.testPlainEntry

Grouping set queries are not supported.

Code Block
select
    customer.gender as gender, sum(sales_fact_1997.store_cost) as sum_cost
from
    time_by_day, sales_fact_1997, customer
where
    (sales_fact_1997.time_id = time_by_day.time_id and time_by_day.the_year = 1997
    and sales_fact_1997.customer_id = customer.customer_id)
group by grouping sets
    ((customer.gender))

org.pentaho.mondrian.tck.GroupingSetTest.testComplexEntry

Grouping set queries are not supported.

Code Block
select
    time_by_day.the_year as the_year, customer.gender as gender, sum(sales_fact_1997.store_cost) as sum_cost
from
    time_by_day, sales_fact_1997, customer
where
    (sales_fact_1997.time_id = time_by_day.time_id and time_by_day.the_year = 1997
    and sales_fact_1997.customer_id = customer.customer_id)
group by grouping sets
    ((time_by_day.the_year, customer.gender))

org.pentaho.mondrian.tck.GroupingSetTest.testMultipleEntries

Grouping set queries are not supported.

Code Block
select
    time_by_day.the_year as the_year, customer.gender as gender, sum(sales_fact_1997.store_cost) as sum_cost
from
    time_by_day, sales_fact_1997, customer
where
    (sales_fact_1997.time_id = time_by_day.time_id and time_by_day.the_year = 1997
    and sales_fact_1997.customer_id = customer.customer_id)
group by grouping sets
    ((time_by_day.the_year, customer.gender), (time_by_day.the_year),())