/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/common/schema/AbstractRelationalTable.java
37 строк
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.common.schema; import java.util.List; import sqlancer.IgnoreMeException; import sqlancer.SQLGlobalState; import sqlancer.common.query.SQLQueryAdapter; import sqlancer.common.query.SQLancerResultSet; public class AbstractRelationalTable<C extends AbstractTableColumn<?, ?>, I extends TableIndex, G extends SQLGlobalState<?, ?>> extends AbstractTable<C, I, G> { public AbstractRelationalTable(String name, List<C> columns, List<I> indexes, boolean isView) { super(name, columns, indexes, isView); } @Override public long getNrRows(G globalState) { if (rowCount == NO_ROW_COUNT_AVAILABLE) { SQLQueryAdapter q = new SQLQueryAdapter("SELECT COUNT(*) FROM " + name); try (SQLancerResultSet query = q.executeAndGet(globalState)) { if (query == null) { throw new IgnoreMeException(); } query.next(); rowCount = query.getLong(1); return rowCount; } catch (Throwable t) { // an exception might be expected, for example, when invalid view is created throw new IgnoreMeException(); } } else { return rowCount; } } }