```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)] │
└───────┴───────────────────────────────────────────┘
```
* 2) the disambiguation mechanism in SyntaxAnalyzer, that, among
             *    other things, creates unique aliases for columns with same
             *    names from different tables, is applied before these temporary
             *    columns are created by ExpressionAnalyzer.
             * Similar problems should also manifest for function columns, which
             * are likewise created at a later stage by EA.
             * In general, we need to have explicit separation between display
             * names and identifiers for columns. This code is a workaround for
             * a particular subclass of problems, and not a proper solution.
             */
            if (const auto * as_literal = ast->as<ASTLiteral>())
            {
                source_name = as_literal->unique_column_name;
                assert(!source_name.empty());
            }
            result_columns.emplace_back(source_name, result_name);
            step.addRequiredOutput(result_columns.back().second);
        }
    }
    auto actions = chain.getLastActions();
    actions->project(result_columns);
    return actions;
}
void ExpressionAnalyzer::appendExpression(ExpressionActionsChain & chain, const ASTPtr & expr, bool only_types)
{
    ExpressionActionsChain::Step & step = chain.lastStep(sourceColumns());
    getRootActions(expr, only_types, step.actions());
    step.addRequiredOutput(expr->getColumnName());
}
ActionsDAGPtr ExpressionAnalyzer::getActionsDAG(bool add_aliases, bool project_result)