**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).
}
            else
            {
                return false;
            }
        }
    }
    
    if (top_length)
        limit_length = top_length;
    
    if (s_limit.ignore(pos, expected))
    {
        if (!limit_by_length || limit_length)
            return false;
        ParserToken s_comma(TokenType::Comma);
        if (!exp_elem.parse(pos, limit_length, expected))
            return false;
        if (s_comma.ignore(pos, expected))
        {
            limit_offset = limit_length;
            if (!exp_elem.parse(pos, limit_length, expected))
                return false;
        }
        else if (s_offset.ignore(pos, expected))
        {
            if (!exp_elem.parse(pos, limit_offset, expected))
                return false;
        }
        if (s_with_ties.ignore(pos, expected))