/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/arangodb/query/ArangoDBCreateIndexQuery.java
54 строки
2 KB
Patrick
Support adding indexes when inserting data for ArangoDB
23 мар 2021, 01:03
23 мар 2021, 01:03
acf3d34
Код
Авторство
О чём код?
package sqlancer.arangodb.query; import java.util.Collections; import com.arangodb.ArangoCollection; import sqlancer.GlobalState; import sqlancer.Main; import sqlancer.arangodb.ArangoDBConnection; import sqlancer.arangodb.ArangoDBQueryAdapter; import sqlancer.arangodb.ArangoDBSchema; import sqlancer.common.query.ExpectedErrors; public class ArangoDBCreateIndexQuery extends ArangoDBQueryAdapter { private final ArangoDBSchema.ArangoDBColumn column; public ArangoDBCreateIndexQuery(ArangoDBSchema.ArangoDBColumn column) { this.column = column; } @Override public boolean couldAffectSchema() { return false; } @Override public <G extends GlobalState<?, ?, ArangoDBConnection>> boolean execute(G globalState, String... fills) throws Exception { try { ArangoCollection collection = globalState.getConnection().getDatabase() .collection(column.getTable().getName()); collection.ensureHashIndex(Collections.singletonList(column.getName()), null); Main.nrSuccessfulActions.addAndGet(1); return true; } catch (Exception e) { Main.nrUnsuccessfulActions.addAndGet(1); throw e; } } @Override public ExpectedErrors getExpectedErrors() { return new ExpectedErrors(); } @Override public String getLogString() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("db.").append(column.getTable().getName()) .append(".ensureIndex({type: \"hash\", fields: [ \"").append(column.getName()).append("\" ]});"); return stringBuilder.toString(); } }