The Cube object in the API lacks a way of determining if a cube is drill through enabled or not. This is a simple boolean value that most Olap servers implement in their drivers already. Adding this to the API should not give too much trouble to future implementors, since it's so widely used. XML/A servers already return it through the MDSCHEMA_CUBE discovery method. Mondrian already implements it.
I propose the following signature :
boolean isDrillThroughEnabled()
I'll need this to implement it the "kosher" way in the XML/A driver. Both the API and the drivers need this functionality before 1.0 i think. It's easy and fast to implement. The Cell object already has a ResultSet drillThrough() method for that. Any insights?
If MDSCHEMA_CUBES has this attribute, this is a no-brainer; go for it.
I can envisage a cube where some measures are drillable and others are not. In this case I suppose that cube.isDrillThroughEnabled would return true and yet some cells would return null from Cell.drillThrough, meaning that they are not drillable. That would be OK.
If I add the method to the API, this will create compiler errors and a rupture of compatibility with the current Mondrian release. Please confirm that this is what you want.
This was added to the olap4j API in 1.0. As of now, we still ignore the value returned by the XMLA servers. We have to:
ref: http://olap4j.org/2.0/api/org/olap4j/metadata/Cube.html#isDrillThroughEnabled()