public static org.teiid.query.sql.lang.Insert helpExample2(String groupName) { GroupSymbol group = TestGroupImpl.helpExample(groupName); ArrayList<ElementSymbol> elements = new ArrayList<ElementSymbol>(); elements.add(TestElementImpl.helpExample(groupName, "e1")); //$NON-NLS-1$ ArrayList<org.teiid.query.sql.symbol.Expression> values = new ArrayList<org.teiid.query.sql.symbol.Expression>(); values.add(TestSearchedCaseExpressionImpl.helpExample()); return new org.teiid.query.sql.lang.Insert(group, elements, values); }
public void testInsert() { GroupSymbol gs1 = exampleGroupSymbol(1); Insert insert = new Insert(); insert.setGroup(gs1); Set groups = new HashSet(); groups.add(gs1); helpTestGroups(insert, true, groups); }
public void testHasNoCriteria1() { assertEquals("Got incorrect answer checking for no criteria", false, RuleValidateWhereAll.hasNoCriteria(new Insert())); //$NON-NLS-1$ }
private void registerIteratorRequest() throws TeiidComponentException, TeiidProcessingException { Insert insert = new Insert(intoGroup, intoElements, null); insert.setSourceHint(sourceHint); insert.setUpsert(upsert); buffer.close(); insert.setTupleSource(buffer.createIndexedTupleSource(true)); // Register insert command against source registerRequest(insert); //remove the old buffer when the insert is complete last = buffer; buffer = null; }
private void registerIteratorRequest() throws TeiidComponentException, TeiidProcessingException { Insert insert = new Insert(intoGroup, intoElements, null); insert.setSourceHint(sourceHint); insert.setUpsert(upsert); buffer.close(); insert.setTupleSource(buffer.createIndexedTupleSource(true)); // Register insert command against source registerRequest(insert); //remove the old buffer when the insert is complete last = buffer; buffer = null; }
private void registerIteratorRequest() throws TeiidComponentException, TeiidProcessingException { Insert insert = new Insert(intoGroup, intoElements, null); insert.setSourceHint(sourceHint); insert.setUpsert(upsert); buffer.close(); insert.setTupleSource(buffer.createIndexedTupleSource(true)); // Register insert command against source registerRequest(insert); //remove the old buffer when the insert is complete last = buffer; buffer = null; }
public static org.teiid.query.sql.lang.Insert helpExample(String groupName) { GroupSymbol group = TestGroupImpl.helpExample(groupName); ArrayList<ElementSymbol> elements = new ArrayList<ElementSymbol>(); elements.add(TestElementImpl.helpExample(groupName, "e1")); //$NON-NLS-1$ elements.add(TestElementImpl.helpExample(groupName, "e2")); //$NON-NLS-1$ elements.add(TestElementImpl.helpExample(groupName, "e3")); //$NON-NLS-1$ elements.add(TestElementImpl.helpExample(groupName, "e4")); //$NON-NLS-1$ ArrayList<Constant> values = new ArrayList<Constant>(); values.add(TestLiteralImpl.helpExample(1)); values.add(TestLiteralImpl.helpExample(2)); values.add(TestLiteralImpl.helpExample(3)); values.add(TestLiteralImpl.helpExample(4)); return new org.teiid.query.sql.lang.Insert(group, elements, values); }
@Test public void testInsert1() { Insert insert = new Insert(); insert.setGroup(new GroupSymbol("m.g1")); //$NON-NLS-1$ List<ElementSymbol> vars = new ArrayList<ElementSymbol>(); vars.add(new ElementSymbol("e1")); //$NON-NLS-1$ vars.add(new ElementSymbol("e2")); //$NON-NLS-1$ insert.setVariables(vars); List<Constant> values = new ArrayList<Constant>(); values.add(new Constant(new Integer(5))); values.add(new Constant("abc")); //$NON-NLS-1$ insert.setValues(values); helpTest(insert, "INSERT INTO m.g1 (e1, e2) VALUES (5, 'abc')"); //$NON-NLS-1$ }
@Test public void testMerge1() { Insert insert = new Insert(); insert.setUpsert(true); insert.setGroup(new GroupSymbol("m.g1")); //$NON-NLS-1$ List<ElementSymbol> vars = new ArrayList<ElementSymbol>(); vars.add(new ElementSymbol("e1")); //$NON-NLS-1$ vars.add(new ElementSymbol("e2")); //$NON-NLS-1$ insert.setVariables(vars); List<Constant> values = new ArrayList<Constant>(); values.add(new Constant(new Integer(5))); values.add(new Constant("abc")); //$NON-NLS-1$ insert.setValues(values); helpTest(insert, "UPSERT INTO m.g1 (e1, e2) VALUES (5, 'abc')"); //$NON-NLS-1$ }
public void testVisitInsert1() { Insert insert = new Insert(); insert.setGroup(exampleGroup(true, 0)); List vars = new ArrayList(); vars.add(exampleElement(true, 0)); vars.add(exampleElement(true, 1)); insert.setVariables(vars); List values = new ArrayList(); values.add(new Constant("abc")); //$NON-NLS-1$ values.add(new Constant("abc")); //$NON-NLS-1$ insert.setValues(values); helpTest(insert, getSymbolMap()); }
public void testVisitInsert2() { Insert insert = new Insert(); insert.setGroup(exampleGroup(true, 0)); List values = new ArrayList(); values.add(new Constant("abc")); //$NON-NLS-1$ values.add(new Constant("abc")); //$NON-NLS-1$ insert.setValues(values); helpTest(insert, getSymbolMap()); }
@Test public void testElementInDoubleQuotes_Insert() throws Exception { GroupSymbol g = new GroupSymbol("x"); //$NON-NLS-1$ From from = new From(); from.addGroup(g); ElementSymbol e = new ElementSymbol("foo"); //$NON-NLS-1$ Insert query = new Insert(g, new ArrayList<ElementSymbol>(), new ArrayList()); query.addVariable(e); query.addValue(new Constant("bar", String.class)); //$NON-NLS-1$ helpTest("insert into x (\"foo\") values ('bar')", //$NON-NLS-1$ "INSERT INTO x (foo) VALUES ('bar')", //$NON-NLS-1$ query); }
/** INSERT INTO m.g (a) VALUES (?) */ @Test public void testInsertWithReference() { Insert insert = new Insert(); insert.setGroup(new GroupSymbol("m.g")); //$NON-NLS-1$ List<ElementSymbol> vars = new ArrayList<ElementSymbol>(); vars.add(new ElementSymbol("a")); //$NON-NLS-1$ insert.setVariables(vars); List<Reference> values = new ArrayList<Reference>(); values.add(new Reference(0)); insert.setValues(values); helpTest("INSERT INTO m.g (a) VALUES (?)", //$NON-NLS-1$ "INSERT INTO m.g (a) VALUES (?)", //$NON-NLS-1$ insert); }
public void testBatchedUpdateCommand() { GroupSymbol g1 = exampleGroupSymbol(1); GroupSymbol g2 = exampleGroupSymbol(2); GroupSymbol g3 = exampleGroupSymbol(3); Insert insert = new Insert(); insert.setGroup(g1); Update update = new Update(); update.setGroup(g2); Delete delete = new Delete(); delete.setGroup(g3); List updates = new ArrayList(3); updates.add(insert); updates.add(update); updates.add(delete); Set groups = new HashSet(); groups.add(g1); groups.add(g2); groups.add(g3); helpTestGroups(new BatchedUpdateCommand(updates), true, groups); } }
@Test public void testInsertWithOption() { Insert insert = new Insert(); insert.setGroup(new GroupSymbol("m.g")); //$NON-NLS-1$ List<ElementSymbol> vars = new ArrayList<ElementSymbol>(); vars.add(new ElementSymbol("a")); //$NON-NLS-1$ insert.setVariables(vars); List<Reference> values = new ArrayList<Reference>(); values.add(new Reference(0)); insert.setValues(values); Option option = new Option(); option.setNoCache(true); insert.setOption(option); TestParser.helpTest("INSERT INTO m.g (a) VALUES (?) OPTION NOCACHE", //$NON-NLS-1$ "INSERT INTO m.g (a) VALUES (?) OPTION NOCACHE", //$NON-NLS-1$ insert); }
/** * This method will alias each of the select into elements to the corresponding column name in the * target table. This ensures that they will all be uniquely named. * * @param query * @throws QueryValidatorException */ private Command rewriteSelectInto(Query query) throws TeiidProcessingException{ Into into = query.getInto(); try { List<ElementSymbol> allIntoElements = Util.deepClone(ResolverUtil.resolveElementsInGroup(into.getGroup(), metadata), ElementSymbol.class); Insert insert = new Insert(into.getGroup(), allIntoElements, Collections.emptyList()); insert.setSourceHint(query.getSourceHint()); query.setSourceHint(null); query.setInto(null); insert.setQueryExpression(query); return rewriteInsert(correctDatatypes(insert)); } catch (QueryMetadataException e) { throw new QueryValidatorException(e); } catch (TeiidComponentException e) { throw new QueryValidatorException(e); } }
/** * This method will alias each of the select into elements to the corresponding column name in the * target table. This ensures that they will all be uniquely named. * * @param query * @throws QueryValidatorException */ private Command rewriteSelectInto(Query query) throws TeiidProcessingException{ Into into = query.getInto(); try { List<ElementSymbol> allIntoElements = Util.deepClone(ResolverUtil.resolveElementsInGroup(into.getGroup(), metadata), ElementSymbol.class); Insert insert = new Insert(into.getGroup(), allIntoElements, Collections.emptyList()); insert.setSourceHint(query.getSourceHint()); query.setSourceHint(null); query.setInto(null); insert.setQueryExpression(query); return rewriteInsert(correctDatatypes(insert)); } catch (QueryMetadataException e) { throw new QueryValidatorException(e); } catch (TeiidComponentException e) { throw new QueryValidatorException(e); } }
@Test public void testInsertWithoutColumns() { Insert insert = new Insert(); insert.setGroup(new GroupSymbol("m.g")); //$NON-NLS-1$ insert.addValue(new Constant("a")); //$NON-NLS-1$ insert.addValue(new Constant("b")); //$NON-NLS-1$ helpTest("INSERT INTO m.g VALUES ('a', 'b')", //$NON-NLS-1$ "INSERT INTO m.g VALUES ('a', 'b')", //$NON-NLS-1$ insert); }
@Test public void testNodeId() throws Exception { TupleSourceCache tsc = new TupleSourceCache(); HardcodedDataManager pdm = new HardcodedDataManager() { @Override public TupleSource registerRequest(CommandContext context, Command command, String modelName, RegisterRequestParameter parameterObject) throws TeiidComponentException { assertEquals(1, parameterObject.nodeID); return Mockito.mock(TupleSource.class); } }; CommandContext context = TestProcessor.createCommandContext(); BufferManagerImpl bufferMgr = BufferManagerFactory.createBufferManager(); Command command = new Insert(); RegisterRequestParameter parameterObject = new RegisterRequestParameter("z", 1, 1); parameterObject.info = new RegisterRequestParameter.SharedAccessInfo(); tsc.getSharedTupleSource(context, command, "x", parameterObject, bufferMgr, pdm); }
@Test public void testInsertIntoSelect() { GroupSymbol g = new GroupSymbol("sys.groups"); //$NON-NLS-1$ From from = new From(); from.addGroup(g); Insert insert = new Insert(); GroupSymbol groupSymbol = new GroupSymbol( "tempA" ); //$NON-NLS-1$ insert.setGroup(groupSymbol); Select select = new Select(); select.addSymbol( new Constant( 1 ) ); //$NON-NLS-1$ Query query = new Query(); query.setSelect(select); insert.setQueryExpression( query ); helpTest("insert into tempA SELECT 1", //$NON-NLS-1$ "INSERT INTO tempA SELECT 1", //$NON-NLS-1$ insert); }