public OracleOrderByStatVisitor(SQLOrderBy orderBy){ this.orderBy = orderBy; for (SQLSelectOrderByItem item : orderBy.getItems()) { item.getExpr().setParent(item); } }
public PGOrderByStatVisitor(SQLOrderBy orderBy){ this.orderBy = orderBy; for (SQLSelectOrderByItem item : orderBy.getItems()) { item.getExpr().setParent(item); } }
public MySqlOrderByStatVisitor(SQLOrderBy orderBy){ this.orderBy = orderBy; for (SQLSelectOrderByItem item : orderBy.getItems()) { item.getExpr().setParent(item); } }
public OrderByStatVisitor(SQLOrderBy orderBy){ this.orderBy = orderBy; for (SQLSelectOrderByItem item : orderBy.getItems()) { item.getExpr().setParent(item); } }
private Map<String, List<SQLSelectOrderByItem>> splitAndFindOrder(SQLOrderBy orderBy, String firstTableAlias, String secondTableAlias) throws SqlParseException { Map<String, List<SQLSelectOrderByItem>> aliasToOrderBys = new HashMap<>(); aliasToOrderBys.put(firstTableAlias, new ArrayList<SQLSelectOrderByItem>()); aliasToOrderBys.put(secondTableAlias, new ArrayList<SQLSelectOrderByItem>()); if (orderBy == null) return aliasToOrderBys; List<SQLSelectOrderByItem> orderByItems = orderBy.getItems(); for (SQLSelectOrderByItem orderByItem : orderByItems) { if (orderByItem.getExpr().toString().startsWith(firstTableAlias + ".")) { aliasToOrderBys.get(firstTableAlias).add(orderByItem); } else if (orderByItem.getExpr().toString().startsWith(secondTableAlias + ".")) { aliasToOrderBys.get(secondTableAlias).add(orderByItem); } else throw new SqlParseException("order by field on join request should have alias before, got " + orderByItem.getExpr().toString()); } return aliasToOrderBys; }
private void findOrderBy(MySqlSelectQueryBlock query, Select select) throws SqlParseException { SQLOrderBy orderBy = query.getOrderBy(); if (orderBy == null) { return; } List<SQLSelectOrderByItem> items = orderBy.getItems(); addOrderByToSelect(select, items, null); }
public boolean visit(SQLOrderBy x) { List<SQLSelectOrderByItem> items = x.getItems(); if (items.size() > 0) { if (x.isSibings()) { print0(ucase ? "ORDER SIBLINGS BY " : "order siblings by "); } else { print0(ucase ? "ORDER BY " : "order by "); } for (int i = 0, size = items.size(); i < size; ++i) { if (i != 0) { print0(", "); } SQLSelectOrderByItem item = items.get(i); visit(item); } } return false; }
@Override public boolean visit(MySqlSelectQueryBlock x) { SQLOrderBy orderBy = x.getOrderBy(); SQLLimit limit = x.getLimit(); if (limit != null && (orderBy == null || orderBy.getItems().size() == 0)) { boolean subQueryHasOrderBy = false; SQLTableSource from = x.getFrom(); if (from instanceof SQLSubqueryTableSource) { SQLSubqueryTableSource subqueryTabSrc = (SQLSubqueryTableSource) from; SQLSelect select = subqueryTabSrc.getSelect(); if (select.getQuery() instanceof SQLSelectQueryBlock) { SQLSelectQueryBlock subquery = (SQLSelectQueryBlock) select.getQuery(); if (subquery.getOrderBy() != null && subquery.getOrderBy().getItems().size() > 0) { subQueryHasOrderBy = true; } } } if (!subQueryHasOrderBy) { unorderedLimitCount++; } } return true; } }
public boolean visit(SQLOrderBy x) { final SQLASTVisitor orderByVisitor = createOrderByVisitor(x); SQLSelectQueryBlock query = null; if (x.getParent() instanceof SQLSelectQueryBlock) { query = (SQLSelectQueryBlock) x.getParent(); } if (query != null) { for (SQLSelectOrderByItem item : x.getItems()) { SQLExpr expr = item.getExpr(); if (expr instanceof SQLIntegerExpr) { int intValue = ((SQLIntegerExpr) expr).getNumber().intValue() - 1; if (intValue < query.getSelectList().size()) { SQLSelectItem selectItem = query.getSelectList().get(intValue); selectItem.getExpr().accept(orderByVisitor); } } else if (expr instanceof MySqlExpr || expr instanceof OracleExpr) { continue; } } } x.accept(orderByVisitor); for (SQLSelectOrderByItem orderByItem : x.getItems()) { statExpr( orderByItem.getExpr()); } return false; }
@Override public boolean visit(OracleSelectQueryBlock queryBlock) { boolean isExprTableSrc = queryBlock.getFrom() instanceof SQLExprTableSource; if (!isExprTableSrc) { return true; } boolean rownum = false; for (SQLSelectItem item : queryBlock.getSelectList()) { SQLExpr itemExpr = item.getExpr(); if (itemExpr instanceof SQLIdentifierExpr) { if (((SQLIdentifierExpr) itemExpr).getName().equalsIgnoreCase("ROWNUM")) { rownum = true; break; } } } if (!rownum) { return true; } SQLObject parent = queryBlock.getParent(); if (!(parent instanceof SQLSelect)) { return true; } SQLSelect select = (SQLSelect) parent; if (select.getOrderBy() == null || select.getOrderBy().getItems().size() == 0) { unorderedLimitCount++; } return false; } }
public SQLOrderBy parseOrderBy() { if (lexer.token == Token.ORDER) { SQLOrderBy orderBy = new SQLOrderBy(); lexer.nextToken(); if (lexer.identifierEquals(FnvHash.Constants.SIBLINGS)) { lexer.nextToken(); orderBy.setSibings(true); } accept(Token.BY); orderBy(orderBy.getItems(), orderBy); return orderBy; } return null; }
if (orderBy == null || orderBy.getItems().size() == 0) { unorderedLimitCount++;
List<SQLSelectOrderByItem> notContainsOrderBy = new ArrayList<SQLSelectOrderByItem>(); for (SQLSelectOrderByItem orderByItem : orderBy.getItems()) { SQLExpr orderByExpr = orderByItem.getExpr();
this.orderBy(orderBy.getItems(), orderBy); aggregateExpr.setWithinGroup(orderBy);
for (SQLSelectOrderByItem orderByItem : orderBy.getItems()) { SQLExpr orderByItemExpr = orderByItem.getExpr();
for (SQLSelectOrderByItem orderByItem : orderBy.getItems()) { SQLExpr orderByItemExpr = orderByItem.getExpr();
public MySqlOrderByStatVisitor(SQLOrderBy orderBy){ this.orderBy = orderBy; for (SQLSelectOrderByItem item : orderBy.getItems()) { item.getExpr().setParent(item); } }
public PGOrderByStatVisitor(SQLOrderBy orderBy){ this.orderBy = orderBy; for (SQLSelectOrderByItem item : orderBy.getItems()) { item.getExpr().setParent(item); } }