**Describe the bug**
Here's my table:
```sql
CREATE TABLE table2
(
        EventDate Date,
        Id Int32,
        Value Int32
)
Engine = MergeTree()
PARTITION BY toYYYYMM(EventDate)
ORDER BY Id;
```

Modify default value (intentionally wrong):
```
>>> alter table table2 modify column Value default 'some_string';

ALTER TABLE table2
    MODIFY COLUMN `Value` DEFAULT 'some_string'

Ok.

0 rows in set. Elapsed: 0.007 sec. 
```

Now you obviously cannot insert anything to this table, because:
```
>>> insert into table2 (EventDate, Id) values (1234567890, 2)

INSERT INTO table2 (EventDate, Id) VALUES

Received exception from server (version 20.9.3):
Code: 6. DB::Exception: Received from localhost:9000. DB::Exception: Cannot parse string 'some_string' as Int32: syntax error at begin of string. Note: there are toInt32OrZero and toInt32OrNull functions, which returns zero/NULL instead of throwing exception.. 

1 rows in set. Elapsed: 0.002 sec. 
```

**How to reproduce**
* Which ClickHouse server version to use: 20.9.3
* Which interface to use, if matters: I used standard CLI

**Expected behavior**
Currently ClickHouse doesn't check types compability while setting a DEFAULT value for a column. Maybe ClickHouse should validate DEFAULT values for type compability?

{
            metadata.columns.modify(column.name, [&](ColumnDescription & column_to_modify)
            {
                if (column_to_modify.default_desc.expression)
                    rename_visitor.visit(column_to_modify.default_desc.expression);
                if (column_to_modify.ttl)
                    rename_visitor.visit(column_to_modify.ttl);
            });
        }
        if (metadata.table_ttl.definition_ast)
            rename_visitor.visit(metadata.table_ttl.definition_ast);
        for (auto & constraint : metadata.constraints.constraints)
            rename_visitor.visit(constraint);
        if (metadata.isSortingKeyDefined())
            rename_visitor.visit(metadata.sorting_key.definition_ast);
        if (metadata.isPrimaryKeyDefined())
            rename_visitor.visit(metadata.primary_key.definition_ast);
        if (metadata.isSamplingKeyDefined())
            rename_visitor.visit(metadata.sampling_key.definition_ast);
        if (metadata.isPartitionKeyDefined())
            rename_visitor.visit(metadata.partition_key.definition_ast);
        for (auto & index : metadata.secondary_indices)
            rename_visitor.visit(index.definition_ast);
    }
    else
        throw Exception("Wrong parameter type in ALTER query", ErrorCodes::LOGICAL_ERROR);
}
namespace
{
bool isMetadataOnlyConversion(const IDataType * from, const IDataType * to)