private boolean canRaiseInputset(Command command, Collection<ElementSymbol> bindings) { // check to see if this is query. if (!(command instanceof Query)) { return false; } Query query = (Query)command; Criteria crit = query.getCriteria(); if (crit != null && (query.getGroupBy() != null || query.getHaving() != null || query.getLimit() != null)) { return false; } //temporarily remove the criteria query.setCriteria(null); //just throw away order by query.setOrderBy(null); List<ElementSymbol> references = QueryUtil.getBindingsReferences(query, bindings); query.setCriteria(crit); //if there are any input set bindings in the rest of the command, don't convert return references.isEmpty(); }
translate(query.getCriteria()), translate(query.getGroupBy()), translate(query.getHaving()), translate(query.getOrderBy(), false)); q.setLimit(translate(query.getLimit())); q.setWith(with); return q;
translate(query.getCriteria()), translate(query.getGroupBy()), translate(query.getHaving()), translate(query.getOrderBy(), false)); q.setLimit(translate(query.getLimit())); q.setWith(with); return q;
translate(query.getCriteria()), translate(query.getGroupBy()), translate(query.getHaving()), translate(query.getOrderBy(), false)); q.setLimit(translate(query.getLimit())); q.setWith(with); return q;
/** * visit the query in definition order */ public void visit(Query obj) { visitNodes(obj.getWith()); if (obj.getOrderBy() != null || obj.getLimit() != null) { visitor.namingContext.aliasColumns = !stripColumnAliases; } visitNode(obj.getFrom()); if (this.aliasMapping != null) { HashSet<String> newSymbols = new HashSet<String>(); for (Map.Entry<String, String> entry : this.visitor.namingContext.groupNames.entrySet()) { if (!newSymbols.add(entry.getValue())) { throw new TeiidRuntimeException(new QueryPlannerException(QueryPlugin.Event.TEIID31126, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31126, entry.getValue()))); } } } visitNode(obj.getCriteria()); visitNode(obj.getGroupBy()); visitNode(obj.getHaving()); visitNode(obj.getSelect()); visitNode(obj.getOrderBy()); }
/** * visit the query in definition order */ public void visit(Query obj) { visitNodes(obj.getWith()); if (obj.getOrderBy() != null || obj.getLimit() != null) { visitor.namingContext.aliasColumns = !stripColumnAliases; } visitNode(obj.getFrom()); if (this.aliasMapping != null) { HashSet<String> newSymbols = new HashSet<String>(); for (Map.Entry<String, String> entry : this.visitor.namingContext.groupNames.entrySet()) { if (!newSymbols.add(entry.getValue())) { throw new TeiidRuntimeException(new QueryPlannerException(QueryPlugin.Event.TEIID31126, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31126, entry.getValue()))); } } } visitNode(obj.getCriteria()); visitNode(obj.getGroupBy()); visitNode(obj.getHaving()); visitNode(obj.getSelect()); visitNode(obj.getOrderBy()); }
/** * visit the query in definition order */ public void visit(Query obj) { visitNodes(obj.getWith()); if (obj.getOrderBy() != null || obj.getLimit() != null) { visitor.namingContext.aliasColumns = !stripColumnAliases; } visitNode(obj.getFrom()); if (this.aliasMapping != null) { HashSet<String> newSymbols = new HashSet<String>(); for (Map.Entry<String, String> entry : this.visitor.namingContext.groupNames.entrySet()) { if (!newSymbols.add(entry.getValue())) { throw new TeiidRuntimeException(new QueryPlannerException(QueryPlugin.Event.TEIID31126, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31126, entry.getValue()))); } } } visitNode(obj.getCriteria()); visitNode(obj.getGroupBy()); visitNode(obj.getHaving()); visitNode(obj.getSelect()); visitNode(obj.getOrderBy()); }
visitNode(obj.getLimit());
visitNode(obj.getLimit());
visitNode(obj.getLimit());
/** * Compare two queries for equality. Queries will only evaluate to equal if * they are IDENTICAL: select variables are in the same order, criteria are in * the same exact structure. * @param obj Other object * @return True if equal */ public boolean equals(Object obj) { if(this == obj) { return true; } if(!(obj instanceof Query)) { return false; } Query other = (Query) obj; return EquivalenceUtil.areEqual(getSelect(), other.getSelect()) && EquivalenceUtil.areEqual(getFrom(), other.getFrom()) && EquivalenceUtil.areEqual(getCriteria(), other.getCriteria()) && EquivalenceUtil.areEqual(getGroupBy(), other.getGroupBy()) && EquivalenceUtil.areEqual(getHaving(), other.getHaving()) && EquivalenceUtil.areEqual(getOrderBy(), other.getOrderBy()) && EquivalenceUtil.areEqual(getLimit(), other.getLimit()) && EquivalenceUtil.areEqual(getWith(), other.getWith()) && sameOptionAndHint(other); }
/** * Compare two queries for equality. Queries will only evaluate to equal if * they are IDENTICAL: select variables are in the same order, criteria are in * the same exact structure. * @param obj Other object * @return True if equal */ public boolean equals(Object obj) { if(this == obj) { return true; } if(!(obj instanceof Query)) { return false; } Query other = (Query) obj; return EquivalenceUtil.areEqual(getSelect(), other.getSelect()) && EquivalenceUtil.areEqual(getFrom(), other.getFrom()) && EquivalenceUtil.areEqual(getCriteria(), other.getCriteria()) && EquivalenceUtil.areEqual(getGroupBy(), other.getGroupBy()) && EquivalenceUtil.areEqual(getHaving(), other.getHaving()) && EquivalenceUtil.areEqual(getOrderBy(), other.getOrderBy()) && EquivalenceUtil.areEqual(getLimit(), other.getLimit()) && EquivalenceUtil.areEqual(getWith(), other.getWith()) && sameOptionAndHint(other); }
private void validateXMLQuery(Query obj) { if(obj.getGroupBy() != null) { handleValidationError(QueryPlugin.Util.getString("ERR.015.012.0031"), obj); //$NON-NLS-1$ } if(obj.getHaving() != null) { handleValidationError(QueryPlugin.Util.getString("ERR.015.012.0032"), obj); //$NON-NLS-1$ } if(obj.getLimit() != null) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.limit_not_valid_for_xml"), obj); //$NON-NLS-1$ } if (obj.getOrderBy() != null) { OrderBy orderBy = obj.getOrderBy(); for (OrderByItem item : orderBy.getOrderByItems()) { if (!(item.getSymbol() instanceof ElementSymbol)) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.orderby_expression_xml"), obj); //$NON-NLS-1$ } } } }
/** * Compare two queries for equality. Queries will only evaluate to equal if * they are IDENTICAL: select variables are in the same order, criteria are in * the same exact structure. * @param obj Other object * @return True if equal */ public boolean equals(Object obj) { if(this == obj) { return true; } if(!(obj instanceof Query)) { return false; } Query other = (Query) obj; return EquivalenceUtil.areEqual(getSelect(), other.getSelect()) && EquivalenceUtil.areEqual(getFrom(), other.getFrom()) && EquivalenceUtil.areEqual(getCriteria(), other.getCriteria()) && EquivalenceUtil.areEqual(getGroupBy(), other.getGroupBy()) && EquivalenceUtil.areEqual(getHaving(), other.getHaving()) && EquivalenceUtil.areEqual(getOrderBy(), other.getOrderBy()) && EquivalenceUtil.areEqual(getLimit(), other.getLimit()) && EquivalenceUtil.areEqual(getWith(), other.getWith()) && getIsXML() == other.getIsXML() && sameOptionAndHint(other); }
public void visit(Query obj) { preVisitVisitor(obj); visitNodes(obj.getWith()); visitNode(obj.getSelect()); visitNode(obj.getInto()); visitNode(obj.getFrom()); visitNode(obj.getCriteria()); visitNode(obj.getGroupBy()); visitNode(obj.getHaving()); visitNode(obj.getOrderBy()); visitNode(obj.getLimit()); visitNode(obj.getOption()); postVisitVisitor(obj); } public void visit(RaiseStatement obj) {
public void visit(Query obj) { preVisitVisitor(obj); visitNodes(obj.getWith()); visitNode(obj.getSelect()); visitNode(obj.getInto()); visitNode(obj.getFrom()); visitNode(obj.getCriteria()); visitNode(obj.getGroupBy()); visitNode(obj.getHaving()); visitNode(obj.getOrderBy()); visitNode(obj.getLimit()); visitNode(obj.getOption()); postVisitVisitor(obj); } public void visit(RaiseStatement obj) {
public void visit(Query obj) { preVisitVisitor(obj); visitNodes(obj.getWith()); visitNode(obj.getSelect()); visitNode(obj.getInto()); visitNode(obj.getFrom()); visitNode(obj.getCriteria()); visitNode(obj.getGroupBy()); visitNode(obj.getHaving()); visitNode(obj.getOrderBy()); visitNode(obj.getLimit()); visitNode(obj.getOption()); postVisitVisitor(obj); } public void visit(RaiseStatement obj) {