/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/postgres/gen/PostgresTruncateGenerator.java
40 строк
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.postgres.gen; import java.util.stream.Collectors; import sqlancer.Randomly; import sqlancer.common.query.ExpectedErrors; import sqlancer.common.query.SQLQueryAdapter; import sqlancer.postgres.PostgresGlobalState; public final class PostgresTruncateGenerator { private PostgresTruncateGenerator() { } public static SQLQueryAdapter create(PostgresGlobalState globalState) { StringBuilder sb = new StringBuilder(); sb.append("TRUNCATE"); if (Randomly.getBoolean()) { sb.append(" TABLE"); } // TODO partitions // if (Randomly.getBoolean()) { // sb.append(" ONLY"); // } sb.append(" "); sb.append(globalState.getSchema().getDatabaseTablesRandomSubsetNotEmpty().stream().map(t -> t.getName()) .collect(Collectors.joining(", "))); if (Randomly.getBoolean()) { sb.append(" "); sb.append(Randomly.fromOptions("RESTART IDENTITY", "CONTINUE IDENTITY")); } if (Randomly.getBoolean()) { sb.append(" "); sb.append(Randomly.fromOptions("CASCADE", "RESTRICT")); } return new SQLQueryAdapter(sb.toString(), ExpectedErrors .from("cannot truncate a table referenced in a foreign key constraint", "is not a table")); } }