use of org.pentaho.di.core.database.DatabaseMeta in project data-access by pentaho.
the class CsvTransformGeneratorIT method testCreateTable.
public void testCreateTable() throws Exception {
IPentahoSession session = new StandaloneSession("test");
KettleSystemListener.environmentInit(session);
DatabaseMeta dbMeta = getDatabaseMeta();
ModelInfo info = createModel();
CsvTransformGenerator gen = new CsvTransformGenerator(info, dbMeta);
String tableName = info.getStageTableName();
try {
gen.execSqlStatement(getDropTableStatement(tableName), dbMeta, null);
} catch (CsvTransformGeneratorException e) {
// it is OK if the table doesn't exist previously
}
gen.createOrModifyTable(session);
// check the results
long rowCount = this.getRowCount(tableName);
assertEquals((long) 0, rowCount);
}
use of org.pentaho.di.core.database.DatabaseMeta in project data-access by pentaho.
the class CsvTransformGeneratorIT method testLoadTable1.
public void testLoadTable1() throws Exception {
IPentahoSession session = new StandaloneSession("test");
KettleSystemListener.environmentInit(session);
ModelInfo info = createModel();
CsvTransformGenerator gen = new CsvTransformGenerator(info, getDatabaseMeta());
// create the model
String tableName = info.getStageTableName();
try {
gen.execSqlStatement(getDropTableStatement(tableName), getDatabaseMeta(), null);
} catch (CsvTransformGeneratorException e) {
// table might not be there yet, it is OK
}
// generate the database table
gen.createOrModifyTable(session);
// load the table
loadTable(gen, info, true, session);
// check the results
long rowCount = this.getRowCount(tableName);
assertEquals((long) 235, rowCount);
DatabaseMeta databaseMeta = getDatabaseMeta();
assertNotNull(databaseMeta);
Database database = new Database(databaseMeta);
assertNotNull(database);
database.connect();
Connection connection = null;
Statement stmt = null;
ResultSet sqlResult = null;
try {
connection = database.getConnection();
assertNotNull(connection);
stmt = database.getConnection().createStatement();
// check the first row
Date testDate = new Date();
testDate.setDate(1);
testDate.setHours(0);
testDate.setMinutes(0);
testDate.setMonth(0);
testDate.setSeconds(0);
testDate.setYear(110);
boolean ok = stmt.execute("select * from " + tableName);
assertTrue(ok);
sqlResult = stmt.getResultSet();
assertNotNull(sqlResult);
ok = sqlResult.next();
assertTrue(ok);
// test the values
assertEquals((long) 3, sqlResult.getLong(1));
assertEquals(25677.96525, sqlResult.getDouble(2));
assertEquals((long) 1231, sqlResult.getLong(3));
assertEquals(testDate.getYear(), sqlResult.getDate(4).getYear());
assertEquals(testDate.getMonth(), sqlResult.getDate(4).getMonth());
assertEquals(testDate.getDate(), sqlResult.getDate(4).getDate());
assertEquals(testDate.getHours(), sqlResult.getTime(4).getHours());
// assertEquals( testDate.getMinutes(), ((Date)cells[3]).getMinutes() ); this fails, a bug in the PDI date
// parsing?
assertEquals(testDate.getSeconds(), sqlResult.getTime(4).getSeconds());
// assertEquals( testDate, cells[3] );
assertEquals("Afghanistan", sqlResult.getString(5));
assertEquals((long) 11, sqlResult.getLong(6));
assertEquals(111.9090909, sqlResult.getDouble(7));
assertEquals(false, sqlResult.getBoolean(8));
} finally {
sqlResult.close();
stmt.close();
connection.close();
}
}
use of org.pentaho.di.core.database.DatabaseMeta in project data-access by pentaho.
the class CsvTransformGeneratorIT method testDropExistingTable.
/**
* Given a name of an existing table to drop.
* <br/>
* When StagingTransformGenerator is called to drop this table,
* then it should execute drop statement.
*/
public void testDropExistingTable() throws Exception {
IPentahoSession session = new StandaloneSession("test");
KettleSystemListener.environmentInit(session);
DatabaseMeta dbMeta = getDatabaseMeta();
ModelInfo info = createModel();
CsvTransformGenerator gen = new CsvTransformGenerator(info, dbMeta);
String tableName = info.getStageTableName();
try {
gen.execSqlStatement(getDropTableStatement(tableName), dbMeta, null);
} catch (CsvTransformGeneratorException e) {
// it is OK if the table doesn't exist previously
}
gen.createOrModifyTable(session);
// check the results
long rowCount = this.getRowCount(tableName);
assertEquals((long) 0, rowCount);
// now make sure I can drop the table as well
gen.dropTable(tableName);
try {
this.getRowCount(tableName);
fail();
} catch (Exception e) {
// expect the table to not exist
}
}
use of org.pentaho.di.core.database.DatabaseMeta in project data-access by pentaho.
the class CsvTransformGeneratorIT method getRowCount.
private long getRowCount(String tableName) throws Exception {
DatabaseMeta databaseMeta = getDatabaseMeta();
assertNotNull(databaseMeta);
Database database = new Database(databaseMeta);
assertNotNull(database);
database.connect();
Connection connection = null;
Statement stmt = null;
ResultSet sqlResult = null;
try {
connection = database.getConnection();
assertNotNull(connection);
stmt = database.getConnection().createStatement();
boolean ok = stmt.execute("select count(*) from " + tableName);
assertTrue(ok);
sqlResult = stmt.getResultSet();
assertNotNull(sqlResult);
ok = sqlResult.next();
assertTrue(ok);
return sqlResult.getLong(1);
} finally {
if (sqlResult != null) {
sqlResult.close();
}
if (stmt != null) {
stmt.close();
}
if (connection != null) {
connection.close();
}
}
}
use of org.pentaho.di.core.database.DatabaseMeta in project data-access by pentaho.
the class AgileHelper method getDatabaseMeta.
public static DatabaseMeta getDatabaseMeta() {
// get the database settings from configuration
String jndi = getJndiName();
DatabaseMeta databaseMeta = new DatabaseMeta();
databaseMeta.setAccessType(DatabaseMeta.TYPE_ACCESS_JNDI);
databaseMeta.setDBName(jndi);
databaseMeta.setName(jndi);
String dialect = getDialect(databaseMeta);
databaseMeta.setDatabaseType(dialect);
databaseMeta.setQuoteAllFields(true);
return databaseMeta;
}
Aggregations