traversal = traversal.select(grpVar); if (query.hasAggregators()) { final List<ExprAggregator> exprAgg = query.getAggregators(); for (ExprAggregator expr : exprAgg) { if (expr.getAggregator().getName().contains("COUNT")) {
public boolean hasGroupBy() { return ! groupVars.isEmpty() || getAggregators().size() > 0 ; } public boolean hasHaving() { return havingExprs != null && havingExprs.size() > 0 ; }
/** * Add all the aggregations from the other handler. * @param handler The other handler. * @return This handler for chaining. */ public AggregationHandler addAll(AggregationHandler handler) { for (ExprAggregator agg : handler.query.getAggregators()) { query.allocAggregate(agg.getAggregator()); } for (Map.Entry<Var, ExprAggregator> entry : handler.aggMap.entrySet()) { aggMap.put( entry.getKey(), entry.getValue()); } return this; }
/** * Add all the aggregations from the other handler. * @param handler The other handler. * @return This handler for chaining. */ public AggregationHandler addAll(AggregationHandler handler) { for (ExprAggregator agg : handler.query.getAggregators()) { query.allocAggregate(agg.getAggregator()); } for (Map.Entry<Var, ExprAggregator> entry : handler.aggMap.entrySet()) { aggMap.put( entry.getKey(), entry.getValue()); } return this; }
@Override public void startVisit(Query query) { newQuery.setSyntax(query.getSyntax()); if (query.explicitlySetBaseURI()) newQuery.setBaseURI(query.getPrologue().getResolver()); newQuery.setQueryResultStar(query.isQueryResultStar()); if (query.hasDatasetDescription()) { DatasetDescription desc = query.getDatasetDescription(); for (String x : desc.getDefaultGraphURIs()) newQuery.addGraphURI(x); for (String x : desc.getDefaultGraphURIs()) newQuery.addNamedGraphURI(x); } // Aggregators. newQuery.getAggregators().addAll(query.getAggregators()); }
@Override public void startVisit(Query query) { newQuery.setSyntax(query.getSyntax()) ; if ( query.explicitlySetBaseURI() ) newQuery.setBaseURI(query.getPrologue().getResolver()) ; newQuery.setQueryResultStar(query.isQueryResultStar()) ; if ( query.hasDatasetDescription() ) { DatasetDescription desc = query.getDatasetDescription() ; for (String x : desc.getDefaultGraphURIs()) newQuery.addGraphURI(x) ; for (String x : desc.getDefaultGraphURIs()) newQuery.addNamedGraphURI(x) ; } // Aggregators. newQuery.getAggregators().addAll(query.getAggregators()) ; }
aggVarExprMap.put(v, eAgg) ; }) ; query.getAggregators().addAll(level.opGroup.getAggregators()) ;
public static long countQuery(Query query, QueryExecutionFactory qef) { boolean needsWrapping = !query.getGroupBy().isEmpty() || !query.getAggregators().isEmpty();
public static Plan getPlan(HDTQueryEngine engine, Query query, DatasetGraph dataset, Binding input, Context context) { if(query.getAggregators().size()!=1) return null; Aggregator ag = query.getAggregators().get(0).getAggregator(); if(ag==null || !query.getHavingExprs().isEmpty() || !query.getGroupBy().isEmpty() || query.hasLimit() || query.hasOffset() || !( (ag instanceof AggCount) || (ag instanceof AggCountVar) || (ag instanceof AggCountDistinct) || (ag instanceof AggCountVarDistinct)) ) { return null;
op = OpGroup.create(op, query.getGroupBy(), query.getAggregators()) ;