**Describe the bug**
https://clickhouse-test-reports.s3.yandex.net/18723/5f962015caf6e48f3ec5ea115a8f424e88741c8b/fuzzer/report.html#fail1

**How to reproduce**
`SELECT tupleHammingDistance((65537, 256), (1025, NULL))`

constantVector(UInt64 a1, UInt64 b1, const PaddedPODArray<B> & a2, const PaddedPODArray<B> & b2, PaddedPODArray<ResultType> & c)
    {
        size_t size = a2.size();
        for (size_t i = 0; i < size; ++i)
            c[i] = apply(a1, a2[i]) + apply(b1, b2[i]);
    }
    static ResultType constantConstant(UInt64 a1, UInt64 b1, UInt64 a2, UInt64 b2) { return apply(a1, a2) + apply(b1, b2); }
private:
    static inline UInt8 apply(UInt64 a, UInt64 b) { return a != b; }
};
template <typename F>
bool castType(const IDataType * type, F && f)
{
    return castTypeToEither<
        DataTypeInt8,
        DataTypeInt16,
        DataTypeInt32,
        DataTypeInt64,
        DataTypeUInt8,
        DataTypeUInt16,
        DataTypeUInt32,
        DataTypeUInt64>(type, std::forward<F>(f));
}
template <typename F>
static bool castBothTypes(const IDataType * left, const IDataType * right, F && f)
{
    return castType(left, [&](const auto & left_) { return castType(right, [&](const auto & right_) { return f(left_, right_); }); });
}
class FunctionTupleHammingDistance : public IFunction