Updating a Nullable column value by using alter .... where ... causes to set another value!

ClickHouse version: 20.6.3.28
Engine: MergeTree
OS: Ubuntu 18.04.3 LTS

Steps to reproduce:
```sql
CREATE TABLE table1(
	id int,
	price Nullable(Int32)
)
ENGINE = MergeTree()
PARTITION BY id
ORDER BY (id);
INSERT INTO table1 (id, price) VALUES (1, 100);
ALTER TABLE table1  update price = 150 where id=1;
SELECT * FROM table1;
```
We expect the price to be `150`, but it's `93148480`:

```
┌─id─┬────price─┐
│  1 │ 93148480 │
└────┴──────────┘
```
Using `Decimal(9,2)` field instead of `Int32` would set the value  `932342.88` always. It seems there's a fixed value for each data type.

If we don't use such a `where` clause, it works correctly:
```sql
ALTER TABLE db1.table1  update price = 150 where 1=1;
┌─id─┬─price─┐
│  1 │   150 │
└────┴───────┘
```
if (cond_is_null || cond_is_true || cond_is_false) 
            {
                UInt8 value = cond_is_true ? 1 : 0;
                new_cond_column = ColumnConst::create(ColumnUInt8::create(1, value), column_size);
            }
            else if (checkAndGetColumn<ColumnUInt8>(*new_cond_column))
            {
                auto nested_column_copy = new_cond_column->cloneResized(new_cond_column->size());
                typeid_cast<ColumnUInt8 *>(nested_column_copy.get())->applyZeroMap(nullable->getNullMapData());
                new_cond_column = std::move(nested_column_copy);
                if (cond_is_const)
                    new_cond_column = ColumnConst::create(new_cond_column, column_size);
            }
            else
                throw Exception("Illegal column " + arg_cond.column->getName() + " of " + getName() + " condition",
                                ErrorCodes::ILLEGAL_COLUMN);
            Block temporary_block
            {
                { new_cond_column, removeNullable(arg_cond.type), arg_cond.name },
                column1,
                column2,
                result_column
            };
            executeImpl(temporary_block, {0, 1, 2}, 3, temporary_block.rows());
            result_column.column = std::move(temporary_block.getByPosition(3).column);
            return true;
        }
        return false;
    }
    static ColumnPtr materializeColumnIfConst(const ColumnPtr & column)