@Override protected String rewriteSelectClause(Query query, SelectClause selectClause) { String result = super.rewriteSelectClause(query, selectClause); Integer maxRows = query.getMaxRows(); if (maxRows != null) { if (query.getSelectClause().isDistinct()) { result = "SELECT DISTINCT TOP " + maxRows + " " + result.substring("SELECT DISTINCT ".length()); } else { result = "SELECT TOP " + maxRows + " " + result.substring("SELECT ".length()); } } return result; }
@Override protected String rewriteSelectClause(Query query, SelectClause selectClause) { String result = super.rewriteSelectClause(query, selectClause); Integer maxRows = query.getMaxRows(); if (maxRows != null) { if (query.getSelectClause().isDistinct()) { result = "SELECT DISTINCT TOP " + maxRows + " " + result.substring("SELECT DISTINCT ".length()); } else { result = "SELECT TOP " + maxRows + " " + result.substring("SELECT ".length()); } } return result; }
protected String rewriteSelectClause(Query query, SelectClause selectClause) { StringBuilder sb = new StringBuilder(); if (selectClause.getItemCount() > 0) { sb.append(AbstractQueryClause.PREFIX_SELECT); if (selectClause.isDistinct()) { sb.append("DISTINCT "); } List<SelectItem> items = selectClause.getItems(); for (int i = 0; i < items.size(); i++) { SelectItem item = items.get(i); if (i != 0) { sb.append(AbstractQueryClause.DELIM_COMMA); } final ScalarFunction scalarFunction = item.getScalarFunction(); if (scalarFunction != null && !isScalarFunctionSupported(scalarFunction)) { // replace with a SelectItem without the function - the // function will be applied in post-processing. item = item.replaceFunction(null); } sb.append(rewriteSelectItem(query, item)); } } return sb.toString(); }
protected String rewriteSelectClause(Query query, SelectClause selectClause) { StringBuilder sb = new StringBuilder(); if (selectClause.getItemCount() > 0) { sb.append(AbstractQueryClause.PREFIX_SELECT); if (selectClause.isDistinct()) { sb.append("DISTINCT "); } List<SelectItem> items = selectClause.getItems(); for (int i = 0; i < items.size(); i++) { SelectItem item = items.get(i); if (i != 0) { sb.append(AbstractQueryClause.DELIM_COMMA); } final ScalarFunction scalarFunction = item.getScalarFunction(); if (scalarFunction != null && !isScalarFunctionSupported(scalarFunction)) { // replace with a SelectItem without the function - the // function will be applied in post-processing. item = item.replaceFunction(null); } sb.append(rewriteSelectItem(query, item)); } } return sb.toString(); }
/** * Determines if all the select items are 'simple' meaning that they just represent scans of values in columns. * * @param clause * @return */ private boolean isSimpleSelect(SelectClause clause) { if (clause.isDistinct()) { return false; } for (SelectItem item : clause.getItems()) { if (item.getAggregateFunction() != null || item.getExpression() != null) { return false; } } return true; }
/** * Determines if all the select items are 'simple' meaning that they just represent scans of values in columns. * * @param clause * @return */ private boolean isSimpleSelect(SelectClause clause) { if (clause.isDistinct()) { return false; } for (SelectItem item : clause.getItems()) { if (item.getAggregateFunction() != null || item.getExpression() != null) { return false; } } return true; }
if (query.getSelectClause().isDistinct()) { dataSet = MetaModelHelper.getSelection(selectItems, dataSet); dataSet = MetaModelHelper.getDistinct(dataSet);
if (query.getSelectClause().isDistinct()) { dataSet = MetaModelHelper.getSelection(selectItems, dataSet); dataSet = MetaModelHelper.getDistinct(dataSet);
@Override public Query clone() { final Query q = new Query(); q.setMaxRows(_maxRows); q.setFirstRow(_firstRow); q.getSelectClause().setDistinct(_selectClause.isDistinct()); for (FromItem item : _fromClause.getItems()) { q.from(item.clone()); } for (SelectItem item : _selectClause.getItems()) { q.select(item.clone(q)); } for (FilterItem item : _whereClause.getItems()) { q.where(item.clone()); } for (GroupByItem item : _groupByClause.getItems()) { q.groupBy(item.clone()); } for (FilterItem item : _havingClause.getItems()) { q.having(item.clone()); } for (OrderByItem item : _orderByClause.getItems()) { q.orderBy(item.clone()); } return q; } }
@Override public Query clone() { final Query q = new Query(); q.setMaxRows(_maxRows); q.setFirstRow(_firstRow); q.getSelectClause().setDistinct(_selectClause.isDistinct()); for (FromItem item : _fromClause.getItems()) { q.from(item.clone()); } for (SelectItem item : _selectClause.getItems()) { q.select(item.clone(q)); } for (FilterItem item : _whereClause.getItems()) { q.where(item.clone()); } for (GroupByItem item : _groupByClause.getItems()) { q.groupBy(item.clone()); } for (FilterItem item : _havingClause.getItems()) { q.having(item.clone()); } for (OrderByItem item : _orderByClause.getItems()) { q.orderBy(item.clone()); } return q; } }