
org.etlunit.feature.hsqldb_database.HSQLDBDatabaseImplementation Maven / Gradle / Ivy
The newest version!
package org.etlunit.feature.hsqldb_database;
import org.etlunit.TestExecutionError;
import org.etlunit.feature.database.BaseDatabaseImplemenation;
import org.etlunit.feature.database.DatabaseConnection;
import org.etlunit.feature.database.DatabaseImplementation;
import org.etlunit.feature.database.RelationalDataSet;
import org.etlunit.parser.ETLTestValueObject;
import org.hsqldb.jdbc.JDBCDriver;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
public class HSQLDBDatabaseImplementation extends BaseDatabaseImplemenation
{
public data_format getDataFormatForExtract(ETLTestValueObject operands)
{
return null;
}
public database_state getDatabaseState(DatabaseConnection databaseConnection, String s)
{
return database_state.fail;
}
public String getImplementationId()
{
return "hsqldb";
}
public Object processOperation(operation op, OperationRequest request) throws UnsupportedOperationException
{
switch (op)
{
case executeSql:
break;
case createDatabase:
break;
case completeDatabaseInitialization:
break;
case prepareDatabase:
PrepareRequest prepReq = request.getPrepareRequest();
try
{
Connection conn = getConnection(prepReq.getConnection(), prepReq.getMode());
// get a list of all tables to clear
Statement st = conn.createStatement();
Statement trunc_st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA != 'SYSTEM_LOBS'");
while (rs.next())
{
// batch a truncate
trunc_st.addBatch("TRUNCATE TABLE " + rs.getString(1) + "." + rs.getString(2));
}
trunc_st.executeBatch();
}
catch (Exception e)
{
throw new RuntimeException("Error preparing database", e);
}
break;
}
return null;
}
@Override
protected String getJdbcUrl(DatabaseConnection dc, String mode, int id)
{
return "jdbc:hsqldb:mem:/" + dc.getId() + "/" + mode + ";shutdown=true";
}
@Override
protected Class getJdbcDriverClass()
{
return JDBCDriver.class;
}
public String getDefaultSchema(DatabaseConnection databaseConnection, String mode)
{
return "PUBLIC";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy