```
SET compile_expressions = 1
SELECT GREATEST(2,0)
```

NativeResultType scale_a, NativeResultType scale_b, bool check_overflow)
    {
        if (check_overflow)
            vectorConstant(a, b, c, scale_a, scale_b);
        else
            SelfNoOverflow::vectorConstant(a, b, c, scale_a, scale_b);
    }
    static void constantVector(A a, const ArrayB & b, ArrayC & c,
                               NativeResultType scale_a, NativeResultType scale_b, bool check_overflow)
    {
        if (check_overflow)
            constantVector(a, b, c, scale_a, scale_b);
        else
            SelfNoOverflow::constantVector(a, b, c, scale_a, scale_b);
    }
    static ResultType constantConstant(A a, B b, NativeResultType scale_a, NativeResultType scale_b, bool check_overflow)
    {
        if (check_overflow)
            return constantConstant(a, b, scale_a, scale_b);
        else
            return SelfNoOverflow::constantConstant(a, b, scale_a, scale_b);
    }
    static void NO_INLINE vectorVector(const ArrayA & a, const ArrayB & b, ArrayC & c,