Below test case worked before 21.4. It seems there's parsing issue with all Map columns using Integer as key.
```sql
set allow_experimental_map_type = 1;
CREATE TABLE IF NOT EXISTS test_maps(ma Map(Integer, Array(String)), mi Map(Integer, Integer), ms Map(String, String)) ENGINE = Memory;
-- Exception on client:
-- Code: 62. DB::Exception: Cannot parse expression of type Map(Int32,Array(String)) here: {1:['11','12'],2:['22','23']},{1:11,2:22},{'k1':'v1','k2':'v2'}): data for INSERT was parsed from query
insert into test_maps values ({1:['11','12'],2:['22','23']},{1:11,2:22},{'k1':'v1','k2':'v2'});
```

Just tried 21.6 and it's still the same:
```sql
:) create table if not exists test_map_with_int_key(m Map(UInt32, UInt32)) engine = Memory;
...
:) SELECT CAST(([1, 2], [11, 22]), 'Map(UInt32, UInt32)') AS m;

SELECT CAST(([1, 2], [11, 22]), 'Map(UInt32, UInt32)') AS m

Query id: dbe47185-bc24-488b-a85d-761616e3199d

┌─m───────────┐
│ {1:11,2:22} │
└─────────────┘
:) insert into test_map_with_int_key SELECT CAST(([1, 2], [11, 22]), 'Map(UInt32, UInt32)') as m

INSERT INTO test_map_with_int_key SELECT CAST(([1, 2], [11, 22]), 'Map(UInt32, UInt32)') AS m

Query id: 6877901f-1518-48f9-ba65-d54ed7326388

Ok.
:) insert into test_map_with_int_key values({1:11,2:22})

INSERT INTO test_map_with_in_key VALUES

Query id: 3f6cae42-064a-467f-baae-b7f323e910c0


0 rows in set. Elapsed: 0.004 sec.

Received exception from server (version 21.6.3):
Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table default.test_map_with_in_key doesn't exist.
```

P.S. I'll submit PRs for integration test this week so that we can spot this kind of issue early.
{
    assert(elems_.size() == 2);
    key_type = elems_[0];
    value_type = elems_[1];
    assertKeyType();
    nested = std::make_shared<DataTypeArray>(
        std::make_shared<DataTypeTuple>(DataTypes{key_type, value_type}, Names{"keys", "values"}));
}
DataTypeMap::DataTypeMap(const DataTypePtr & key_type_, const DataTypePtr & value_type_)
    : key_type(key_type_), value_type(value_type_)
    , nested(std::make_shared<DataTypeArray>(
        std::make_shared<DataTypeTuple>(DataTypes{key_type_, value_type_}, Names{"keys", "values"})))
{
    assertKeyType();
}
void DataTypeMap::assertKeyType() const