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

{
        if constexpr (OverBigInt<T> || OverBigInt<U>)
        {
            if constexpr (IsDecimalNumber<T>)
                return applyScaledDiv(a.value, b, scale);
            else if constexpr (IsDecimalNumber<U>)
                return applyScaledDiv(a, b.value, scale);
            else if constexpr (std::is_same_v<T, UInt8>)
                return applyScaledDiv(UInt16(a), b, scale);
            else if constexpr (std::is_same_v<U, UInt8>)
                return applyScaledDiv(a, UInt16(b), scale);
            else
                return applyNativeScaledDiv(static_cast<NativeResultType>(a), static_cast<NativeResultType>(b), scale);
        }
        else
            return applyNativeScaledDiv(a, b, scale);
    }
    
    static NativeResultType applyNative(NativeResultType a, NativeResultType b)