/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/oceanbase/ast/OceanBaseInOperation.java
56 строк
2 KB
bashaojing
fix for format check and some comments
16 дек 2021, 14:49
16 дек 2021, 14:49
9b02f13
Код
Авторство
О чём код?
package sqlancer.oceanbase.ast; import java.util.List; public class OceanBaseInOperation implements OceanBaseExpression { private final OceanBaseExpression expr; private final List<OceanBaseExpression> listElements; private final boolean isTrue; public OceanBaseInOperation(OceanBaseExpression expr, List<OceanBaseExpression> listElements, boolean isTrue) { this.expr = expr; this.listElements = listElements; this.isTrue = isTrue; } public OceanBaseExpression getExpr() { return expr; } public List<OceanBaseExpression> getListElements() { return listElements; } @Override public OceanBaseConstant getExpectedValue() { OceanBaseConstant leftVal = expr.getExpectedValue(); if (leftVal.isNull()) { return OceanBaseConstant.createNullConstant(); } boolean isNull = false; for (OceanBaseExpression rightExpr : listElements) { OceanBaseConstant rightVal = rightExpr.getExpectedValue(); OceanBaseConstant convertedRightVal = rightVal; OceanBaseConstant isEquals = leftVal.isEquals(convertedRightVal); if (isEquals.isNull()) { isNull = true; } else { if (isEquals.getInt() == 1) { return OceanBaseConstant.createBoolean(isTrue); } } } if (isNull) { return OceanBaseConstant.createNullConstant(); } else { return OceanBaseConstant.createBoolean(!isTrue); } } public boolean isTrue() { return isTrue; } }