### Elasticsearch Version

8.1.0-SNAPSHOT (but also affects 7.x releases)

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

OSX

### Problem Description

While the docs state that `RANDOM(null) = null` that's not always the case.

### Steps to Reproduce

```
GET _sql?format=txt
{
  "query": """
  SELECT random(n), n FROM longs
  """
}
```

yields 

```
    random(n)     |       n       
------------------+---------------
0.7308781907032909|1              
0.7311469360199058|2              
0.3860252809814635|null           
```

Expected would be `null` for the last row.

### Logs (if relevant)

_No response_
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/expression/function/scalar/math/MathProcessor.java
}
            lo = lo < 0 ? -lo : lo;
            if (l instanceof Integer) {
                if ((int) lo == Integer.MIN_VALUE) {
                    throw new QlIllegalArgumentException("[" + lo + "] cannot be negated since the result is outside the range");
                }
                return DataTypeConverter.safeToInt(lo);
            }
            if (l instanceof Short) {
                return DataTypeConverter.safeToShort(lo);
            }
            if (l instanceof Byte) {
                return DataTypeConverter.safeToByte(lo);
            }
            return lo;
        }),
        ACOS(Math::acos),
        ASIN(Math::asin),
        ATAN(Math::atan),
        CBRT(Math::cbrt),
        CEIL(Math::ceil),
        COS(Math::cos),
        COSH(Math::cosh),
        COT((Object l) -> 1.0d / Math.tan(((Number) l).doubleValue())),
        DEGREES(Math::toDegrees),
        E(() -> Math.E),
        EXP(Math::exp),
        EXPM1(Math::expm1),
        FLOOR(Math::floor),
        LOG(Math::log),