Skip to content

Commit 9ac3ec8

Browse files
committed
Always use custom generated MDX when performing drillthrough
1 parent 9493ee6 commit 9ac3ec8

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

pivot4j-core/src/main/java/org/pivot4j/transform/impl/DrillThroughImpl.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.olap4j.OlapException;
2424
import org.olap4j.Position;
2525
import org.olap4j.metadata.Cube;
26+
import org.olap4j.metadata.Level;
2627
import org.olap4j.metadata.Member;
2728
import org.olap4j.metadata.MetadataElement;
2829
import org.pivot4j.PivotException;
@@ -75,12 +76,12 @@ public ResultSet drillThrough(Cell cell, List<MetadataElement> selection,
7576

7677
ResultSet result;
7778

78-
if (selection != null && !selection.isEmpty() || maximumRows > 0) {
79-
result = performDrillThroughMdx(cell, selection, maximumRows);
80-
} else {
81-
result = performDrillThrough(cell);
79+
if (selection==null) {
80+
selection = Collections.emptyList();
8281
}
8382

83+
result = performDrillThroughMdx(cell, selection, maximumRows);
84+
8485
return result;
8586
}
8687

@@ -158,15 +159,17 @@ protected ResultSet performDrillThroughMdx(Cell cell,
158159
builder.append(slicer.toMdx());
159160
}
160161

161-
List<Member> members;
162+
List<MetadataElement> members;
162163
if (selection == null) {
163164
members = Collections.emptyList();
164165
} else {
165-
members = new LinkedList<Member>();
166+
members = new LinkedList<MetadataElement>();
166167

167168
for (MetadataElement elem : selection) {
168-
if (elem instanceof Member) {
169-
members.add((Member) elem);
169+
if (elem instanceof Member){
170+
members.add(utils.wrapRaggedIfNecessary((Member) elem));
171+
} else if (elem instanceof Level) {
172+
members.add(elem);
170173
}
171174
}
172175
}
@@ -176,15 +179,13 @@ protected ResultSet performDrillThroughMdx(Cell cell,
176179

177180
isFirst = true;
178181

179-
for (Member elem : members) {
182+
for (MetadataElement elem : members) {
180183
if (isFirst) {
181184
isFirst = false;
182185
} else {
183186
builder.append(", ");
184187
}
185188

186-
elem = utils.wrapRaggedIfNecessary(elem);
187-
188189
builder.append(elem.getUniqueName());
189190
}
190191
}

0 commit comments

Comments
 (0)