/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/cockroachdb/gen/CockroachDBTruncateGenerator.java
43 строки
1 KB
Marcus Gartner
Remove interleaved tables and indexes for CockroachDB
13 авг 2021, 20:23
13 авг 2021, 20:23
78eaf96
Код
Авторство
О чём код?
package sqlancer.cockroachdb.gen; import sqlancer.Randomly; import sqlancer.cockroachdb.CockroachDBProvider.CockroachDBGlobalState; import sqlancer.common.query.ExpectedErrors; import sqlancer.common.query.SQLQueryAdapter; public final class CockroachDBTruncateGenerator { private CockroachDBTruncateGenerator() { } // https://www.cockroachlabs.com/docs/v19.2/truncate.html public static SQLQueryAdapter truncate(CockroachDBGlobalState globalState) { ExpectedErrors errors = new ExpectedErrors(); errors.add("is referenced by foreign key"); // https://github.com/cockroachdb/cockroach/issues/47030 errors.add("unexpected value: <nil>"); StringBuilder sb = new StringBuilder(); sb.append("TRUNCATE"); if (Randomly.getBoolean()) { sb.append(" TABLE"); } sb.append(" "); if (Randomly.getBooleanWithRatherLowProbability()) { for (int i = 0; i < Randomly.smallNumber() + 1; i++) { if (i != 0) { sb.append(", "); } sb.append(globalState.getSchema().getRandomTable(t -> !t.isView()).getName()); } } else { sb.append(globalState.getSchema().getRandomTable(t -> !t.isView()).getName()); } if (Randomly.getBoolean()) { sb.append(" "); sb.append(Randomly.fromOptions("CASCADE", "RESTRICT")); } return new SQLQueryAdapter(sb.toString(), errors); } }