**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 (const auto * in_func = list->children[0]->as<ASTFunction>())
                {
                    if (in_func->name == "in")
                    {
                        
                        const auto & arg_list = in_func->arguments->as<ASTExpressionList &>();
                        if (arg_list.children.size() == 2)
                            expr_list_args->children = {arg_list.children[1], arg_list.children[0]};
                    }
                }
            }
        }
    }
    
    if (allow_function_parameters && pos->type == TokenType::OpeningRoundBracket)
    {
        ++pos;
        
        if (has_distinct_modifier)
            return false;
        expr_list_params = expr_list_args;
        expr_list_args = nullptr;
        if (distinct.ignore(pos, expected))
            has_distinct_modifier = true;
        if (!contents.parse(pos, expr_list_args, expected))
            return false;
        if (pos->type != TokenType::ClosingRoundBracket)
            return false;
        ++pos;
    }