/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/h2/H2QueryPartitioningWhereTester.java
42 строки
2 KB
Manuel Rigger
[H2] Extend the H2 implementation
20 авг 2020, 16:07
20 авг 2020, 16:07
f53a88e
Код
Авторство
О чём код?
package sqlancer.h2; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import sqlancer.ComparatorHelper; import sqlancer.Randomly; import sqlancer.h2.H2Provider.H2GlobalState; public class H2QueryPartitioningWhereTester extends H2QueryPartitioningBase { public H2QueryPartitioningWhereTester(H2GlobalState state) { super(state); } @Override public void check() throws SQLException { super.check(); select.setWhereClause(null); String originalQueryString = H2ToStringVisitor.asString(select); List<String> resultSet = ComparatorHelper.getResultSetFirstColumnAsString(originalQueryString, errors, state); boolean orderBy = Randomly.getBooleanWithRatherLowProbability(); if (orderBy) { select.setOrderByExpressions(gen.generateOrderBys()); } select.setWhereClause(predicate); String firstQueryString = H2ToStringVisitor.asString(select); select.setWhereClause(negatedPredicate); String secondQueryString = H2ToStringVisitor.asString(select); select.setWhereClause(isNullPredicate); String thirdQueryString = H2ToStringVisitor.asString(select); List<String> combinedString = new ArrayList<>(); List<String> secondResultSet = ComparatorHelper.getCombinedResultSet(firstQueryString, secondQueryString, thirdQueryString, combinedString, !orderBy, state, errors); ComparatorHelper.assumeResultSetsAreEqual(resultSet, secondResultSet, originalQueryString, combinedString, state); } }