public String rewriteQuery(Query query) { query = beforeRewrite(query); final StringBuilder sb = new StringBuilder(); sb.append(rewriteSelectClause(query, query.getSelectClause())); sb.append(rewriteFromClause(query, query.getFromClause())); sb.append(rewriteWhereClause(query, query.getWhereClause())); sb.append(rewriteGroupByClause(query, query.getGroupByClause())); sb.append(rewriteHavingClause(query, query.getHavingClause())); sb.append(rewriteOrderByClause(query, query.getOrderByClause())); return sb.toString(); }
public String rewriteQuery(Query query) { query = beforeRewrite(query); final StringBuilder sb = new StringBuilder(); sb.append(rewriteSelectClause(query, query.getSelectClause())); sb.append(rewriteFromClause(query, query.getFromClause())); sb.append(rewriteWhereClause(query, query.getWhereClause())); sb.append(rewriteGroupByClause(query, query.getGroupByClause())); sb.append(rewriteHavingClause(query, query.getHavingClause())); sb.append(rewriteOrderByClause(query, query.getOrderByClause())); return sb.toString(); }
/** * Gets whether a query is guaranteed to only yield a single row. Such * queries are queries that only consist of aggregation functions and no * group by clause. * * @param query * @return */ private boolean isSingleRowQuery(Query query) { if (!query.getGroupByClause().isEmpty()) { return false; } List<SelectItem> items = query.getSelectClause().getItems(); for (SelectItem item : items) { if (item.getAggregateFunction() == null) { return false; } } return true; }
/** * Gets whether a query is guaranteed to only yield a single row. Such * queries are queries that only consist of aggregation functions and no * group by clause. * * @param query * @return */ private boolean isSingleRowQuery(Query query) { if (!query.getGroupByClause().isEmpty()) { return false; } List<SelectItem> items = query.getSelectClause().getItems(); for (SelectItem item : items) { if (item.getAggregateFunction() == null) { return false; } } return true; }
if (!query.getGroupByClause().isEmpty()) { return super.executeQuery(query);
if (!query.getGroupByClause().isEmpty()) { return super.executeQuery(query);
private long getRowCount(Query q) { q = q.clone(); SelectItem countAllItem = SelectItem.getCountAllItem(); if (q.getGroupByClause().getItemCount() > 0) { q = new Query().from(new FromItem(q).setAlias("sq")).select(countAllItem); } else { q.getSelectClause().removeItems(); q.select(countAllItem); } Row row = MetaModelHelper.executeSingleRowQuery(_dataContext, q); Number count = (Number) row.getValue(countAllItem); return count.longValue(); }
private long getRowCount(Query q) { q = q.clone(); SelectItem countAllItem = SelectItem.getCountAllItem(); if (q.getGroupByClause().getItemCount() > 0) { q = new Query().from(new FromItem(q).setAlias("sq")).select(countAllItem); } else { q.getSelectClause().removeItems(); q.select(countAllItem); } Row row = MetaModelHelper.executeSingleRowQuery(_dataContext, q); Number count = (Number) row.getValue(countAllItem); return count.longValue(); }
private List<Column> getSplitColumns() { List<Column> result = new ArrayList<Column>(); if (_query.getGroupByClause().getItemCount() != 0) { List<GroupByItem> groupByItems = _query.getGroupByClause().getItems(); for (GroupByItem groupByItem : groupByItems) { Column column = groupByItem.getSelectItem().getColumn();
if (!getScalarFunctionSelectItems(query.getGroupByClause().getEvaluatedSelectItems()).isEmpty()) { return true;
if (!getScalarFunctionSelectItems(query.getGroupByClause().getEvaluatedSelectItems()).isEmpty()) { return true;
private List<Column> getSplitColumns() { List<Column> result = new ArrayList<Column>(); if (_query.getGroupByClause().getItemCount() != 0) { List<GroupByItem> groupByItems = _query.getGroupByClause().getItems(); for (GroupByItem groupByItem : groupByItems) { Column column = groupByItem.getSelectItem().getColumn();
if (query.getGroupByClause().isEmpty() && query.getHavingClause().isEmpty() && query.getOrderByClause().isEmpty()) {
if (query.getGroupByClause().isEmpty() && query.getHavingClause().isEmpty() && query.getOrderByClause().isEmpty()) {
if (query.getGroupByClause().isEmpty() && query.getHavingClause().isEmpty() && query.getOrderByClause().isEmpty()) {
if (query.getGroupByClause().isEmpty() && query.getHavingClause().isEmpty() && query.getOrderByClause().isEmpty()) {
final List<FilterItem> whereItems = query.getWhereClause().getItems(); final List<SelectItem> whereSelectItems = query.getWhereClause().getEvaluatedSelectItems(); final List<GroupByItem> groupByItems = query.getGroupByClause().getItems(); final List<SelectItem> groupBySelectItems = query.getGroupByClause().getEvaluatedSelectItems(); final List<SelectItem> havingSelectItems = query.getHavingClause().getEvaluatedSelectItems(); final List<SelectItem> orderBySelectItems = query.getOrderByClause().getEvaluatedSelectItems();
final List<FilterItem> whereItems = query.getWhereClause().getItems(); final List<SelectItem> whereSelectItems = query.getWhereClause().getEvaluatedSelectItems(); final List<GroupByItem> groupByItems = query.getGroupByClause().getItems(); final List<SelectItem> groupBySelectItems = query.getGroupByClause().getEvaluatedSelectItems(); final List<SelectItem> havingSelectItems = query.getHavingClause().getEvaluatedSelectItems(); final List<SelectItem> orderBySelectItems = query.getOrderByClause().getEvaluatedSelectItems();