/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/postgres/ast/PostgresLikeOperation.java
38 строк
1 KB
Manuel Rigger
[Postgres] Let getExpectedValue() return null when no PQS implementation is available
25 авг 2020, 14:08
25 авг 2020, 14:08
205b394
Код
Авторство
О чём код?
package sqlancer.postgres.ast; import sqlancer.LikeImplementationHelper; import sqlancer.common.ast.BinaryNode; import sqlancer.postgres.PostgresSchema.PostgresDataType; public class PostgresLikeOperation extends BinaryNode<PostgresExpression> implements PostgresExpression { public PostgresLikeOperation(PostgresExpression left, PostgresExpression right) { super(left, right); } @Override public PostgresDataType getExpressionType() { return PostgresDataType.BOOLEAN; } @Override public PostgresConstant getExpectedValue() { PostgresConstant leftVal = getLeft().getExpectedValue(); PostgresConstant rightVal = getRight().getExpectedValue(); if (leftVal == null || rightVal == null) { return null; } if (leftVal.isNull() || rightVal.isNull()) { return PostgresConstant.createNullConstant(); } else { boolean val = LikeImplementationHelper.match(leftVal.asString(), rightVal.asString(), 0, 0, true); return PostgresConstant.createBooleanConstant(val); } } @Override public String getOperatorRepresentation() { return "LIKE"; } }