private static CommandId getDropStreamCommandId(final DropStream dropStreamQuery) { return new CommandId( CommandId.Type.STREAM, dropStreamQuery.getName().getSuffix(), CommandId.Action.DROP ); }
@Test public void shouldParseDropStreamIfExists() { final String simpleQuery = "DROP STREAM IF EXISTS STREAM1;"; final Statement statement = KSQL_PARSER.buildAst(simpleQuery, metaStore).get(0).getStatement(); assertThat(statement, instanceOf(DropStream.class)); final DropStream dropStream = (DropStream) statement; assertThat(dropStream.getName().toString().toUpperCase(), equalTo("STREAM1")); assertThat(dropStream.getIfExists(), is(true)); }
private DropStream mockDropStream(final String name) { final DropStream mockDropStream = mock(DropStream.class); expect(mockDropStream.getName()).andStubReturn(QualifiedName.of(name)); expect(mockDropStream.getStreamName()).andStubReturn(QualifiedName.of(name)); expect(mockParser.parseSingleStatement("DROP")) .andReturn(new PreparedStatement<>("DROP", mockDropStream)); return mockDropStream; }
@Override public Node visitDropStream(final SqlBaseParser.DropStreamContext context) { return new DropStream( getLocation(context), getQualifiedName(context.qualifiedName()), context.EXISTS() != null, context.DELETE() != null ); }
@Test public void shouldParseDropStream() { final String simpleQuery = "DROP STREAM STREAM1;"; final Statement statement = KSQL_PARSER.buildAst(simpleQuery, metaStore).get(0).getStatement(); assertThat(statement, instanceOf(DropStream.class)); final DropStream dropStream = (DropStream) statement; assertThat(dropStream.getName().toString().toUpperCase(), equalTo("STREAM1")); assertThat(dropStream.getIfExists(), is(false)); }
@Test public void shouldFailOnDropStatement() { // Given: when(engine.parseStatements(any())).thenReturn(ImmutableList.of( new PreparedStatement<>("DROP", new DropStream(SOME_NAME, false, false)) )); expectedException.expect(KsqlException.class); expectedException.expectMessage("Ignoring statements: DROP\n" + "Only DDL (CREATE STREAM/TABLE, DROP STREAM/TABLE, SET, UNSET) " + "and DML(CSAS, CTAS and INSERT INTO) statements can run in standalone mode."); // When: standaloneExecutor.start(); }