**Describe what's wrong**

Correct query doesn't work.

**Does it reproduce on recent release?**

Yes,

ClickHouse version 21.11

```
CREATE TABLE tbl_repr(
ts DateTime,
x  String)
ENGINE=MergeTree ORDER BY ts;

SELECT *
FROM
(
    SELECT
        x,
        length(x)
    FROM tbl_repr
    WHERE ts > now()
    LIMIT 1
)
WHERE x != ''

Query id: 083cdb34-500b-4b43-b096-9c8140165a65


0 rows in set. Elapsed: 0.004 sec.

Received exception from server (version 21.11.1):
Code: 8. DB::Exception: Received from localhost:9000. DB::Exception: Cannot find column `length(x)` in source stream, there are only columns: [x]. (THERE_IS_NO_COLUMN)
```

**Expected behavior**

Query works


**Error message and/or stacktrace**

Code: 8. DB::Exception: Received from localhost:9000. DB::Exception: Cannot find column `length(x)` in source stream, there are only columns: [x]. (THERE_IS_NO_COLUMN)

#include <Processors/QueryPlan/LimitStep.h>
#include <QueryPipeline/QueryPipelineBuilder.h>
#include <Processors/LimitTransform.h>
#include <IO/Operators.h>
#include <Common/JSONBuilder.h>
namespace DB
{
static ITransformingStep::Traits getTraits()
{
    return ITransformingStep::Traits
    {
        {
            .preserves_distinct_columns = true,
            .returns_single_stream = false,
            .preserves_number_of_streams = true,
            .preserves_sorting = true,
        },
        {
            .preserves_number_of_rows = false,
        }
    };
}
LimitStep::LimitStep(