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()); }
private static CommandId getInsertIntoCommandId(final InsertInto insertInto) { return new CommandId(CommandId.Type.STREAM, insertInto.getTarget().toString(), CommandId.Action .CREATE); }
private void givenFileContainsAPersistentQuery() { when(engine.parseStatements(anyString())).thenReturn(ImmutableList.of( new PreparedStatement<>("InsertInto", new InsertInto(SOME_NAME, query, Optional.empty())) )); }
@Override protected R visitInsertInto(final InsertInto node, final C context) { process(node.getQuery(), context); return null; }
@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 @SuppressWarnings("unchecked") public void shouldRunInsertIntoStatements() { // Given: final PreparedStatement<InsertInto> insertInto = new PreparedStatement<>("InsertInto", new InsertInto(SOME_NAME, query, Optional.empty())); when(engine.parseStatements(anyString())).thenReturn(ImmutableList.of(insertInto)); // When: standaloneExecutor.start(); // Then: verify(engine).execute(insertInto, ksqlConfig, emptyMap()); }
@Override protected R visitInsertInto(final InsertInto node, final C context) { process(node.getQuery(), context); return null; } }
@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(">")); }
@Override public Node visitInsertInto(final SqlBaseParser.InsertIntoContext context) { Optional<Expression> partitionByColumn = Optional.empty(); if (context.identifier() != null) { partitionByColumn = Optional.of(new QualifiedNameReference( QualifiedName.of(getIdentifierText(context.identifier())))); } return new InsertInto( Optional.of(getLocation(context)), getQualifiedName(context.qualifiedName()), (Query) visitQuery(context.query()), partitionByColumn); }