use of org.locationtech.geowave.core.store.query.gwql.statement.DeleteStatement in project geowave by locationtech.
the class DeleteStatementTest method testDelete.
@Test
public void testDelete() throws ParseException, IOException {
final DataStore dataStore = createDataStore();
final String statement = "DELETE FROM type";
final Statement gwStatement = GWQLParser.parseStatement(dataStore, statement);
assertTrue(gwStatement instanceof DeleteStatement);
final DeleteStatement<?> deleteStatement = (DeleteStatement<?>) gwStatement;
assertNotNull(deleteStatement.getAdapter());
assertEquals("type", deleteStatement.getAdapter().getTypeName());
assertNull(deleteStatement.getFilter());
}
use of org.locationtech.geowave.core.store.query.gwql.statement.DeleteStatement in project geowave by locationtech.
the class DeleteStatementTest method testComplexStatement.
@Test
public void testComplexStatement() {
final DataStore dataStore = createDataStore();
final Statement statement = GWQLParser.parseStatement(dataStore, "DELETE FROM type " + "WHERE (pop < 1) " + "AND ((pop > 48 OR pid > 'a') AND (pop BETWEEN 0 AND 10 OR pid <= 'b'))");
assertTrue(statement instanceof DeleteStatement);
final DeleteStatement<?> deleteStatement = (DeleteStatement<?>) statement;
assertNotNull(deleteStatement.getAdapter());
assertEquals("type", deleteStatement.getAdapter().getTypeName());
assertNotNull(deleteStatement.getFilter());
final Filter filter = deleteStatement.getFilter();
assertTrue(filter instanceof And);
And andFilter = (And) filter;
assertTrue(andFilter.getChildren().length == 2);
assertTrue(andFilter.getChildren()[0] instanceof NumericComparisonOperator);
NumericComparisonOperator compareOp = (NumericComparisonOperator) andFilter.getChildren()[0];
assertTrue(compareOp.getCompareOp().equals(CompareOp.LESS_THAN));
assertTrue(compareOp.getExpression1() instanceof NumericFieldValue);
assertEquals("pop", ((NumericFieldValue) compareOp.getExpression1()).getFieldName());
assertTrue(compareOp.getExpression2() instanceof NumericLiteral);
assertEquals(1, ((NumericLiteral) compareOp.getExpression2()).getValue(), 0.00001);
assertTrue(andFilter.getChildren()[1] instanceof And);
andFilter = (And) andFilter.getChildren()[1];
assertTrue(andFilter.getChildren().length == 2);
assertTrue(andFilter.getChildren()[0] instanceof Or);
Or orFilter = (Or) andFilter.getChildren()[0];
assertTrue(orFilter.getChildren().length == 2);
assertTrue(orFilter.getChildren()[0] instanceof NumericComparisonOperator);
final NumericComparisonOperator numericCompare = (NumericComparisonOperator) orFilter.getChildren()[0];
assertTrue(numericCompare.getExpression1() instanceof NumericFieldValue);
assertEquals("pop", ((NumericFieldValue) numericCompare.getExpression1()).getFieldName());
assertTrue(numericCompare.getExpression2() instanceof NumericLiteral);
assertEquals(48, ((NumericLiteral) numericCompare.getExpression2()).evaluateValue(null), 0.00001);
assertTrue(orFilter.getChildren()[1] instanceof TextComparisonOperator);
TextComparisonOperator textCompareOp = (TextComparisonOperator) orFilter.getChildren()[1];
assertTrue(textCompareOp.getCompareOp().equals(CompareOp.GREATER_THAN));
assertTrue(textCompareOp.getExpression1() instanceof TextFieldValue);
assertEquals("pid", ((TextFieldValue) textCompareOp.getExpression1()).getFieldName());
assertTrue(textCompareOp.getExpression2() instanceof TextLiteral);
assertEquals("a", ((TextLiteral) textCompareOp.getExpression2()).getValue());
assertTrue(andFilter.getChildren()[1] instanceof Or);
orFilter = (Or) andFilter.getChildren()[1];
assertTrue(orFilter.getChildren().length == 2);
assertTrue(orFilter.getChildren()[0] instanceof NumericBetween);
NumericBetween between = (NumericBetween) orFilter.getChildren()[0];
assertTrue(between.getValue() instanceof NumericFieldValue);
assertEquals("pop", ((NumericFieldValue) between.getValue()).getFieldName());
assertTrue(between.getLowerBound() instanceof NumericLiteral);
assertEquals(0, ((NumericLiteral) between.getLowerBound()).getValue(), 0.00001);
assertTrue(between.getUpperBound() instanceof NumericLiteral);
assertEquals(10, ((NumericLiteral) between.getUpperBound()).getValue(), 0.00001);
assertTrue(orFilter.getChildren()[1] instanceof TextComparisonOperator);
textCompareOp = (TextComparisonOperator) orFilter.getChildren()[1];
assertTrue(textCompareOp.getCompareOp().equals(CompareOp.LESS_THAN_OR_EQUAL));
assertTrue(textCompareOp.getExpression1() instanceof TextFieldValue);
assertEquals("pid", ((TextFieldValue) textCompareOp.getExpression1()).getFieldName());
assertTrue(textCompareOp.getExpression2() instanceof TextLiteral);
assertEquals("b", ((TextLiteral) textCompareOp.getExpression2()).getValue());
}
use of org.locationtech.geowave.core.store.query.gwql.statement.DeleteStatement in project geowave by locationtech.
the class DeleteStatementTest method testDeleteWithFilter.
@Test
public void testDeleteWithFilter() throws ParseException, IOException {
final DataStore dataStore = createDataStore();
final String statement = "DELETE FROM type WHERE pop BETWEEN 1000 AND 2000 and pid > 'abc'";
final Statement gwStatement = GWQLParser.parseStatement(dataStore, statement);
assertTrue(gwStatement instanceof DeleteStatement);
final DeleteStatement<?> deleteStatement = (DeleteStatement<?>) gwStatement;
assertNotNull(deleteStatement.getAdapter());
assertEquals("type", deleteStatement.getAdapter().getTypeName());
assertNotNull(deleteStatement.getFilter());
final Filter filter = deleteStatement.getFilter();
assertTrue(filter instanceof And);
final And andFilter = (And) filter;
assertTrue(andFilter.getChildren().length == 2);
assertTrue(andFilter.getChildren()[0] instanceof NumericBetween);
assertTrue(andFilter.getChildren()[1] instanceof TextComparisonOperator);
}
Aggregations