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

{
                        OpImpl::vectorVector(col_left->getData(), col_right->getData(), vec_res, scale_a, scale_b,
                                              check_decimal_overflow);
                    }
                    else if (auto col_right_const = checkAndGetColumnConst<ColVecT1>(col_right_raw))
                    {
                        OpImpl::vectorConstant(col_left->getData(), col_right_const->template getValue<T1>(), vec_res,
                                                scale_a, scale_b, check_decimal_overflow);
                    }
                    else
                        return false;
                }
                else
                {
                    if (auto col_right = checkAndGetColumn<ColVecT1>(col_right_raw))
                        OpImpl::vectorVector(col_left->getData().data(), col_right->getData().data(), vec_res.data(), vec_res.size());
                    else if (auto col_right_const = checkAndGetColumnConst<ColVecT1>(col_right_raw))
                        OpImpl::vectorConstant(col_left->getData().data(), col_right_const->template getValue<T1>(), vec_res.data(), vec_res.size());
                    else
                        return false;
                }
            }
            else
                return false;
            block.getByPosition(result).column = std::move(col_res);
            return true;
        }
        return false;
    }
    void executeImpl(Block & block, const ColumnNumbers & arguments, size_t result, size_t input_rows_count) const override