Executable settings like `max_command_execution_time` or `command_termination_timeout` cannot be set for `executable()` table function at all. Which means that the hardcoded values will be used.
I suggest to add it to executable function definition.
The simplest way is:
```
SELECT * FROM executable('<script name>', '<format>', (SET max_command_execution_time=100), (SELECT * FROM table))
```
As executable constructor already parses input `SELECT` statements anyway, adding `SET` statement there seems pretty logical.
Ideas? Any other better API?
I can implement that one.
else
        {
            
            const char ** it;
            Expected stub;
            for (it = overlapping_operators_to_skip; *it; ++it)
                if (ParserKeyword{*it}.checkWithoutMoving(pos, stub))
                    break;
            if (*it)
                break;
            for (it = operators; *it; it += 2)
                if (parseOperator(pos, *it, expected))
                    break;
            if (!*it)
                break;
            
            auto function = std::make_shared<ASTFunction>();
            
            auto exp_list = std::make_shared<ASTExpressionList>();
            ASTPtr elem;
            SubqueryFunctionType subquery_function_type = SubqueryFunctionType::NONE;
            if (comparison_expression)
            {
                if (ParserKeyword("ANY").ignore(pos, expected))
                    subquery_function_type = SubqueryFunctionType::ANY;
                else if (ParserKeyword("ALL").ignore(pos, expected))
                    subquery_function_type = SubqueryFunctionType::ALL;
            }
            if (subquery_function_type != SubqueryFunctionType::NONE && !ParserSubquery().parse(pos, elem, expected))
                subquery_function_type = SubqueryFunctionType::NONE;