@SuppressWarnings("MethodMayBeStatic") // Can not be static as used in validator map private KsqlEntity setProperty( final PreparedStatement<SetProperty> stmt, final Map<String, Object> propertyOverrides ) { final SetProperty statement = stmt.getStatement(); propertyOverrides.put(statement.getPropertyName(), statement.getPropertyValue()); return null; }
@Test public void testSetProperties() { final String simpleQuery = "set 'auto.offset.reset'='earliest';"; final Statement statement = KSQL_PARSER.buildAst(simpleQuery, metaStore).get(0).getStatement(); Assert.assertTrue(statement instanceof SetProperty); final SetProperty setProperty = (SetProperty) statement; Assert.assertTrue(setProperty.toString().equalsIgnoreCase("SetProperty{}")); Assert.assertTrue(setProperty.getPropertyName().equalsIgnoreCase("auto.offset.reset")); Assert.assertTrue(setProperty.getPropertyValue().equalsIgnoreCase("earliest")); }
@Override public Node visitSetProperty(final SqlBaseParser.SetPropertyContext context) { final String propertyName = unquote(context.STRING(0).getText(), "'"); final String propertyValue = unquote(context.STRING(1).getText(), "'"); return new SetProperty(Optional.ofNullable(getLocation(context)), propertyName, propertyValue); }
@Test public void shouldRunSetStatements() { // Given: when(engine.parseStatements(anyString())).thenReturn(ImmutableList.of( new PreparedStatement<>("CS", new SetProperty(Optional.empty(), "name", "value")), new PreparedStatement<>("CS", new CreateStream(SOME_NAME, emptyList(), false, emptyMap())) )); // When: standaloneExecutor.start(); // Then: verify(engine) .execute(any(), any(), eq(ImmutableMap.of("name", "value"))); }
private void handleSetProperty(final PreparedStatement<SetProperty> statement) { final SetProperty setProperty = statement.getStatement(); configProperties.put(setProperty.getPropertyName(), setProperty.getPropertyValue()); }
@Test public void shouldRunUnSetStatements() { // Given: when(engine.parseStatements(anyString())).thenReturn(ImmutableList.of( new PreparedStatement<>("SET", new SetProperty(Optional.empty(), "name", "value")), new PreparedStatement<>("UNSET", new UnsetProperty(Optional.empty(), "name")), new PreparedStatement<>("CS", new CreateStream(SOME_NAME, emptyList(), false, emptyMap())) )); // When: standaloneExecutor.start(); // Then: verify(engine).execute(any(), any(), eq(emptyMap())); }
@SuppressFBWarnings("RV_RETURN_VALUE_IGNORED_INFERRED") private void validateSetPropertyStatement(final PreparedStatement<SetProperty> statement) { if (isUnknownPropertyName(statement.getStatement().getPropertyName())) { throw new KsqlRestException(Errors.badStatement( "Unknown property", statement.getStatementText())); } try { ksqlConfig.cloneWithPropertyOverwrite(ImmutableMap.of( statement.getStatement().getPropertyName(), statement.getStatement().getPropertyValue())); } catch (final Exception e) { throw new KsqlRestException(Errors.badStatement(e, statement.getStatementText())); } }