**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).
{
    ASTFunction * function = dynamic_cast<ASTFunction *>(node.get());
    
    
    
    
    
    if (pos->type != TokenType::OpeningRoundBracket)
    {
        ASTPtr window_name_ast;
        ParserIdentifier window_name_parser;
        if (window_name_parser.parse(pos, window_name_ast, expected))
        {
            function->children.push_back(window_name_ast);
            function->window_name = window_name_ast;
            return true;
        }
        else
        {
            return false;
        }
    }
    ++pos;
    
    
    ParserKeyword keyword_partition_by("PARTITION BY");
    ParserNotEmptyExpressionList columns_partition_by(
        false );
    ParserKeyword keyword_order_by("ORDER BY");