/** * @return a non-updateable map representation */ public LinkedHashMap<ElementSymbol, Expression> getClauseMap() { LinkedHashMap<ElementSymbol, Expression> result = new LinkedHashMap<ElementSymbol, Expression>(); for (SetClause clause : this.setClauses) { result.put(clause.getSymbol(), clause.getValue()); } return result; }
public void addClause(ElementSymbol symbol, Expression expression) { this.setClauses.add(new SetClause(symbol, expression)); }
@Override public Object clone() { SetClauseList copy = new SetClauseList(); for (SetClause clause : this.setClauses) { copy.addClause((SetClause)clause.clone()); } return copy; }
private ArrayList<Expression> mapChangeList(SetClauseList setClauses, Map<ElementSymbol, ElementSymbol> symbolMap, GroupSymbol varGroup) { ArrayList<Expression> selectSymbols = new ArrayList<Expression>(setClauses.getClauses().size()); int i = 0; for (SetClause clause : setClauses.getClauses()) { Expression ex = clause.getValue(); if (!EvaluatableVisitor.willBecomeConstant(ex)) { ex = mapExpression(varGroup, selectSymbols, i, ex); clause.setValue(ex); } if (symbolMap != null) { clause.setSymbol(symbolMap.get(clause.getSymbol())); } i++; } return selectSymbols; }
public void visit(SetClause obj) { String type = DataTypeManager.getDataTypeName(obj.getSymbol().getType()); try { setDesiredType(obj.getValue(), obj.getSymbol().getType(), obj); obj.setValue(ResolverUtil.convertExpression(obj.getValue(), type, metadata)); } catch(QueryResolverException e) { handleException(new QueryResolverException(e, QueryPlugin.Util.getString("SetClause.resolvingError", new Object[] {obj.getValue(), obj.getSymbol(), type}))); //$NON-NLS-1$ } }
assertTrue(((Constant)update.getChangeList().getClauses().get(0).getValue()).isMultiValued());
protected void validateSetClauseList(SetClauseList list) { Set<ElementSymbol> dups = new HashSet<ElementSymbol>(); HashSet<ElementSymbol> changeVars = new HashSet<ElementSymbol>(); for (SetClause clause : list.getClauses()) { ElementSymbol elementID = clause.getSymbol(); if (!changeVars.add(elementID)) { dups.add(elementID); } } if(!dups.isEmpty()) { handleValidationError(QueryPlugin.Util.getString("ERR.015.012.0062", dups), dups); //$NON-NLS-1$ } }
private ArrayList<Expression> mapChangeList(SetClauseList setClauses, Map<ElementSymbol, ElementSymbol> symbolMap, GroupSymbol varGroup) { ArrayList<Expression> selectSymbols = new ArrayList<Expression>(setClauses.getClauses().size()); int i = 0; for (SetClause clause : setClauses.getClauses()) { Expression ex = clause.getValue(); if (!EvaluatableVisitor.willBecomeConstant(ex)) { ex = mapExpression(varGroup, selectSymbols, i, ex); clause.setValue(ex); } if (symbolMap != null) { clause.setSymbol(symbolMap.get(clause.getSymbol())); } i++; } return selectSymbols; }
public void visit(SetClause obj) { String type = DataTypeManager.getDataTypeName(obj.getSymbol().getType()); try { setDesiredType(obj.getValue(), obj.getSymbol().getType(), obj); obj.setValue(ResolverUtil.convertExpression(obj.getValue(), type, metadata)); } catch(QueryResolverException e) { handleException(new QueryResolverException(e, QueryPlugin.Util.getString("SetClause.resolvingError", new Object[] {obj.getValue(), obj.getSymbol(), type}))); //$NON-NLS-1$ } }
/** * NOTE: we specifically don't need to visit the as columns or the using identifiers. * These will be resolved by the dynamic command resolver instead. * * @see org.teiid.query.sql.LanguageVisitor#visit(org.teiid.query.sql.lang.DynamicCommand) */ public void visit(DynamicCommand obj) { preVisitVisitor(obj); visitNode(obj.getSql()); visitNode(obj.getIntoGroup()); if (obj.getUsing() != null) { for (SetClause setClause : obj.getUsing().getClauses()) { visitNode(setClause.getValue()); } } postVisitVisitor(obj); }
protected void validateSetClauseList(SetClauseList list) { Set<ElementSymbol> dups = new HashSet<ElementSymbol>(); HashSet<ElementSymbol> changeVars = new HashSet<ElementSymbol>(); for (SetClause clause : list.getClauses()) { ElementSymbol elementID = clause.getSymbol(); if (!changeVars.add(elementID)) { dups.add(elementID); } } if(!dups.isEmpty()) { handleValidationError(QueryPlugin.Util.getString("ERR.015.012.0062", dups), dups); //$NON-NLS-1$ } }
/** * @return a non-updateable map representation */ public LinkedHashMap<ElementSymbol, Expression> getClauseMap() { LinkedHashMap<ElementSymbol, Expression> result = new LinkedHashMap<ElementSymbol, Expression>(); for (SetClause clause : this.setClauses) { result.put(clause.getSymbol(), clause.getValue()); } return result; }
private ArrayList<Expression> mapChangeList(SetClauseList setClauses, Map<ElementSymbol, ElementSymbol> symbolMap, GroupSymbol varGroup) { ArrayList<Expression> selectSymbols = new ArrayList<Expression>(setClauses.getClauses().size()); int i = 0; for (SetClause clause : setClauses.getClauses()) { Expression ex = clause.getValue(); if (!EvaluatableVisitor.willBecomeConstant(ex)) { ex = mapExpression(varGroup, selectSymbols, i, ex); clause.setValue(ex); } if (symbolMap != null) { clause.setSymbol(symbolMap.get(clause.getSymbol())); } i++; } return selectSymbols; }
public void visit(SetClause obj) { String type = DataTypeManager.getDataTypeName(obj.getSymbol().getType()); try { setDesiredType(obj.getValue(), obj.getSymbol().getType(), obj); obj.setValue(ResolverUtil.convertExpression(obj.getValue(), type, metadata)); } catch(QueryResolverException e) { handleException(new QueryResolverException(e, QueryPlugin.Util.getString("SetClause.resolvingError", new Object[] {obj.getValue(), obj.getSymbol(), type}))); //$NON-NLS-1$ } }