It seems that mondrian.rolap.agg.AggregationManager has some code associated with it, but not direct.
parseTree = this.olap4jConnection.getMondrianConnection().parseStatement(mdx); DrillThrough plan1 = (DrillThrough)parseTree; Query query = plan1.getQuery(); query.setResultStyle(ResultStyle.LIST); this.setQuery(query); CellSet cellSet = this.executeOlapQueryInternal( query, (MondrianOlap4jCellSetMetaData) null ); List coords = Collections.nCopies(cellSet.getAxes().size(), Integer.valueOf(0)); MondrianOlap4jCell cell = (MondrianOlap4jCell) cellSet.getCell(coords); ResultSet resultSet = cell.drillThroughInternal( plan1.getMaxRowCount(), plan1.getFirstRowOrdinal(), plan1.getReturnList(), true, (Logger)null, rowCountSlot );
If you follow the last line,
cell.drillThroughInternal (...)
you will get here
String sql = this.getDrillThroughSQL (fields, extendedContext);
But I'm not sure if mondrian generates only one SQL for mdx. I think that through XMLA (which most tools use as an interface) you can request drilling on one axis in which the full request is not rewritten.
Hope this answers.
amrk7
source share