/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/mariadb/gen/MariaDBInsertGenerator.java
39 строк
1 KB
Patrick
Continuation of Reworking Connection to DB to support non-SQL connections
26 ноя 2020, 15:40
26 ноя 2020, 15:40
62e302e
Код
Авторство
О чём код?
package sqlancer.mariadb.gen; import sqlancer.Randomly; import sqlancer.common.query.ExpectedErrors; import sqlancer.common.query.SQLQueryAdapter; import sqlancer.mariadb.MariaDBErrors; import sqlancer.mariadb.MariaDBSchema; import sqlancer.mariadb.MariaDBSchema.MariaDBTable; import sqlancer.mariadb.ast.MariaDBVisitor; public final class MariaDBInsertGenerator { private MariaDBInsertGenerator() { } public static SQLQueryAdapter insert(MariaDBSchema s, Randomly r) { MariaDBTable randomTable = s.getRandomTable(); StringBuilder sb = new StringBuilder(); sb.append("INSERT INTO "); sb.append(randomTable.getName()); sb.append(" VALUES ("); for (int i = 0; i < randomTable.getColumns().size(); i++) { if (i != 0) { sb.append(", "); } if (Randomly.getBooleanWithSmallProbability()) { sb.append(MariaDBVisitor.asString(MariaDBExpressionGenerator.getRandomConstant(r))); } else { sb.append(MariaDBVisitor.asString( MariaDBExpressionGenerator.getRandomConstant(r, randomTable.getColumns().get(i).getType()))); } } sb.append(")"); ExpectedErrors errors = new ExpectedErrors(); MariaDBErrors.addInsertErrors(errors); return new SQLQueryAdapter(sb.toString(), errors); } }