**Describe the issue**

```
SELECT
    extract(log, '\\*   Trying ([0-9a-z\\.\\:\\[\\]]+):\\d+\\.\\.\\.') AS resolved_address,
    toIPv4(resolved_address) AS ipv4
FROM minicrawl
LIMIT 10

┌─resolved_address─┬───────────ipv4─┐
│ 89.46.106.77     │   89.46.106.77 │
│ 13.33.243.83     │   13.33.243.83 │
│ 93.95.100.90     │   93.95.100.90 │
│ 23.227.38.32     │   23.227.38.32 │
│ 203.113.174.46   │ 203.113.174.46 │
│ 13.70.20.161     │   13.70.20.161 │
│ 60.199.172.227   │ 60.199.172.227 │
│                  │        0.0.0.0 │
│                  │        0.0.0.0 │
│ 82.149.228.245   │ 82.149.228.245 │
└──────────────────┴────────────────┘
```
{
        serializeText(column, row_num, ostr, settings);
    }
public:
    static void addToSubstreamsCache(SubstreamsCache * cache, const SubstreamPath & path, ColumnPtr column);
    static ColumnPtr getFromSubstreamsCache(SubstreamsCache * cache, const SubstreamPath & path);
    /** Create empty column for corresponding type.
      */
    virtual MutableColumnPtr createColumn() const = 0;
    /** Create ColumnConst for corresponding type, with specified size and value.
      */
    ColumnPtr createColumnConst(size_t size, const Field & field) const;
    ColumnPtr createColumnConstWithDefaultValue(size_t size) const;
    /** Get default value of data type.
      * It is the "default" default, regardless the fact that a table could contain different user-specified default.
      */
    virtual Field getDefault() const = 0;
    /** The data type can be promoted in order to try to avoid overflows.
      * Data types which can be promoted are typically Number or Decimal data types.
      */
    virtual bool canBePromoted() const { return false; }