**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).
if (pos.get().type != TokenType::ClosingRoundBracket)
            return false;
        ++pos;
    }
    auto function = std::make_shared<ASTFunctionWithKeyValueArguments>(left_bracket_found);
    function->name = Poco::toLower(identifier->as<ASTIdentifier>()->name());
    function->elements = expr_list_args;
    function->children.push_back(function->elements);
    node = function;
    return true;
}
bool ParserTTLElement::parseImpl(Pos & pos, ASTPtr & node, Expected & expected)
{
    ParserKeyword s_to_disk("TO DISK");
    ParserKeyword s_to_volume("TO VOLUME");
    ParserKeyword s_delete("DELETE");
    ParserKeyword s_where("WHERE");
    ParserKeyword s_group_by("GROUP BY");
    ParserKeyword s_set("SET");
    ParserKeyword s_recompress("RECOMPRESS");
    ParserKeyword s_codec("CODEC");
    ParserToken s_comma(TokenType::Comma);
    ParserToken s_eq(TokenType::Equals);
    ParserIdentifier parser_identifier;
    ParserStringLiteral parser_string_literal;
    ParserExpression parser_exp;
    ParserExpressionList parser_expression_list(false);
    ParserCodec parser_codec;
    ASTPtr ttl_expr;
    if (!parser_exp.parse(pos, ttl_expr, expected))