private void analyzeOrderBy(Query node, Scope orderByScope) { checkState(node.getOrderBy().isPresent(), "orderBy is absent"); List<SortItem> sortItems = getSortItemsFromOrderBy(node.getOrderBy()); analyzeOrderBy(node, sortItems, orderByScope); }
private PlanBuilder limit(PlanBuilder subPlan, Query node) { return limit(subPlan, node.getOrderBy(), node.getLimit()); }
@Override protected R visitQuery(Query node, C context) { if (node.getWith().isPresent()) { process(node.getWith().get(), context); } process(node.getQueryBody(), context); if (node.getOrderBy().isPresent()) { process(node.getOrderBy().get(), context); } return null; }
@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)); }
if (node.getOrderBy().isPresent()) { process(node.getOrderBy().get(), indent);
@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 protected Scope visitQuery(Query node, Optional<Scope> scope) { Scope withScope = analyzeWith(node, scope); Scope queryBodyScope = process(node.getQueryBody(), withScope); if (node.getOrderBy().isPresent()) { analyzeOrderBy(node, queryBodyScope); } else { analysis.setOrderByExpressions(node, emptyList()); } // Input fields == Output fields analysis.setOutputExpressions(node, descriptorToFields(queryBodyScope)); Scope queryScope = Scope.builder() .withParent(withScope) .withRelationType(RelationId.of(node), queryBodyScope.getRelationType()) .build(); analysis.setScope(node, queryScope); return queryScope; }
if (node.getOrderBy().isPresent()) { process(node.getOrderBy().get(), indent);
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);
@Override protected R visitQuery(Query node, C context) { if (node.getWith().isPresent()) { process(node.getWith().get(), context); } process(node.getQueryBody(), context); if (node.getOrderBy().isPresent()) { process(node.getOrderBy().get(), context); } return null; }
@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 protected R visitQuery(Query node, C context) { if (node.getWith().isPresent()) { process(node.getWith().get(), context); } process(node.getQueryBody(), context); for (SortItem sortItem : node.getOrderBy()) { process(sortItem, context); } return null; }
if (node.getOrderBy().isPresent()) { process(node.getOrderBy().get(), indent);
private void analyzeOrderBy(Query node, RelationType tupleDescriptor, AnalysisContext context) List<SortItem> items = node.getOrderBy();
@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()); }