public void visit(Update obj) { visitNode(obj.getTable()); visitNodes(obj.getChanges()); visitNode(obj.getWhere()); }
public Update createUpdate(NamedTable group, List<SetClause> updates, Condition criteria) { return new Update(group, updates, criteria); }
@Override public void visit(Update obj) { if (obj.getParameterValues() != null) { this.exceptions.add(new TranslatorException(SimpleDBPlugin.Event.TEIID24006, SimpleDBPlugin.Util.gs(SimpleDBPlugin.Event.TEIID24006))); } this.table = obj.getTable().getMetadataObject(); for(SetClause setClause : obj.getChanges()){ visitNode(setClause); } if (obj.getWhere() != null) { this.criteria = SimpleDBSQLVisitor.getSQLString(obj.getWhere()); } }
@Override public void visit(Update obj) { this.method = "PUT"; //$NON-NLS-1$ this.entity = obj.getTable().getMetadataObject(); visitNode(obj.getTable()); // only pk are allowed, no other criteria not allowed obj.setWhere(buildEntityKey(obj.getWhere())); // this will build with entity keys this.uri = getEnitityURL(); if (this.uri.indexOf('(') == -1) { this.exceptions.add(new TranslatorException(ODataPlugin.Util.gs(ODataPlugin.Event.TEIID17011, this.filter.toString()))); } if (this.filter.length() > 0) { this.exceptions.add(new TranslatorException(ODataPlugin.Util.gs(ODataPlugin.Event.TEIID17009, this.filter.toString()))); } final List<OProperty<?>> props = new ArrayList<OProperty<?>>(); int elementCount = obj.getChanges().size(); for (int i = 0; i < elementCount; i++) { Column column = obj.getChanges().get(i).getSymbol().getMetadataObject(); OProperty<?> property = readProperty(column, obj.getChanges().get(i).getValue()); props.add(property); } this.payload = props; }
private void executeUpdate() throws TranslatorException { List<SetClause> updateList = ((Update)command).getChanges(); Condition criteria = ((Update)command).getWhere();
private void handleUpdate() throws TranslatorException { Update update = (Update)command; List<SetClause> changes = update.getChanges(); while (true) { Row row = nextRow(); if (row == null) { break; } for (int i = 0; i < this.visitor.getProjectedColumns().size(); i++) { int index = this.visitor.getProjectedColumns().get(i); Object o = ((Literal)changes.get(i).getValue()).getValue(); setValue(row, index-1, o); } modified = true; result++; } }
@Override public void execute() throws TranslatorException { UpdateVisitor visitor = new UpdateVisitor(getMetadata()); visitor.visit((Update)command); execute(((Update)command).getWhere(), visitor); }
public void testGetGroup() throws Exception { assertNotNull(example().getTable()); }
public void testGetChanges() throws Exception { List changes = example().getChanges(); assertNotNull(changes); assertEquals(4, changes.size()); }
public void testGetCriteria() throws Exception { assertNotNull(example().getWhere()); }
public void visit(Update obj) { buffer.append(UPDATE) .append(Tokens.SPACE); appendSourceComment(obj); append(obj.getTable()); buffer.append(Tokens.SPACE) .append(SET) .append(Tokens.SPACE); append(obj.getChanges()); if (obj.getWhere() != null) { buffer.append(Tokens.SPACE) .append(WHERE) .append(Tokens.SPACE); append(obj.getWhere()); } }
@Override protected int processIds(String[] ids, IQueryProvidingVisitor visitor) throws TranslatorException { List<DataPayload> updateDataList = new ArrayList<DataPayload>(); for (int i = 0; i < ids.length; i++) { DataPayload data = new DataPayload(); for (SetClause clause : ((Update)command).getChanges()) { ColumnReference element = clause.getSymbol(); Column column = element.getMetadataObject(); String val = ((Literal) clause.getValue()).toString(); data.addField(column.getSourceName(), Util.stripQutes(val)); } data.setType(visitor.getTableName()); data.setID(ids[i]); updateDataList.add(data); } return getConnection().update(updateDataList); } }
org.teiid.language.Update translate(Update update) { org.teiid.language.Update result = new org.teiid.language.Update(translate(update.getGroup()), translate(update.getChangeList()), translate(update.getCriteria())); setBatchValues(result); return result; }
@Override public void visit(Update obj) { this.operationType = OperationType.UPDATE; visitNode(obj.getTable()); this.odataQuery.setCondition(obj.getWhere()); try { // read the properties int elementCount = obj.getChanges().size(); for (int i = 0; i < elementCount; i++) { Column column = obj.getChanges().get(i).getSymbol().getMetadataObject(); String type = ODataTypeManager.odataType(column) .getFullQualifiedName().getFullQualifiedNameAsString(); Expression expr = obj.getChanges().get(i).getValue(); Object value = resolveExpressionValue(expr); this.odataQuery.addUpdateProperty(column, type, value); } } catch (TranslatorException e) { this.exceptions.add(e); } }
org.teiid.language.Update translate(Update update) { org.teiid.language.Update result = new org.teiid.language.Update(translate(update.getGroup()), translate(update.getChangeList()), translate(update.getCriteria())); setBatchValues(result); return result; }
for (SetClause set : update.getChanges()) { cols.add(set.getSymbol()); vals.add(set.getValue()); if (update.getWhere() == null) { insert = new Insert(update.getTable(), cols, new ExpressionValueSource(vals)); } else { List<DerivedColumn> select = new ArrayList<DerivedColumn>(); KeyRecord pk = update.getTable().getMetadataObject().getPrimaryKey(); if(pk != null) { for (Column c : pk.getColumns()) { if (!columns.contains(c)) { ColumnReference cr = new ColumnReference(update.getTable(), c.getName(), c, c.getJavaType()); select.add(new DerivedColumn(null, cr)); cols.add(cr); Select query = new Select(select, false, Arrays.asList((TableReference)update.getTable()), update.getWhere(), null, null, null); insert = new Insert(update.getTable(), cols, query);
org.teiid.language.Update translate(Update update) { org.teiid.language.Update result = new org.teiid.language.Update(translate(update.getGroup()), translate(update.getChangeList()), translate(update.getCriteria())); setBatchValues(result); return result; }
public void visit(Update obj) { worksheetTitle = obj.getTable().getName(); changes = new ArrayList<UpdateSet>(); String columnName; if (obj.getTable().getMetadataObject().getNameInSource() != null) { this.worksheetTitle = obj.getTable().getMetadataObject().getNameInSource(); } for (SetClause s : obj.getChanges()) { if(s.getSymbol().getMetadataObject().getNameInSource()!=null){ columnName=s.getSymbol().getMetadataObject().getNameInSource(); }else{ columnName=s.getSymbol().getMetadataObject().getName(); } changes.add(new UpdateSet(columnName, getStringValue(s.getValue()))); } translateWhere(obj.getWhere()); }
@Override public void visit(Update obj) { this.condition = obj.getWhere(); append(obj.getTable()); List<SetClause> changes = obj.getChanges(); try { IDRef pk = null; && this.mongoDoc.isPartOfPrimaryKey(colName)) { throw new TranslatorException(MongoDBPlugin.Event.TEIID18035, MongoDBPlugin.Util.gs( MongoDBPlugin.Event.TEIID18035, colName, obj.getTable().getName())); } else if (this.mongoDoc.getMergeKey().getAssociation() == Association.MANY && this.mongoDoc.isPartOfForeignKey(colName)) { throw new TranslatorException(MongoDBPlugin.Event.TEIID18036, MongoDBPlugin.Util.gs( MongoDBPlugin.Event.TEIID18036, colName, obj.getTable().getName())); this.mongoDoc.updateReferenceColumnValue(obj.getTable().getName(), colName, value); append(obj.getWhere());