**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).
ParserOrderByExpressionList columns_order_by;
    if (keyword_partition_by.ignore(pos, expected))
    {
        ASTPtr partition_by_ast;
        if (columns_partition_by.parse(pos, partition_by_ast, expected))
        {
            function->children.push_back(partition_by_ast);
            function->window_partition_by = partition_by_ast;
        }
        else
        {
            return false;
        }
    }
    if (keyword_order_by.ignore(pos, expected))
    {
        ASTPtr order_by_ast;
        if (columns_order_by.parse(pos, order_by_ast, expected))
        {
            function->children.push_back(order_by_ast);
            function->window_order_by = order_by_ast;
        }
        else
        {
            return false;
        }
    }
    if (pos->type != TokenType::ClosingRoundBracket)
    {
        expected.add(pos, "')'");