diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index 09511d9b4c..a6c339c95a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -921,12 +921,12 @@ abstract class AbstractField extends AbstractTypedNamed implements Field add(Field value) { - Field rhs = nullSafe(value, getDataType()); + Field rhs; - if (getDataType().isDateTime() && (rhs.getDataType().isNumeric() || rhs.getDataType().isInterval())) + if (getDataType().isDateTime() && ((rhs = nullSafe(value)).getDataType().isNumeric() || rhs.getDataType().isInterval())) return new Expression<>(ADD, false, this, rhs); else - return new Add(this, (Field) rhs); + return new Add(this, (Field) nullSafe(value, getDataType())); } @Override @@ -937,12 +937,12 @@ abstract class AbstractField extends AbstractTypedNamed implements Field sub(Field value) { - Field rhs = nullSafe(value, getDataType()); + Field rhs; - if (getDataType().isDateTime() && (rhs.getDataType().isNumeric() || rhs.getDataType().isInterval())) + if (getDataType().isDateTime() && ((rhs = nullSafe(value)).getDataType().isNumeric() || rhs.getDataType().isInterval())) return new Expression<>(SUBTRACT, false, this, rhs); else - return new Sub(this, (Field) rhs); + return new Sub(this, (Field) nullSafe(value, getDataType())); } @Override