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.
#include <TableFunctions/TableFunctionExecutable.h>
#include <Common/Exception.h>
#include <TableFunctions/TableFunctionFactory.h>
#include <TableFunctions/parseColumnsListForTableFunction.h>
#include <Parsers/ASTFunction.h>
#include <Parsers/ASTSelectWithUnionQuery.h>
#include <Storages/checkAndGetLiteralArgument.h>
#include <Storages/StorageExecutable.h>
#include <DataTypes/DataTypeFactory.h>
#include <Interpreters/evaluateConstantExpression.h>
#include <Interpreters/interpretSubquery.h>
#include <boost/algorithm/string.hpp>
#include "registerTableFunctions.h"
namespace DB
{
namespace ErrorCodes
{
    extern const int LOGICAL_ERROR;
    extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH;
    extern const int UNSUPPORTED_METHOD;
}
void TableFunctionExecutable::parseArguments(const ASTPtr & ast_function, ContextPtr context)