/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/arangodb/gen/ArangoDBTableGenerator.java
44 строки
2 KB
Patrick
Introduce ArangoDB to SQLancer and support creating collection and inserting data
23 мар 2021, 01:03
23 мар 2021, 01:03
dfae8af
Код
Авторство
О чём код?
package sqlancer.arangodb.gen; import java.util.ArrayList; import java.util.List; import sqlancer.Randomly; import sqlancer.arangodb.ArangoDBProvider; import sqlancer.arangodb.ArangoDBQueryAdapter; import sqlancer.arangodb.ArangoDBSchema; import sqlancer.arangodb.query.ArangoDBCreateTableQuery; public class ArangoDBTableGenerator { private ArangoDBSchema.ArangoDBTable table; private final List<ArangoDBSchema.ArangoDBColumn> columnsToBeAdded = new ArrayList<>(); public ArangoDBQueryAdapter getQuery(ArangoDBProvider.ArangoDBGlobalState globalState) { String tableName = globalState.getSchema().getFreeTableName(); ArangoDBCreateTableQuery createTableQuery = new ArangoDBCreateTableQuery(tableName); table = new ArangoDBSchema.ArangoDBTable(tableName, columnsToBeAdded, false); for (int i = 0; i < Randomly.smallNumber() + 1; i++) { String columnName = String.format("c%d", i); createColumn(columnName); } globalState.addTable(table); return createTableQuery; } private ArangoDBSchema.ArangoDBDataType createColumn(String columnName) { ArangoDBSchema.ArangoDBDataType dataType = ArangoDBSchema.ArangoDBDataType.getRandom(); ArangoDBSchema.ArangoDBColumn newColumn = new ArangoDBSchema.ArangoDBColumn(columnName, dataType, false, false); newColumn.setTable(table); columnsToBeAdded.add(newColumn); return dataType; } public String getTableName() { return table.getName(); } public ArangoDBSchema.ArangoDBTable getGeneratedTable() { return table; } }