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
pattern.function = AggregateFunctionFactory::instance().get(
                aggregate_function_name, {std::make_shared<DataTypeFloat64>()}, params_row, properties);
        }
        else if (key == "rule_type")
        {
            String rule_type = config.getString(config_element + ".rule_type");
            pattern.rule_type = ruleType(rule_type);
        }
        else if (startsWith(key, "retention"))
        {
            pattern.retentions.emplace_back(Graphite::Retention{
                .age = config.getUInt(config_element + "." + key + ".age"),
                .precision = config.getUInt(config_element + "." + key + ".precision")});
        }
        else
            throw Exception("Unknown element in config: " + key, DB::ErrorCodes::UNKNOWN_ELEMENT_IN_CONFIG);
    }
    if (!pattern.regexp_str.empty())
    {
        if (pattern.rule_type == RuleTypeTagList)
        {
            
            pattern.regexp_str = buildTaggedRegex(pattern.regexp_str);
            pattern.rule_type = RuleTypeTagged;
        }
        pattern.regexp = std::make_shared<OptimizedRegularExpression>(pattern.regexp_str);
    }
    if (!pattern.function && pattern.retentions.empty())
        throw Exception(
            "At least one of an aggregate function or retention rules is mandatory for rollup patterns in GraphiteMergeTree",