**Describe what's wrong**

An exception is thrown when trying to use the `sumMapFiltered` function on a distributed table. 

**Does it reproduce on recent release?**

Yes. The tests below ran on ClickHouse 21.9.3


**How to reproduce**

Create the test tables and insert a couple rows of data:
```sql
CREATE TABLE local ON CLUSTER 'cluster_name' (
  time     DateTime,
  data     Nested(
    key      Int16,
    value    Int64
  )
) ENGINE = MergeTree()
  PARTITION BY toYYYYMM(time)
  ORDER BY time

CREATE TABLE distributed ON CLUSTER 'cluster_name' (
  time     DateTime,
  data     Nested(
    key      Int16,
    value    Int64
  )
) ENGINE = Distributed('cluster_name', 'cluster_name', 'local') 

INSERT INTO local VALUES
  (1635794296, [1, 2, 3], [10, 10, 10]),
  (1635794296, [1, 2, 3], [10, 10, 10]),
  (1635794296, [1, 2, 3], [10, 10, 10])
```

Then run this query against the distributed table:

```sql
SELECT sumMapFiltered([toInt16(1),toInt16(2)])(data.key, data.value) FROM distributed
```

**Expected behavior**

I would expect the query to return the correct aggregation value, but an error is thrown instead

**Error message and/or stacktrace**

```
Received exception from server (version 21.9.3):
Code: 62. DB::Exception: Received from localhost:9000. DB::Exception: Syntax error (data type): failed at position 34 ('['): [1, 2]), Array(Int16), Array(Int64)). Expected one of: number, nested table, literal, NULL, identifier, data type argument, string literal, name and type pair list, list of elements, data type, list, delimited by binary operators, name and type pair: while receiving packet from [redacted]:9000: While executing Remote. (SYNTAX_ERROR)
```

**Additional context**

The exact same query works as expected when executed against the local table.

ErrorCodes::BAD_ARGUMENTS);
    for (size_t i = argument_types_start_idx; i < arguments->children.size(); ++i)
        argument_types.push_back(DataTypeFactory::instance().get(arguments->children[i]));
    if (function_name.empty())
        throw Exception("Logical error: empty name of aggregate function passed", ErrorCodes::LOGICAL_ERROR);
    AggregateFunctionProperties properties;
    function = AggregateFunctionFactory::instance().get(function_name, argument_types, params_row, properties);
    return std::make_shared<DataTypeAggregateFunction>(function, argument_types, params_row, version);
}
void setVersionToAggregateFunctions(DataTypePtr & type, bool if_empty, std::optional<size_t> revision)
{
    auto callback = [revision, if_empty](DataTypePtr & column_type)
    {
        const auto * aggregate_function_type = typeid_cast<const DataTypeAggregateFunction *>(column_type.get());
        if (aggregate_function_type && aggregate_function_type->isVersioned())
        {
            if (revision)
                aggregate_function_type->updateVersionFromRevision(*revision, if_empty);
            else
                aggregate_function_type->setVersion(0, if_empty);
        }
    };
    callOnNestedSimpleTypes(type, callback);
}
void registerDataTypeAggregateFunction(DataTypeFactory & factory)
{
    factory.registerDataType("AggregateFunction", create);
}
}