Skip to content

Commit 2d27442

Browse files
authored
Merge pull request #151 from graph-quilt/minor_query_optimizer
Minor query optimization
2 parents 6748d65 + 5e0b563 commit 2d27442

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/main/java/com/intuit/graphql/orchestrator/batch/DownStreamQueryOptimizer.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.util.List;
1414
import java.util.Map;
1515
import lombok.Getter;
16+
import lombok.ToString;
1617

1718
public class DownStreamQueryOptimizer {
1819

@@ -51,12 +52,15 @@ private static GroupedSelectionSet groupSelections(List<Selection> selections) {
5152
}
5253

5354
private SelectionSet transform(SelectionSet selections) {
54-
SelectionSet.Builder mergedSelectionSetBuilder = SelectionSet.newSelectionSet();
5555
final GroupedSelectionSet groupedSelectionSet = groupSelections(selections.getSelections());
56-
groupedSelectionSet.getDistinctSelections().forEach(selection -> mergedSelectionSetBuilder.selection(selection));
57-
groupedSelectionSet.getGroupedFields().values()
58-
.forEach(fields -> mergedSelectionSetBuilder.selection(mergeFields(fields)));
59-
return mergedSelectionSetBuilder.build();
56+
if(groupedSelectionSet.getGroupedFields().size() > 0) {
57+
SelectionSet.Builder mergedSelectionSetBuilder = SelectionSet.newSelectionSet();
58+
groupedSelectionSet.getDistinctSelections().forEach(selection -> mergedSelectionSetBuilder.selection(selection));
59+
groupedSelectionSet.getGroupedFields().values()
60+
.forEach(fields -> mergedSelectionSetBuilder.selection(mergeFields(fields)));
61+
return mergedSelectionSetBuilder.build();
62+
}
63+
return selections;
6064
}
6165

6266
private Field mergeFields(final List<Field> fields) {

0 commit comments

Comments
 (0)