/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/postgres/oracle/tlp/PostgresTLPWhereOracle.java
45 строк
2 KB
nukoyluoglu
Create Citus oracle classes
11 авг 2020, 10:58
11 авг 2020, 10:58
bcec992
Код
Авторство
О чём код?
package sqlancer.postgres.oracle.tlp; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import sqlancer.ComparatorHelper; import sqlancer.Randomly; import sqlancer.postgres.PostgresGlobalState; import sqlancer.postgres.PostgresVisitor; public class PostgresTLPWhereOracle extends PostgresTLPBase { public PostgresTLPWhereOracle(PostgresGlobalState state) { super(state); } @Override public void check() throws SQLException { super.check(); whereCheck(); } protected void whereCheck() throws SQLException { if (Randomly.getBooleanWithRatherLowProbability()) { select.setOrderByExpressions(gen.generateOrderBy()); } String originalQueryString = PostgresVisitor.asString(select); List<String> resultSet = ComparatorHelper.getResultSetFirstColumnAsString(originalQueryString, errors, state); select.setOrderByExpressions(Collections.emptyList()); select.setWhereClause(predicate); String firstQueryString = PostgresVisitor.asString(select); select.setWhereClause(negatedPredicate); String secondQueryString = PostgresVisitor.asString(select); select.setWhereClause(isNullPredicate); String thirdQueryString = PostgresVisitor.asString(select); List<String> combinedString = new ArrayList<>(); List<String> secondResultSet = ComparatorHelper.getCombinedResultSet(firstQueryString, secondQueryString, thirdQueryString, combinedString, Randomly.getBoolean(), state, errors); ComparatorHelper.assumeResultSetsAreEqual(resultSet, secondResultSet, originalQueryString, combinedString, state); } }