**Describe what's wrong**

SQLite's `int8` column (8 bytes) gets read as `int32` column in ClickHouse. Large integers overflow as a result.


**Does it reproduce on recent release?**

```
clickhouse server --version
ClickHouse server version 22.9.1.404 (official build).
```

**How to reproduce**

To reproduce:
```sh
# create a table with sqlite
sqlite3 test.sqlite
sqlite> CREATE TABLE test (int8col int8);
sqlite> INSERT INTO test VALUES (2147483648);
sqlite> SELECT * FROM test;
2147483648

# query test.sqlite from ClickHouse
SELECT * FROM sqlite('test.sqlite', 'test');
> int8col
> -2147483648
```

**Expected behavior**

The column should be inferred as int64 column and read the original value without overflow.


**Additional context**

The issue seems to be stemming from this line where any column starting with `int` is converted to `int32`.
https://github.com/ClickHouse/ClickHouse/blob/master/src/Databases/SQLite/fetchSQLiteTableStructure.cpp#L38


{
    DataTypePtr res;
    type = Poco::toLower(type);
    if (type == "tinyint")
        res = std::make_shared<DataTypeInt8>();
    else if (type == "smallint")
        res = std::make_shared<DataTypeInt16>();
    else if (type.starts_with("int") || type == "mediumint")
        res = std::make_shared<DataTypeInt32>();
    else if (type == "bigint")
        res = std::make_shared<DataTypeInt64>();
    else if (type == "float")
        res = std::make_shared<DataTypeFloat32>();
    else if (type.starts_with("double") || type == "real")
        res = std::make_shared<DataTypeFloat64>();
    else
        res = std::make_shared<DataTypeString>(); 
    return res;
}
std::shared_ptr<NamesAndTypesList> fetchSQLiteTableStructure(sqlite3 * connection, const String & sqlite_table_name)