/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/oceanbase/oracle/OceanBaseTLPBase.java
62 строки
2 KB
bashaojing
fix for format check and some comments
16 дек 2021, 14:49
16 дек 2021, 14:49
9b02f13
Код
Авторство
О чём код?
package sqlancer.oceanbase.oracle; import java.sql.SQLException; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import sqlancer.common.gen.ExpressionGenerator; import sqlancer.common.oracle.TernaryLogicPartitioningOracleBase; import sqlancer.common.oracle.TestOracle; import sqlancer.oceanbase.OceanBaseErrors; import sqlancer.oceanbase.OceanBaseGlobalState; import sqlancer.oceanbase.OceanBaseSchema; import sqlancer.oceanbase.OceanBaseSchema.OceanBaseTable; import sqlancer.oceanbase.OceanBaseSchema.OceanBaseTables; import sqlancer.oceanbase.ast.OceanBaseColumnReference; import sqlancer.oceanbase.ast.OceanBaseExpression; import sqlancer.oceanbase.ast.OceanBaseSelect; import sqlancer.oceanbase.ast.OceanBaseTableReference; import sqlancer.oceanbase.gen.OceanBaseExpressionGenerator; import sqlancer.oceanbase.gen.OceanBaseHintGenerator; public abstract class OceanBaseTLPBase extends TernaryLogicPartitioningOracleBase<OceanBaseExpression, OceanBaseGlobalState> implements TestOracle { OceanBaseSchema s; OceanBaseTables targetTables; OceanBaseExpressionGenerator gen; OceanBaseSelect select; public OceanBaseTLPBase(OceanBaseGlobalState state) { super(state); OceanBaseErrors.addExpressionErrors(errors); errors.add("value is out of range"); } @Override public void check() throws SQLException { s = state.getSchema(); targetTables = s.getRandomTableNonEmptyTables(); gen = new OceanBaseExpressionGenerator(state).setColumns(targetTables.getColumns()); initializeTernaryPredicateVariants(); select = new OceanBaseSelect(); select.setFetchColumns(generateFetchColumns()); List<OceanBaseTable> tables = targetTables.getTables(); OceanBaseHintGenerator.generateHints(select, tables); List<OceanBaseExpression> tableList = tables.stream().map(t -> new OceanBaseTableReference(t)) .collect(Collectors.toList()); select.setFromList(tableList); select.setWhereClause(null); } List<OceanBaseExpression> generateFetchColumns() { return Arrays.asList(OceanBaseColumnReference.create(targetTables.getColumns().get(0), null)); } @Override protected ExpressionGenerator<OceanBaseExpression> getGen() { return gen; } }