**Describe what's wrong**
Request with `DISTINCT`+`LIMIT BY`+`LIMIT` return less rows than provided in `LIMIT`

**Does it reproduce on recent release?**
22.11

**How to reproduce**
The following query from hits table returns less number of rows then provided in LIMIT
```
SELECT DISTINCT
    Title,
    SearchPhrase
FROM hits_v1
WHERE (SearchPhrase != '') AND (NOT match(Title, '[а-яА-ЯёЁ]')) AND (NOT match(SearchPhrase, '[а-яА-ЯёЁ]'))
LIMIT 1 BY
    Title,
    SearchPhrase
LIMIT 10
````
**Expected behavior**
Query returns number of rows provided in `LIMIT`

&& !query_analyzer->hasAggregation()
        && !query_analyzer->hasWindow()
        && query.limitLength()
        && limit_length <= std::numeric_limits<UInt64>::max() - limit_offset)
    {
        if (limit_length + limit_offset < max_block_size)
        {
            max_block_size = std::max<UInt64>(1, limit_length + limit_offset);
            max_threads_execute_query = max_streams = 1;
        }
        if (limit_length + limit_offset < local_limits.local_limits.size_limits.max_rows)
        {
            query_info.limit = limit_length + limit_offset;
        }
    }
    if (!max_block_size)
        throw Exception("Setting 'max_block_size' cannot be zero", ErrorCodes::PARAMETER_OUT_OF_BOUND);
    storage_limits.emplace_back(local_limits);
    
    if (query_plan.isInitialized())
    {
        
    }
    else if (interpreter_subquery)
    {
        
        ASTPtr subquery = extractTableExpression(query, 0);
        if (!subquery)
            throw Exception("Subquery expected", ErrorCodes::LOGICAL_ERROR);
        interpreter_subquery = std::make_unique<InterpreterSelectWithUnionQuery>(