@Override public TemplateDruidQuery updateOuterQuery( TemplateDruidQuery outerQuery, Map<String, String> oldFieldNameToNewFieldNameMap ) { Map<String, Aggregation> oldNameToNewAggregationMapping = new HashMap<>(); Set<Aggregation> updatedOuterAggs = updateQueryAggs( outerQuery.getAggregations(), oldFieldNameToNewFieldNameMap, oldNameToNewAggregationMapping ); //Update the FieldAccessors from the outer query post aggs to access the correct aggs. Set<PostAggregation> updateOuterPostAggs = new HashSet<>(); for (PostAggregation postAggregation: outerQuery.getPostAggregations()) { updateOuterPostAggs.add(replacePostAggWithPostAggFromMap(postAggregation, oldNameToNewAggregationMapping)); } //create new TDQ using updated aggs, updatedPostAggs, updatedInnerQuery and timegrain of outerQuery return new TemplateDruidQuery( updatedOuterAggs, updateOuterPostAggs, outerQuery.getInnerQuery().orElse(null), outerQuery.getTimeGrain() ); }
) throws FilterBuilderException { Set<PostAggregation> postAggregations = query.getPostAggregations(); Set<PostAggregation> updatedPostAggs = new HashSet<>(); Set<Aggregation> updatedAggs = new HashSet<>();
filter, template.getAggregations(), template.getPostAggregations(), intervals, topN,
LinkedHashSet<PostAggregation> mergedPostAggregations = new LinkedHashSet<>(self.getPostAggregations()); mergedPostAggregations.addAll(sibling.getPostAggregations());
filter, template.getAggregations(), template.getPostAggregations(), intervals );
having, template.getAggregations(), template.getPostAggregations(), intervals, druidOrderBy
newInnerQuery.getPostAggregations(), innerPostAggToOuterAggMap, filterSuffix