/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/mysql/gen/tblmaintenance/MySQLCheckTable.java
46 строк
1 KB
Manuel Rigger
Fix JavaDoc issues
21 янв 2021, 01:47
21 янв 2021, 01:47
e118824
Код
Авторство
О чём код?
package sqlancer.mysql.gen.tblmaintenance; import java.util.List; import java.util.stream.Collectors; import sqlancer.Randomly; import sqlancer.common.query.SQLQueryAdapter; import sqlancer.mysql.MySQLGlobalState; import sqlancer.mysql.MySQLSchema.MySQLTable; /** * @see <a href="https://dev.mysql.com/doc/refman/8.0/en/check-table.html">CHECK TABLE Statement</a> */ public class MySQLCheckTable { private final List<MySQLTable> tables; private final StringBuilder sb = new StringBuilder(); public MySQLCheckTable(List<MySQLTable> tables) { this.tables = tables; } public static SQLQueryAdapter check(MySQLGlobalState globalState) { return new MySQLCheckTable(globalState.getSchema().getDatabaseTablesRandomSubsetNotEmpty()).generate(); } // CHECK TABLE tbl_name [, tbl_name] ... [option] ... // // option: { // FOR UPGRADE // | QUICK // | FAST // | MEDIUM // | EXTENDED // | CHANGED // } private SQLQueryAdapter generate() { sb.append("CHECK TABLE "); sb.append(tables.stream().map(t -> t.getName()).collect(Collectors.joining(", "))); sb.append(" "); List<String> options = Randomly.subset("FOR UPGRADE", "QUICK", "FAST", "MEDIUM", "EXTENDED", "CHANGED"); sb.append(options.stream().collect(Collectors.joining(" "))); return new SQLQueryAdapter(sb.toString()); } }