```sql
SELECT groupArray(tuple(value)) OVER ()
FROM (select number value from numbers(10))
ORDER BY value ASC;

Received exception from server (version 22.7.1):
Code: 10. DB::Exception: Received from localhost:9000. 
DB::Exception: Not found column value in block. 
There are only columns: groupArray(tuple(value)) OVER (), tuple(value). (NOT_FOUND_COLUMN_IN_BLOCK)
```

without tuple is OK
```sql
SELECT groupArray(value) OVER ()
FROM (select number value from numbers(10))
ORDER BY value ASC;
┌─groupArray(value) OVER ()─┐
│ [0,1,2,3,4,5,6,7,8,9]     │
│ [0,1,2,3,4,5,6,7,8,9]     │
│ [0,1,2,3,4,5,6,7,8,9]     │
│ [0,1,2,3,4,5,6,7,8,9]     │
│ [0,1,2,3,4,5,6,7,8,9]     │
│ [0,1,2,3,4,5,6,7,8,9]     │
│ [0,1,2,3,4,5,6,7,8,9]     │
│ [0,1,2,3,4,5,6,7,8,9]     │
│ [0,1,2,3,4,5,6,7,8,9]     │
│ [0,1,2,3,4,5,6,7,8,9]     │
└───────────────────────────┘
```

```sql
SELECT value, groupArray(tuple(value)) OVER ()
FROM (select number value from numbers(10))
ORDER BY value ASC;
┌─value─┬─groupArray(tuple(value)) OVER ()──────────┐
│     0 │ [(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)] │
│     1 │ [(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)] │
│     2 │ [(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)] │
│     3 │ [(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)] │
│     4 │ [(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)] │
│     5 │ [(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)] │
│     6 │ [(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)] │
│     7 │ [(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)] │
│     8 │ [(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)] │
│     9 │ [(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)] │
└───────┴───────────────────────────────────────────┘
```
{
    ASTPtr expression_list = analyzed_join.rightKeysList();
    auto syntax_result = TreeRewriter(context).analyze(expression_list, analyzed_join.columnsFromJoinedTable());
    return ExpressionAnalyzer(expression_list, syntax_result, context).getActionsDAG(true, false);
}
std::shared_ptr<DirectKeyValueJoin> tryKeyValueJoin(std::shared_ptr<TableJoin> analyzed_join, const Block & right_sample_block);
static std::shared_ptr<IJoin> chooseJoinAlgorithm(std::shared_ptr<TableJoin> analyzed_join, std::unique_ptr<QueryPlan> & joined_plan, ContextPtr context)
{
    Block right_sample_block = joined_plan->getCurrentDataStream().header;
    if (analyzed_join->isEnabledAlgorithm(JoinAlgorithm::DIRECT))
    {
        JoinPtr direct_join = tryKeyValueJoin(analyzed_join, right_sample_block);
        if (direct_join)
        {