-
Notifications
You must be signed in to change notification settings - Fork 397
Expand file tree
/
Copy pathSQLProviderAdapter.java
More file actions
34 lines (29 loc) · 1.18 KB
/
SQLProviderAdapter.java
File metadata and controls
34 lines (29 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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<G extends SQLGlobalState<O, ? extends AbstractSchema<G, ?>>, O extends DBMSSpecificOptions<? extends OracleFactory<G>>>
extends ProviderAdapter<G, O, SQLConnection> {
public SQLProviderAdapter(Class<G> globalClass, Class<O> 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();
}
}
}
}