diff --git a/src/Expressions/UnaryExpression.php b/src/Expressions/UnaryExpression.php index 9fb57e4..c7b89e0 100644 --- a/src/Expressions/UnaryExpression.php +++ b/src/Expressions/UnaryExpression.php @@ -30,9 +30,18 @@ public function evaluateImpl(row $row, AsyncMysqlConnection $conn): mixed { invariant($op is nonnull, 'This case was not considered. The operator is null.'); switch ($op) { case Operator::UNARY_MINUS: - return -1 * (float)$val; + // Keeping this cast around for backwards compat + if (!($val is num)) { + $val = (float)$val; + } + return -1 * $val; case Operator::UNARY_PLUS: - return (float)$val; + // Keeping this cast around for backwards compat + if (!($val is num)) { + $val = (float)$val; + } + return $val; + case Operator::TILDE: case Operator::TILDE: return ~(int)$val; default: