/** * Checks if is aggregated query. * * @return true, if is aggregated query */ boolean isAggregatedQuery() { if (kunderaQuery.getSelectStatement() != null) { Expression exp = ((SelectClause) kunderaQuery.getSelectStatement().getSelectClause()).getSelectExpression(); return AggregateFunction.class.isAssignableFrom(exp.getClass()); } else { return false; } }
if (query.isSelectStatement()) SelectClause selectClause = (SelectClause) (query.getSelectStatement().getSelectClause()); ListIterator<Expression> selectColumnIter = null; query.setAggregated(aggregationCount > 0 || query.getSelectStatement().hasGroupByClause()); int count = 0, aggCounter = 0, resultSize = size + 1 - aggregationCount; if (resultSize == 0)
private void buildFrom() { ListIterator<Expression> fromIter = null; if (query.isSelectStatement() && query.getSelectStatement().hasFromClause()) { FromClause fromClause = (FromClause) query.getSelectStatement().getFromClause(); fromIter = fromClause.children().iterator(); } else if (query.isUpdateStatement()) { fromIter = query.getUpdateStatement().getUpdateClause().children().iterator(); } if (query.isDeleteStatement()) { fromIter = query.getDeleteStatement().getDeleteClause().children().iterator(); } if (fromIter != null) { while (fromIter.hasNext()) { String textObj = fromIter.next().toActualText().trim(); if (!StringUtils.isEmpty(textObj)) { query.setFrom(textObj); break; } } } }
Expression whereClause = selectStatement.getWhereClause(); if (!NullExpression.class.isAssignableFrom(whereClause.getClass())) SelectClause selectClause = (SelectClause) selectStatement.getSelectClause(); Expression expression = selectClause.getSelectExpression(); if (CountFunction.class.isAssignableFrom(expression.getClass()))
if (expression.hasUnionClauses()) { expression.getUnionClauses().accept(this); else if (expression.hasOrderByClause()) { expression.getOrderByClause().accept(this); if (expression.hasSpaceBeforeUnion()) { virtualSpace = true; else if (expression.hasHavingClause()) { expression.getHavingClause().accept(this); if (expression.hasSpaceBeforeOrderBy()) { virtualSpace = true; else if (expression.hasGroupByClause()) { expression.getGroupByClause().accept(this); if (expression.hasSpaceAfterGroupBy()) { virtualSpace = true; else if (expression.hasWhereClause()) { expression.getWhereClause().accept(this); if (expression.hasSpaceAfterWhere()) { virtualSpace = true; else if (expression.hasFromClause()) { expression.getFromClause().accept(this); if (expression.hasSpaceAfterFrom()) { virtualSpace = true; expression.getSelectClause().accept(this);
/** * {@inheritDoc} */ @Override public void visit(SelectStatement expression) { if (expression.hasUnionClauses()) { expression.getUnionClauses().accept(this); } else if (expression.hasOrderByClause()) { expression.getOrderByClause().accept(this); } else if (expression.hasHavingClause()) { expression.getHavingClause().accept(this); } else if (expression.hasGroupByClause()) { expression.getGroupByClause().accept(this); } else if (expression.hasWhereClause()) { expression.getWhereClause().accept(this); } else if (expression.hasFromClause()) { expression.getFromClause().accept(this); } else { expression.getSelectClause().accept(this); } }
/** * {@inheritDoc} */ @Override public void visit(SelectStatement expression) { // Result variables defined in the SELECT clause expression.getSelectClause().accept(this); // Result variables used in the ORDER BY clause if (expression.hasOrderByClause()) { renameIdentificationVariable = true; try { expression.getOrderByClause().accept(this); } finally { renameIdentificationVariable = false; } } } }
/** * {@inheritDoc} */ @Override public void visit(SelectStatement expression) { // Handle SELECT/FROM/WHERE clauses visitAbstractSelectStatement(expression); // ORDER BY clause if (expression.hasOrderByClause()) { expression.getOrderByClause().accept(this); } // UNION clauses if (expression.hasUnionClauses()) { expression.getUnionClauses().accept(this); } }
expression.hasWhereClause(); expression.hasWhereClause() || expression.hasGroupByClause(); expression.hasWhereClause() || expression.hasGroupByClause() || expression.hasHavingClause(); expression.hasWhereClause() || expression.hasGroupByClause() || expression.hasHavingClause() || expression.hasOrderByClause(); expression.hasWhereClause(); expression.hasWhereClause() || expression.hasGroupByClause(); expression.hasWhereClause() || expression.hasGroupByClause() || expression.hasHavingClause(); expression.hasWhereClause() || expression.hasGroupByClause() || expression.hasHavingClause() || expression.hasOrderByClause(); hasFollowUpClauses = expression.hasGroupByClause();
/** * {@inheritDoc} */ @Override public void visit(SelectStatement expression) { expression.getFromClause().accept(this); expression.getSelectClause().accept(this); }
/** * {@inheritDoc} */ @Override protected void addChildrenTo(Collection<Expression> children) { super.addChildrenTo(children); children.add(getOrderByClause()); children.add(getUnionClauses()); }
/** * {@inheritDoc} */ @Override public void visit(IdentificationVariable expression) { // Use ReadAllQuery if the variable of the SELECT clause expression is the base variable // Example: ReadAllQuery = SELECT e FROM Employee e // Example: ReportQuery = SELECT e FROM Department d JOIN d.employees e String variableName = expression.getVariableName(); if (queryContext.isRangeIdentificationVariable(variableName)) { if (selectStatement.hasGroupByClause() || selectStatement.hasHavingClause() || variableName != queryContext.getFirstDeclaration().getVariableName()) { initializeReportQuery(); } else { initializeReadAllQuery(); } } else { initializeReportQuery(); } }
private boolean isGroupBy() { if (query.isSelectStatement()) { return query.getSelectStatement().hasGroupByClause(); } return false; }
/** * {@inheritDoc} */ @Override protected void toParsedText(StringBuilder writer, boolean actual) { super.toParsedText(writer, actual); if (hasSpaceBeforeOrderBy) { writer.append(SPACE); } // 'ORDER BY' clause if (hasOrderByClause()) { orderByClause.toParsedText(writer, actual); } if (hasSpaceBeforeUnion) { writer.append(SPACE); } // 'UNION' clauses if (hasUnionClauses()) { unionClauses.toParsedText(writer, actual); } } }
/** * Gets the order by clause. * * @param jpqlExpression * the jpql expression * @return the order by clause */ public static OrderByClause getOrderByClause(JPQLExpression jpqlExpression) { OrderByClause orderByClause = null; if (hasOrderBy(jpqlExpression)) { orderByClause = (OrderByClause) ((SelectStatement) jpqlExpression.getQueryStatement()).getOrderByClause(); } return orderByClause; }
private boolean isOrderBy() { if (query.isSelectStatement()) { return query.getSelectStatement().hasOrderByClause(); } return false; }
interface StatementCreator<T> { T createStatement(String sql); } public class SelectStatementCreator implements StatementCreator<SelectStatement> { SelectStatement createStatement(String sql) { return new SelectStatement(sql); } }
private boolean isHaving() { if (query.isSelectStatement()) { return query.getSelectStatement().hasHavingClause(); } return false; }
/** * {@inheritDoc} */ @Override public void visit(SelectStatement expression) { expression.getFromClause().accept(this); }
/** * Compile group. */ private void compileGroup() { GroupByClause groupByClause = null; if (query.isSelectStatement()) { groupByClause = (GroupByClause) query.getSelectStatement().getGroupByClause(); } // content cannot be empty if (groupByClause == null || groupByClause.toActualText().length() == 0) { throw new JPQLParseException("keyword without value: GROUP BY"); } groupingClause = groupByClause.toActualText(); }