Details
-
Type:
New Feature
-
Status: Closed
-
Severity:
Medium
-
Resolution: Fixed
-
Affects Version/s: 3.2.1 GA (3.7.0 GA Suite Release)
-
Fix Version/s: 4.0.0 (5.1.0 Suite Backlog)
-
Component/s: None
-
Labels:
-
Notice:
Description
Add a dialect so mondrian can run on apache hive. PDI-4355 describes the defects discovered while running the test suite, and has a rough patch.
Some comments:
For the record, PDI etc. may need prepared statements, but mondrian doesn't. (People complain about that.)
The problem of Hive requiring SQL-92 JOIN syntax and mondrian not generating it is real. Mondrian generates 'FROM a, b' because it is the lowest common denominator – every database (except Hive, apparently) supports it – and because it never needs outer join. It shouldn't be that hard to cause mondrian to generate 'FROM a JOIN b ON c' rather than 'FROM a, b WHERE c'. Search for calls to SqlQuery.addFrom() followed by SqlQuery.addWhere(), maybe convert to SqlQuery.addJoin().
Most of the changes in this patch are hackery, to scope the problem as opposed to fix it, and should not be checked in. The changes to JdbcDialectImpl are useful, but should made in a new HiveDialect class, not in the base class.