@Override protected Void visitInsertInto(final InsertInto node, final Integer indent) { builder.append("INSERT INTO "); builder.append(node.getTarget()); process(node.getQuery(), indent); return null; }
private static CommandId getInsertIntoCommandId(final InsertInto insertInto) { return new CommandId(CommandId.Type.STREAM, insertInto.getTarget().toString(), CommandId.Action .CREATE); }
protected Node visitInsertInto(final InsertInto node, final Object context) { return new InsertInto(node.getLocation(), node.getTarget(), (Query) process(node.getQuery(), context), node.getPartitionByColumn().isPresent() ? Optional.ofNullable( (Expression) process(node.getPartitionByColumn().get(), context)) : Optional.empty()); }
@Test public void testInsertInto() { final String insertIntoString = "INSERT INTO test2 SELECT col0, col2, col3 FROM test1 WHERE col0 > " + "100;"; final Statement statement = KSQL_PARSER.buildAst(insertIntoString, metaStore).get(0) .getStatement(); final StatementRewriter statementRewriter = new StatementRewriter(); final Statement rewrittenStatement = (Statement) statementRewriter.process(statement, null); assertThat(rewrittenStatement, instanceOf(InsertInto.class)); final InsertInto insertInto = (InsertInto) rewrittenStatement; assertThat(insertInto.getTarget().toString(), equalTo("TEST2")); final Query query = insertInto.getQuery(); assertThat(query.getQueryBody(), instanceOf(QuerySpecification.class)); final QuerySpecification querySpecification = (QuerySpecification)query.getQueryBody(); assertThat(querySpecification.getSelect().getSelectItems().size(), equalTo(3)); assertThat(querySpecification.getFrom(), not(nullValue())); assertThat(querySpecification.getWhere().isPresent(), equalTo(true)); assertThat(querySpecification.getWhere().get(), instanceOf(ComparisonExpression.class)); final ComparisonExpression comparisonExpression = (ComparisonExpression)querySpecification.getWhere().get(); assertThat(comparisonExpression.getType().getValue(), equalTo(">")); }
@Test public void testInsertInto() { final String insertIntoString = "INSERT INTO test2 SELECT col0, col2, col3 FROM test1 WHERE col0 > " + "100;"; final Statement statement = KSQL_PARSER.buildAst(insertIntoString, metaStore).get(0) .getStatement(); assertThat(statement, instanceOf(InsertInto.class)); final InsertInto insertInto = (InsertInto) statement; assertThat(insertInto.getTarget().toString(), equalTo("TEST2")); final Query query = insertInto.getQuery(); assertThat(query.getQueryBody(), instanceOf(QuerySpecification.class)); final QuerySpecification querySpecification = (QuerySpecification)query.getQueryBody(); assertThat( querySpecification.getSelect().getSelectItems().size(), equalTo(3)); assertThat(querySpecification.getFrom(), not(nullValue())); assertThat(querySpecification.getWhere().isPresent(), equalTo(true)); assertThat(querySpecification.getWhere().get(), instanceOf(ComparisonExpression.class)); final ComparisonExpression comparisonExpression = (ComparisonExpression)querySpecification.getWhere().get(); assertThat(comparisonExpression.getType().getValue(), equalTo(">")); }