When trying to populate a newly created GraphiteMergeTree table with some data, I catch an exception.

```sql
CREATE TABLE default.ttt
(
    `C1` Int8,
    `Sign` Int8,
    `Version` UInt8,
    `Path` String,
    `Time` DateTime,
    `Value` Int8
)
ENGINE = GraphiteMergeTree('graphite_rollup_params')
ORDER BY tuple()
```
Table is created and it shows up in `SHOW TABLES`. Then, I try to insert some data:

```sql
tietokone :) INSERT INTO ttt (*) VALUES (1, 1, 2, 'qwew', '2021-12-12 01:01:02', 2)

INSERT INTO ttt (*) VALUES

Received exception from server (version 21.9.4):
Code: 49. DB::Exception: Received from localhost:9000. DB::Exception: Invalid number of rows in Chunk column Int8 position 5: expected 1, got 8. (LOGICAL_ERROR)
```

`graphite_rollup_params`:
```xml
<yandex>
    <graphite_rollup_params>
        <version_column_name>Version</version_column_name>
        <pattern>
            <regexp>click_cost</regexp>
            <function>any</function>
            <retention>
                <age>0</age>
                <precision>5</precision>
            </retention>
            <retention>
                <age>86400</age>
                <precision>60</precision>
            </retention>
        </pattern>
        <default>
            <function>max</function>
            <retention>
                <age>0</age>
                <precision>60</precision>
            </retention>
            <retention>
                <age>3600</age>
                <precision>300</precision>
            </retention>
            <retention>
                <age>86400</age>
                <precision>3600</precision>
            </retention>
        </default>
    </graphite_rollup_params>
</yandex>
```

This happens on `21.3`, `21.8`, `21.9`
However, `20.3`, `20.8` work as expected
if (args.query.columns_list && args.query.columns_list->projections)
            for (auto & projection_ast : args.query.columns_list->projections->children)
            {
                auto projection = ProjectionDescription::getProjectionFromAST(projection_ast, columns, args.getContext());
                metadata.projections.add(std::move(projection));
            }
        auto constraints = metadata.constraints.getConstraints();
        if (args.query.columns_list && args.query.columns_list->constraints)
            for (auto & constraint : args.query.columns_list->constraints->children)
                constraints.push_back(constraint);
        metadata.constraints = ConstraintsDescription(constraints);
        auto column_ttl_asts = columns.getColumnTTLs();
        for (const auto & [name, ast] : column_ttl_asts)
        {
            auto new_ttl_entry = TTLDescription::getTTLFromAST(ast, columns, args.getContext(), metadata.primary_key);
            metadata.column_ttls_by_name[name] = new_ttl_entry;
        }
        storage_settings->loadFromQuery(*args.storage_def);
        
        if (args.storage_def->settings)
        {
            if (!args.attach)
                args.getLocalContext()->checkMergeTreeSettingsConstraints(initial_storage_settings, args.storage_def->settings->changes);
            metadata.settings_changes = args.storage_def->settings->ptr();
        }
    }
    else
    {