private PlanBuilder limit(PlanBuilder subPlan, Query node) { return limit(subPlan, node.getOrderBy(), node.getLimit()); }
@Override protected Void visitQuery(Query node, Integer indentLevel) { print(indentLevel, "Query "); indentLevel++; print(indentLevel, "QueryBody"); process(node.getQueryBody(), indentLevel); if (node.getOrderBy().isPresent()) { print(indentLevel, "OrderBy"); process(node.getOrderBy().get(), indentLevel + 1); } if (node.getLimit().isPresent()) { print(indentLevel, "Limit: " + node.getLimit().get()); } return null; }
private PlanBuilder sort(PlanBuilder subPlan, Query node) { return sort(subPlan, node.getOrderBy(), node.getLimit(), analysis.getOrderByExpressions(node)); }
@Override public Node visitQuery(SqlBaseParser.QueryContext context) { Query body = (Query) visit(context.queryNoWith()); return new Query( getLocation(context), visitIfPresent(context.with(), With.class), body.getQueryBody(), body.getOrderBy(), body.getLimit()); }
public void validateQuery() { Statement query; synchronized (SQL_PARSER) { query = SQL_PARSER.createStatement(this.query, new ParsingOptions(ParsingOptions.DecimalLiteralTreatment.AS_DOUBLE)); } checkState(query instanceof Query, "Expression is not query"); checkState((!((Query) query).getLimit().isPresent()), "The query of materialized view can't contain LIMIT statement"); // QueryBody queryBody = ((Query) query).getQueryBody(); // if (queryBody instanceof QuerySpecification) { // List<SelectItem> selectItems = ((QuerySpecification) queryBody).getSelect().getSelectItems(); // if (selectItems.stream().anyMatch(e -> e instanceof AllColumns)) { // throw new RakamException("Wildcard in select items is not supported in materialized views.", BAD_REQUEST); // } // // for (SelectItem selectItem : selectItems) { // SingleColumn selectColumn = (SingleColumn) selectItem; // if (!selectColumn.getAlias().isPresent() && !(selectColumn.getExpression() instanceof Identifier) // && !(selectColumn.getExpression() instanceof DereferenceExpression)) { // throw new RakamException(format("Column '%s' must have alias", selectColumn.getExpression().toString()), BAD_REQUEST); // } // } // } }
statement.getLimit(), statement.getOrderBy().map(v -> v.getSortItems()).orElse(null), map); } else if (statement.getQueryBody() instanceof Union) { Relation relation = ((Union) statement.getQueryBody()).getRelations().get(0); statement.getLimit(), statement.getOrderBy().map(v -> v.getSortItems()).orElse(null), map); statement.getQueryBody().getLocation().orElse(null), ImmutableList.of(), ImmutableList.of(), statement.getLimit().map(l -> Long.parseLong(l)).orElse(null)); } catch (Throwable e) { return ResponseQuery.UNKNOWN;
@Override protected Void visitQuery(Query node, Integer indentLevel) { print(indentLevel, "Query "); indentLevel++; print(indentLevel, "QueryBody"); process(node.getQueryBody(), indentLevel); if (node.getOrderBy().isPresent()) { print(indentLevel, "OrderBy"); process(node.getOrderBy().get(), indentLevel + 1); } if (node.getLimit().isPresent()) { print(indentLevel, "Limit: " + node.getLimit().get()); } return null; }
private PlanBuilder limit(PlanBuilder subPlan, Query node) { return limit(subPlan, node.getOrderBy(), node.getLimit()); }
@Override protected Void visitQuery(Query node, Integer indentLevel) { print(indentLevel, "Query "); indentLevel++; print(indentLevel, "QueryBody"); process(node.getQueryBody(), indentLevel); if (!node.getOrderBy().isEmpty()) { print(indentLevel, "OrderBy"); for (SortItem sortItem : node.getOrderBy()) { process(sortItem, indentLevel + 1); } } if (node.getLimit().isPresent()) { print(indentLevel, "Limit: " + node.getLimit().get()); } return null; }
private PlanBuilder sort(PlanBuilder subPlan, Query node) { return sort(subPlan, node.getOrderBy(), node.getLimit(), analysis.getOrderByExpressions(node)); }
@Override public Node visitQuery(SqlBaseParser.QueryContext context) { Query body = (Query) visit(context.queryNoWith()); return new Query( getLocation(context), visitIfPresent(context.with(), With.class), body.getQueryBody(), body.getOrderBy(), body.getLimit()); }
@Override public Node visitQuery(SqlBaseParser.QueryContext context) { Query body = (Query) visit(context.queryNoWith()); return new Query( getLocation(context), visitIfPresent(context.with(), With.class), body.getQueryBody(), body.getOrderBy(), body.getLimit(), body.getApproximate()); }