/** * 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; } }
private boolean isGroupBy() { if (query.isSelectStatement()) { return query.getSelectStatement().hasGroupByClause(); } return false; }
private boolean isOrderBy() { if (query.isSelectStatement()) { return query.getSelectStatement().hasOrderByClause(); } return false; }
private boolean isHaving() { if (query.isSelectStatement()) { return query.getSelectStatement().hasHavingClause(); } return false; }
/** * Checks if is count query. * * @return true, if is count query */ private boolean isCountQuery() { if (getKunderaQuery().getSelectStatement() != null) { final Expression selectClause = getKunderaQuery().getSelectStatement().getSelectClause(); if (selectClause instanceof SelectClause) { final Expression expression = ((SelectClause) selectClause).getSelectExpression(); return expression instanceof CountFunction; } } return false; }
/** * Sets the select query. * * @param columns * the columns * @return the string */ private String setSelectQuery(List<String> columns) { if (columns != null && !columns.isEmpty()) { return CQLTranslator.SELECT_QUERY; } if (kunderaQuery.isAggregated()) { Expression selectExpression = ((SelectClause) kunderaQuery.getSelectStatement().getSelectClause()).getSelectExpression(); // create query depending on function if (selectExpression instanceof CountFunction) { return CQLTranslator.SELECT_COUNT_QUERY; } } return CQLTranslator.SELECTALL_QUERY; }
/** * Filter buckets. * * @param buckets * the buckets * @param query * the query * @return the terms */ private Terms filterBuckets(Terms buckets, KunderaQuery query) { Expression havingClause = query.getSelectStatement().getHavingClause(); if (!(havingClause instanceof NullExpression) && havingClause != null) { Expression conditionalExpression = ((HavingClause) havingClause).getConditionalExpression(); for (Iterator<Bucket> bucketIterator = buckets.getBuckets().iterator(); bucketIterator.hasNext();) { InternalAggregations internalAgg = (InternalAggregations) bucketIterator.next().getAggregations(); if (!isValidBucket(internalAgg, query, conditionalExpression)) { bucketIterator.remove(); } } } return buckets; }
/** * Gets the columns to output. * * @param m * the m * @param kunderaQuery * the kundera query * @return the columns to output */ private List<Map<String, Object>> getColumnsToOutput(EntityMetadata m, KunderaQuery kunderaQuery) { if (kunderaQuery.isSelectStatement()) { SelectStatement selectStatement = kunderaQuery.getSelectStatement(); SelectClause selectClause = (SelectClause) selectStatement.getSelectClause(); return KunderaQueryUtils.readSelectClause(selectClause.getSelectExpression(), m, false, kunderaMetadata); } return new ArrayList(); }
/** * 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(); }
/** * Compile having. */ private void compileHaving() { HavingClause havingClause = null; if (query.isSelectStatement()) { havingClause = (HavingClause) query.getSelectStatement().getHavingClause(); } // content cannot be empty if (havingClause == null || havingClause.toActualText().length() == 0) { throw new JPQLParseException("keyword without value: HAVING"); } if (groupingClause != null) { groupingClause = groupingClause.trim() + havingClause.toActualText(); } else { groupingClause = havingClause.toActualText(); } }
/** * Gets the select expression order. * * @param query * the query * @return the select expression order */ public ListIterable<Expression> getSelectExpressionOrder(KunderaQuery query) { if (!KunderaQueryUtils.isSelectStatement(query.getJpqlExpression())) { return null; } Expression selectExpression = ((SelectClause) (query.getSelectStatement()).getSelectClause()) .getSelectExpression(); List<Expression> list; if (!(selectExpression instanceof CollectionExpression)) { list = new LinkedList<Expression>(); list.add(selectExpression); return new SnapshotCloneListIterable<Expression>(list); } else { return selectExpression.children(); } }
SelectStatement selectStatement = kunderaQuery.getSelectStatement(); SelectClause selectClause = (SelectClause) selectStatement.getSelectClause(); return KunderaQueryUtils.readSelectClause(selectClause.getSelectExpression(), m, useLuceneOrES,
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; } } } }
entity = query.getSelectStatement().hasGroupByClause() ? hits.getAt(0).sourceAsMap().get(jpaField) : hits .getAt(0).getFields().get(jpaField).getValue();
/** * Compile order. */ private void compileOrder() { OrderByClause orderByClause = null; if (query.isSelectStatement()) { orderByClause = (OrderByClause) query.getSelectStatement().getOrderByClause(); } if (orderByClause == null || !orderByClause.hasOrderByItems()) { throw new JPQLParseException("keyword without value: ORDER BY"); } query.setOrdering(orderByClause.getOrderByItems().toActualText()); } }
/** * Get the aggregation object. * * @param metadata * @return */ private BasicDBObject createAggregation(EntityMetadata metadata) { if (kunderaQuery.getSelectStatement() != null) { Metamodel metaModel = kunderaMetadata.getApplicationMetadata().getMetamodel(metadata.getPersistenceUnit()); EntityType entityType = metaModel.entity(metadata.getEntityClazz()); AbstractManagedType managedType = (AbstractManagedType) metaModel.entity(metadata.getEntityClazz()); boolean hasLob = managedType.hasLobAttribute(); BasicDBObject aggregation = new BasicDBObject(); SelectClause selectClause = (SelectClause) kunderaQuery.getSelectStatement().getSelectClause(); Expression expression = selectClause.getSelectExpression(); buildAggregation(aggregation, expression, metadata, entityType, hasLob); if (aggregation.size() == 0) { return null; } if (!aggregation.containsField("_id")) { aggregation.put("_id", null); } return aggregation; } return null; }
SelectStatement selectStatement = query.getSelectStatement();
private boolean isWhereClause() { if (query.isSelectStatement()) { return query.getSelectStatement().hasWhereClause(); } else if (query.isUpdateStatement()) { return query.getUpdateStatement().hasWhereClause(); } if (query.isDeleteStatement()) { return query.getDeleteStatement().hasWhereClause(); } return false; }
/** * Compile where. */ private void compileWhere() { WhereClause whereClause = null; if (query.isSelectStatement()) { whereClause = (WhereClause) query.getSelectStatement().getWhereClause(); } else if (query.isUpdateStatement()) { whereClause = (WhereClause) query.getUpdateStatement().getWhereClause(); } if (query.isDeleteStatement()) { whereClause = (WhereClause) query.getDeleteStatement().getWhereClause(); } String content = whereClause.getConditionalExpression().toActualText(); if (whereClause != null && content.length() == 0) { throw new JPQLParseException("keyword without value[WHERE]"); } query.setFilter(content); }
SelectStatement selectStatement = query.getSelectStatement(); buildSelectAggregations(termsBuilder, query.getSelectStatement(), entityMetadata);