/** * Compare two GroupBys for equality. Order is important in the comparison. * @param obj Other object * @return True if equal */ public boolean equals(Object obj) { if(obj == this) { return true; } if(!(obj instanceof GroupBy)) { return false; } GroupBy other = (GroupBy)obj; return EquivalenceUtil.areEqual(getSymbols(), other.getSymbols()) && this.rollup == other.rollup; }
/** * Get hashcode for GroupBy. WARNING: The hash code relies on the variables * in the group by, so changing the variables will change the hash code, causing * a group by to be lost in a hash structure. Do not hash a GroupBy if you plan * to change it. * @return Hash code for object */ public int hashCode() { return HashCodeUtil.hashCode(rollup?1:0, getSymbols()); }
/** * Get hashcode for GroupBy. WARNING: The hash code relies on the variables * in the group by, so changing the variables will change the hash code, causing * a group by to be lost in a hash structure. Do not hash a GroupBy if you plan * to change it. * @return Hash code for object */ public int hashCode() { return HashCodeUtil.hashCode(rollup?1:0, getSymbols()); }
/** * Swap each ElementSymbol in GroupBy (other symbols are ignored). * @param obj Object to remap */ public void visit(GroupBy obj) { List<Expression> symbols = obj.getSymbols(); for (int i = 0; i < symbols.size(); i++) { Expression symbol = symbols.get(i); symbols.set(i, replaceExpression(symbol)); } }
/** * Get hashcode for GroupBy. WARNING: The hash code relies on the variables * in the group by, so changing the variables will change the hash code, causing * a group by to be lost in a hash structure. Do not hash a GroupBy if you plan * to change it. * @return Hash code for object */ public int hashCode() { return HashCodeUtil.hashCode(rollup?1:0, getSymbols()); }
/** * Swap each ElementSymbol in GroupBy (other symbols are ignored). * @param obj Object to remap */ public void visit(GroupBy obj) { List<Expression> symbols = obj.getSymbols(); for (int i = 0; i < symbols.size(); i++) { Expression symbol = symbols.get(i); symbols.set(i, replaceExpression(symbol)); } }
/** * Swap each ElementSymbol in GroupBy (other symbols are ignored). * @param obj Object to remap */ public void visit(GroupBy obj) { List<Expression> symbols = obj.getSymbols(); for (int i = 0; i < symbols.size(); i++) { Expression symbol = symbols.get(i); symbols.set(i, replaceExpression(symbol)); } }
public org.teiid.language.GroupBy translate(GroupBy groupBy) { if(groupBy == null){ return null; } List items = groupBy.getSymbols(); List<org.teiid.language.Expression> translatedItems = new ArrayList<org.teiid.language.Expression>(); for (Iterator i = items.iterator(); i.hasNext();) { translatedItems.add(translate((Expression)i.next())); } org.teiid.language.GroupBy result = new org.teiid.language.GroupBy(translatedItems); result.setRollup(groupBy.isRollup()); return result; }
public org.teiid.language.GroupBy translate(GroupBy groupBy) { if(groupBy == null){ return null; } List items = groupBy.getSymbols(); List<org.teiid.language.Expression> translatedItems = new ArrayList<org.teiid.language.Expression>(); for (Iterator i = items.iterator(); i.hasNext();) { translatedItems.add(translate((Expression)i.next())); } org.teiid.language.GroupBy result = new org.teiid.language.GroupBy(translatedItems); result.setRollup(groupBy.isRollup()); return result; }
public org.teiid.language.GroupBy translate(GroupBy groupBy) { if(groupBy == null){ return null; } List items = groupBy.getSymbols(); List<org.teiid.language.Expression> translatedItems = new ArrayList<org.teiid.language.Expression>(); for (Iterator i = items.iterator(); i.hasNext();) { translatedItems.add(translate((Expression)i.next())); } org.teiid.language.GroupBy result = new org.teiid.language.GroupBy(translatedItems); result.setRollup(groupBy.isRollup()); return result; }
public static boolean isDistinctWithGroupBy(Query query) { GroupBy groupBy = query.getGroupBy(); if (groupBy == null) { return false; } HashSet<Expression> selectExpressions = new HashSet<Expression>(); for (Expression selectExpr : query.getSelect().getProjectedSymbols()) { selectExpressions.add(SymbolMap.getExpression(selectExpr)); } for (Expression groupByExpr : groupBy.getSymbols()) { if (!selectExpressions.contains(groupByExpr)) { return false; } } return true; }
public void visit(GroupBy obj) { preVisitVisitor(obj); visitNodes(obj.getSymbols()); postVisitVisitor(obj); } public void visit(GroupSymbol obj) {
public void visit(GroupBy obj) { // Get list of all group by IDs List<Expression> groupBySymbols = obj.getSymbols(); validateSortable(groupBySymbols); for (Expression expr : groupBySymbols) { if (!ValueIteratorProviderCollectorVisitor.getValueIteratorProviders(expr).isEmpty() || expr instanceof Constant || expr instanceof Reference) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.groupby_subquery", expr), expr); //$NON-NLS-1$ } } }
public void visit(GroupBy obj) { preVisitVisitor(obj); visitNodes(obj.getSymbols()); postVisitVisitor(obj); } public void visit(GroupSymbol obj) {
public void visit(GroupBy obj) { preVisitVisitor(obj); visitNodes(obj.getSymbols()); postVisitVisitor(obj); } public void visit(GroupSymbol obj) {
public void visit(GroupBy obj) { // Get list of all group by IDs List<Expression> groupBySymbols = obj.getSymbols(); validateSortable(groupBySymbols); for (Expression expr : groupBySymbols) { if (!ValueIteratorProviderCollectorVisitor.getValueIteratorProviders(expr).isEmpty() || expr instanceof Constant || expr instanceof Reference) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.groupby_subquery", expr), expr); //$NON-NLS-1$ } } }
public void visit(GroupBy obj) { // Get list of all group by IDs List<Expression> groupBySymbols = obj.getSymbols(); validateSortable(groupBySymbols); for (Expression expr : groupBySymbols) { if (!ValueIteratorProviderCollectorVisitor.getValueIteratorProviders(expr).isEmpty() || expr instanceof Constant || expr instanceof Reference) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.groupby_subquery", expr), expr); //$NON-NLS-1$ } } }
@Override public void visit( GroupBy obj ) { append(GROUP); append(SPACE); append(BY); append(SPACE); if (obj.isRollup()) { append(ROLLUP); append(Tokens.LPAREN); } registerNodes(obj.getSymbols(), 0); if (obj.isRollup()) { append(Tokens.RPAREN); } }
@Override public void visit( GroupBy obj ) { append(GROUP); append(SPACE); append(BY); append(SPACE); if (obj.isRollup()) { append(ROLLUP); append(Tokens.LPAREN); } registerNodes(obj.getSymbols(), 0); if (obj.isRollup()) { append(Tokens.RPAREN); } }
@Override public void visit( GroupBy obj ) { append(GROUP); append(SPACE); append(BY); append(SPACE); if (obj.isRollup()) { append(ROLLUP); append(Tokens.LPAREN); } registerNodes(obj.getSymbols(), 0); if (obj.isRollup()) { append(Tokens.RPAREN); } }