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

if (auto col_left_const = checkAndGetColumnConst<ColVecT0>(col_left_raw))
            {
                if (auto col_right = checkAndGetColumn<ColVecT1>(col_right_raw))
                {
                    if constexpr (result_is_decimal)
                    {
                        ResultDataType type = decimalResultType(left, right, is_multiply, is_division);
                        typename ResultDataType::FieldType scale_a = type.scaleFactorFor(left, is_multiply);
                        typename ResultDataType::FieldType scale_b = type.scaleFactorFor(right, is_multiply || is_division);
                        if constexpr (IsDataTypeDecimal<RightDataType> && is_division)
                            scale_a = right.getScaleMultiplier();
                        OpImpl::constantVector(col_left_const->template getValue<T0>(), col_right->getData(), vec_res,
                                                scale_a, scale_b, check_decimal_overflow);
                    }
                    else
                        OpImpl::constantVector(col_left_const->template getValue<T0>(), col_right->getData().data(), vec_res.data(), vec_res.size());
                }
                else
                    return false;
            }
            else if (auto col_left = checkAndGetColumn<ColVecT0>(col_left_raw))
            {
                if constexpr (result_is_decimal)
                {
                    ResultDataType type = decimalResultType(left, right, is_multiply, is_division);
                    typename ResultDataType::FieldType scale_a = type.scaleFactorFor(left, is_multiply);
                    typename ResultDataType::FieldType scale_b = type.scaleFactorFor(right, is_multiply || is_division);
                    if constexpr (IsDataTypeDecimal<RightDataType> && is_division)
                        scale_a = right.getScaleMultiplier();
                    if (auto col_right = checkAndGetColumn<ColVecT1>(col_right_raw))