package sqlancer;
import java.util.List;
import sqlancer.common.log.LoggableFactory;
import sqlancer.common.log.SQLLoggableFactory;
import sqlancer.common.query.SQLQueryAdapter;
import sqlancer.common.schema.AbstractSchema;
import sqlancer.common.schema.AbstractTable;
public abstract class SQLProviderAdapter>, O extends DBMSSpecificOptions extends OracleFactory>>
extends ProviderAdapter {
public SQLProviderAdapter(Class globalClass, Class optionClass) {
super(globalClass, optionClass);
}
@Override
public LoggableFactory getLoggableFactory() {
return new SQLLoggableFactory();
}
@Override
protected void checkViewsAreValid(G globalState) {
List extends AbstractTable, ?, ?>> views = globalState.getSchema().getViews();
for (AbstractTable, ?, ?> view : views) {
SQLQueryAdapter q = new SQLQueryAdapter("SELECT 1 FROM " + view.getName() + " LIMIT 1");
try {
q.execute(globalState);
} catch (Throwable t) {
throw new IgnoreMeException();
}
}
}
}