Search in sources :

Example 11 with DatabaseMeta

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);
}
Also used : ModelInfo(org.pentaho.platform.dataaccess.datasource.wizard.models.ModelInfo) StandaloneSession(org.pentaho.platform.engine.core.system.StandaloneSession) CsvTransformGeneratorException(org.pentaho.platform.dataaccess.datasource.wizard.models.CsvTransformGeneratorException) IPentahoSession(org.pentaho.platform.api.engine.IPentahoSession) DatabaseMeta(org.pentaho.di.core.database.DatabaseMeta)

Example 12 with DatabaseMeta

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();
    }
}
Also used : ModelInfo(org.pentaho.platform.dataaccess.datasource.wizard.models.ModelInfo) StandaloneSession(org.pentaho.platform.engine.core.system.StandaloneSession) CsvTransformGeneratorException(org.pentaho.platform.dataaccess.datasource.wizard.models.CsvTransformGeneratorException) IPentahoSession(org.pentaho.platform.api.engine.IPentahoSession) Statement(java.sql.Statement) Connection(java.sql.Connection) DatabaseMeta(org.pentaho.di.core.database.DatabaseMeta) Date(java.util.Date) Database(org.pentaho.di.core.database.Database) ResultSet(java.sql.ResultSet)

Example 13 with DatabaseMeta

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
    }
}
Also used : ModelInfo(org.pentaho.platform.dataaccess.datasource.wizard.models.ModelInfo) StandaloneSession(org.pentaho.platform.engine.core.system.StandaloneSession) CsvTransformGeneratorException(org.pentaho.platform.dataaccess.datasource.wizard.models.CsvTransformGeneratorException) IPentahoSession(org.pentaho.platform.api.engine.IPentahoSession) DatabaseMeta(org.pentaho.di.core.database.DatabaseMeta) CsvTransformGeneratorException(org.pentaho.platform.dataaccess.datasource.wizard.models.CsvTransformGeneratorException)

Example 14 with DatabaseMeta

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();
        }
    }
}
Also used : Statement(java.sql.Statement) Database(org.pentaho.di.core.database.Database) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) DatabaseMeta(org.pentaho.di.core.database.DatabaseMeta)

Example 15 with DatabaseMeta

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;
}
Also used : DatabaseMeta(org.pentaho.di.core.database.DatabaseMeta)

Aggregations

DatabaseMeta (org.pentaho.di.core.database.DatabaseMeta)522 Test (org.junit.Test)133 KettleException (org.pentaho.di.core.exception.KettleException)131 Database (org.pentaho.di.core.database.Database)88 MessageBox (org.eclipse.swt.widgets.MessageBox)66 ErrorDialog (org.pentaho.di.ui.core.dialog.ErrorDialog)63 TransMeta (org.pentaho.di.trans.TransMeta)57 StepMeta (org.pentaho.di.trans.step.StepMeta)54 ArrayList (java.util.ArrayList)53 KettleDatabaseException (org.pentaho.di.core.exception.KettleDatabaseException)48 RowMetaInterface (org.pentaho.di.core.row.RowMetaInterface)44 ValueMetaString (org.pentaho.di.core.row.value.ValueMetaString)42 SlaveServer (org.pentaho.di.cluster.SlaveServer)33 IMetaStore (org.pentaho.metastore.api.IMetaStore)30 ObjectId (org.pentaho.di.repository.ObjectId)29 DatabaseExplorerDialog (org.pentaho.di.ui.core.database.dialog.DatabaseExplorerDialog)29 JobMeta (org.pentaho.di.job.JobMeta)26 TransHopMeta (org.pentaho.di.trans.TransHopMeta)26 RowMetaAndData (org.pentaho.di.core.RowMetaAndData)24 PluginRegistry (org.pentaho.di.core.plugins.PluginRegistry)24