Search in sources :

Example 1 with OracleDatabaseAdapter

use of org.apache.nifi.processors.standard.db.impl.OracleDatabaseAdapter in project nifi by apache.

the class QueryDatabaseTableTest method testGetQuery.

@Test
public void testGetQuery() throws Exception {
    String query = processor.getQuery(dbAdapter, "myTable", null, null, null, null);
    assertEquals("SELECT * FROM myTable", query);
    query = processor.getQuery(dbAdapter, "myTable", "col1,col2", null, null, null);
    assertEquals("SELECT col1,col2 FROM myTable", query);
    query = processor.getQuery(dbAdapter, "myTable", null, Collections.singletonList("id"), null, null);
    assertEquals("SELECT * FROM myTable", query);
    Map<String, String> maxValues = new HashMap<>();
    maxValues.put("id", "509");
    StateManager stateManager = runner.getStateManager();
    stateManager.setState(maxValues, Scope.CLUSTER);
    processor.putColumnType("mytable" + AbstractDatabaseFetchProcessor.NAMESPACE_DELIMITER + "id", Types.INTEGER);
    query = processor.getQuery(dbAdapter, "myTable", null, Collections.singletonList("id"), null, stateManager.getState(Scope.CLUSTER).toMap());
    assertEquals("SELECT * FROM myTable WHERE id > 509", query);
    maxValues.put("date_created", "2016-03-07 12:34:56");
    stateManager.setState(maxValues, Scope.CLUSTER);
    processor.putColumnType("mytable" + AbstractDatabaseFetchProcessor.NAMESPACE_DELIMITER + "date_created", Types.TIMESTAMP);
    query = processor.getQuery(dbAdapter, "myTable", null, Arrays.asList("id", "DATE_CREATED"), null, stateManager.getState(Scope.CLUSTER).toMap());
    assertEquals("SELECT * FROM myTable WHERE id > 509 AND DATE_CREATED >= '2016-03-07 12:34:56'", query);
    // Test Oracle strategy
    dbAdapter = new OracleDatabaseAdapter();
    query = processor.getQuery(dbAdapter, "myTable", null, Arrays.asList("id", "DATE_CREATED"), "type = \"CUSTOMER\"", stateManager.getState(Scope.CLUSTER).toMap());
    assertEquals("SELECT * FROM myTable WHERE id > 509 AND DATE_CREATED >= timestamp '2016-03-07 12:34:56' AND (type = \"CUSTOMER\")", query);
}
Also used : StateManager(org.apache.nifi.components.state.StateManager) HashMap(java.util.HashMap) OracleDatabaseAdapter(org.apache.nifi.processors.standard.db.impl.OracleDatabaseAdapter) Test(org.junit.Test)

Aggregations

HashMap (java.util.HashMap)1 StateManager (org.apache.nifi.components.state.StateManager)1 OracleDatabaseAdapter (org.apache.nifi.processors.standard.db.impl.OracleDatabaseAdapter)1 Test (org.junit.Test)1