final String s = indent(indent); final ConstructNode construct = getConstruct(); final ProjectionNode projection = getProjection(); @SuppressWarnings("unchecked") final IGroupNode<IGroupMemberNode> whereClause = getWhereClause(); final GroupByNode groupBy = getGroupBy(); final HavingNode having = getHaving(); final OrderByNode orderBy = getOrderBy(); final SliceNode slice = getSlice(); final BindingsClause bindings = getBindingsClause(); if (getQueryType() != null) { .append(getQueryType().toString()); if (getProperty(Annotations.INCLUDE_INFERRED) != null) { sb.append("\n"); sb.append(s); sb.append("includeInferred=" + getIncludeInferred()); if (getProperty(Annotations.TIMEOUT) != null) { sb.append("\n"); sb.append(s); sb.append("timeout=" + getTimeout()); if (getQueryHints() != null && !getQueryHints().isEmpty()) { sb.append("\n"); sb.append(indent(indent));
private <T extends QueryBase> T select(T select, final ProjectionNode projection, final JoinGroupNode where, final HelperFlag... flags) { assert projection != null; // Set Projection and Where clause on QueryRoot. select.setProjection(projection); select.setWhereClause(where); // Apply helper flags. for (HelperFlag flag : flags) flag.apply(select); return select; }
@Override public void apply(ASTBase target) { ((QueryBase)target).setSlice(new SliceNode(offset, limit)); }};
/** * Return <code>true</code> if any of the {@link ProjectionNode}, * {@link GroupByNode}, or {@link HavingNode} indicate that this is an * aggregation query. * * @param query * The query. * * @return <code>true</code>if it is an aggregation query. */ public static boolean isAggregate(final QueryBase query) { return isAggregate(query.getProjection(), query.getGroupBy(), query.getHaving()); }
final boolean materializeProjection, final AST2BOpContext ctx) { final GraphPatternGroup<?> root = queryBase.getWhereClause(); queryBase.annotations().get(QueryBase.Annotations.BINDINGS_CLAUSE); if (bindingsClause!=null && bindingsClause instanceof BindingsClause) { left = addValues(left, final OrderByNode orderBy = queryBase.getOrderBy(); final ProjectionNode projection = queryBase.getProjection() == null ? null : queryBase.getProjection().isEmpty() ? null : queryBase .getProjection(); "Wildcard projection was not rewritten."); final GroupByNode groupBy = queryBase.getGroupBy() == null ? null : queryBase.getGroupBy().isEmpty() ? null : queryBase.getGroupBy(); final HavingNode having = queryBase.getHaving() == null ? null : queryBase .getHaving().isEmpty() ? null : queryBase.getHaving(); if(queryBase.hasSlice()) { left = addSlice(left, queryBase, queryBase.getSlice(), ctx); final long timeout = queryBase.getTimeout();
@Override public void apply(ASTBase rslt) { ((QueryBase) rslt).getProjection().setReduced(true); } },
final ProjectionNode projection = queryBase.getProjection(); (GroupNodeBase<IGroupMemberNode>) queryBase.getWhereClause(); queryBase.setProjection(p2); varSet.addAll(exogeneousVars); if (queryBase.getBindingsClause()!=null) { final BindingsClause bc = queryBase.getBindingsClause(); varSet.addAll(bc.getDeclaredVariables());
final ProjectionNode projection = queryRoot.getProjection(); if (projection!=null) { fillInIV(store, projection); final GroupNodeBase constructClause = queryRoot.getConstruct(); .getWhereClause(); final GroupByNode groupBy = queryRoot.getGroupBy(); final HavingNode having = queryRoot.getHaving(); final BindingsClause bc = queryRoot.getBindingsClause(); if (bc!=null) { for (final IBindingSet bs: bc.getBindingSets()) {
doRecursiveRewrite(context, sa, queryBase.getWhereClause()); if (queryBase.getQueryType() != QueryType.SELECT) { return; final ProjectionNode projection = queryBase.getProjection(); .getWhereClause(); queryBase.setProjection(newProjection);
doRecursiveRewrite(context, queryBase.getWhereClause()); if (queryBase.getQueryType() != QueryType.SELECT) { return; final ProjectionNode projection = queryBase.getProjection(); final OrderByNode orderBy = queryBase.getOrderBy(); queryBase.setOrderBy(newOrderBy);
final GroupByNode groupByNode = queryBase.getGroupBy(); if (groupByNode == null || groupByNode.arity() != 1 || !(groupByNode.get(0) instanceof AssignmentNode)) { final QueryType queryType = queryBase.getQueryType(); if (!QueryType.SELECT.equals(queryType)) { return; // optimization not applicable graphPattern = queryBase.getGraphPattern(); if (graphPattern.args().size() != 1) { return; projectionNode = queryBase.getProjection(); if (projectionNode.size() != 2) { return; queryBase.setGroupBy(null);
doRecursiveRewrite(context, sa, queryRoot, queryBase.getWhereClause()); if (queryBase.getQueryType() != QueryType.SELECT) { return; final ProjectionNode projection = queryBase.getProjection(); queryBase.getWhereClause();
/** * Handle the optional WHERE clause. (For example, DESCRIBE may be used * without a WHERE clause.) * <P> * Note: This delegates the translation to a helper visitor. A SubSelect * will wind up delegated back to an instance of this visitor. * * @param astQuery * The AST query node. This is an abstract base class. There are * concrete instances for SELECT, ASK, DESCRIBE, and CONSTRUCT. * @param queryRoot * The bigdata query root. */ @SuppressWarnings("unchecked") private void handleWhereClause(final ASTQuery astQuery, final QueryBase queryRoot) throws VisitorException { final ASTWhereClause whereClause = astQuery.getWhereClause(); if (whereClause != null) { final ASTGraphPatternGroup graphPatternGroup = whereClause .getGraphPatternGroup(); graphPattern = scopedGroupGraphPattern(astQuery); final GraphPatternGroup<IGroupMemberNode> ret = (GraphPatternGroup<IGroupMemberNode>) graphPatternGroup .jjtAccept(this, null/* data */); queryRoot.setWhereClause(ret); } }
final ProjectionNode projection = queryBase.getProjection(); final GraphPatternGroup<IGroupMemberNode> whereClause = queryBase.getWhereClause();
queryRoot.setProjection(projection);
/** * Return the {@link GraphPatternGroup} for the WHERE clause. * * @return The WHERE clause -or- <code>null</code>. */ @SuppressWarnings({ "rawtypes" }) public GraphPatternGroup getWhereClause() { // Note: Synonym for getGraphPattern. return getGraphPattern(); }
final boolean materializeProjection, final AST2BOpContext ctx) { final GraphPatternGroup<?> root = queryBase.getWhereClause(); queryBase.annotations().get(QueryBase.Annotations.BINDINGS_CLAUSE); if (bindingsClause!=null && bindingsClause instanceof BindingsClause) { left = addValues(left, final OrderByNode orderBy = queryBase.getOrderBy(); final ProjectionNode projection = queryBase.getProjection() == null ? null : queryBase.getProjection().isEmpty() ? null : queryBase .getProjection(); "Wildcard projection was not rewritten."); final GroupByNode groupBy = queryBase.getGroupBy() == null ? null : queryBase.getGroupBy().isEmpty() ? null : queryBase.getGroupBy(); final HavingNode having = queryBase.getHaving() == null ? null : queryBase .getHaving().isEmpty() ? null : queryBase.getHaving(); if(queryBase.hasSlice()) { left = addSlice(left, queryBase, queryBase.getSlice(), ctx); final long timeout = queryBase.getTimeout();
@Override public Set<IVariable<?>> getProjectedVars(final Set<IVariable<?>> vars) { final ProjectionNode tmp = getProjection(); if(tmp != null) { tmp.getProjectionVars(vars); } return vars; }
/** * Return <code>true</code> if any of the {@link ProjectionNode}, * {@link GroupByNode}, or {@link HavingNode} indicate that this is an * aggregation query. * * @param query * The query. * * @return <code>true</code>if it is an aggregation query. */ public static boolean isAggregate(final QueryBase query) { return isAggregate(query.getProjection(), query.getGroupBy(), query.getHaving()); }
final ProjectionNode projection = queryBase.getProjection(); (GroupNodeBase<IGroupMemberNode>) queryBase.getWhereClause(); queryBase.setProjection(p2); varSet.addAll(exogeneousVars); if (queryBase.getBindingsClause()!=null) { final BindingsClause bc = queryBase.getBindingsClause(); varSet.addAll(bc.getDeclaredVariables());