**Use case**
For #15112

**Describe the solution you'd like**

SELECT ALL is identical to SELECT without DISTINCT.

If ALL is specified - ignore it.
If both ALL and DISTINCT are specified - syntax error or exception.

ALL can also be specified inside aggregate function:

SELECT sum(ALL x)

with the same effect (noop).
ASTPtr expr_list_args;
        if (pos->type == TokenType::OpeningRoundBracket)
        {
            ++pos;
            if (!ParserExpressionList(false).parse(pos, expr_list_args, expected))
                return false;
            if (pos->type != TokenType::ClosingRoundBracket)
                return false;
            ++pos;
        }
        String column_name_prefix;
        if (with_open_round_bracket && pos->type == TokenType::Comma)
        {
            ++pos;
            ParserStringLiteral parser_string_literal;
            ASTPtr ast_prefix_name;
            if (!parser_string_literal.parse(pos, ast_prefix_name, expected))
                return false;
            column_name_prefix = ast_prefix_name->as<ASTLiteral &>().value.get<const String &>();
        }
        if (with_open_round_bracket)
        {
            if (pos->type != TokenType::ClosingRoundBracket)
                return false;
            ++pos;
        }
        auto res = std::make_shared<ASTColumnsApplyTransformer>();
        res->func_name = getIdentifierName(func_name);
        res->parameters = expr_list_args;
        res->column_name_prefix = column_name_prefix;