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

if constexpr (std::is_same_v<RightDataType, DataTypeDateTime>)
                                tz = &right;
                        if constexpr (std::is_same_v<LeftDataType, DataTypeDateTime>)
                                tz = &left;
                        type_res = std::make_shared<ResultDataType>(*tz);
                    }
                    else
                        type_res = std::make_shared<ResultDataType>();
                    return true;
                }
           }
            return false;
        });
        if (!valid)
            throw Exception("Illegal types " + arguments[0]->getName() + " and " + arguments[1]->getName() + " of arguments of function " + getName(),
                ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
        return type_res;
    }
    bool executeFixedString(Block & block, const ColumnNumbers & arguments, size_t result) const
    {
        using OpImpl = FixedStringOperationImpl<Op<UInt8, UInt8>>;
        auto col_left_raw = block.getByPosition(arguments[0]).column.get();
        auto col_right_raw = block.getByPosition(arguments[1]).column.get();
        if (auto col_left_const = checkAndGetColumnConst<ColumnFixedString>(col_left_raw))
        {
            if (auto col_right_const = checkAndGetColumnConst<ColumnFixedString>(col_right_raw))
            {
                auto col_left = checkAndGetColumn<ColumnFixedString>(col_left_const->getDataColumn());
                auto col_right = checkAndGetColumn<ColumnFixedString>(col_right_const->getDataColumn());
                if (col_left->getN() != col_right->getN())