Liquibase 3.3.0 breaks checksums of changes with numeric values that have 0 fractional part

Description

Consider change

In Liquibase 3.1.1, valueNumeric and defaultValueNumeric are converted to Long, so they appear as "0" to the StringChangeLogSerializer.

In Liquibase 3.4.2 (but the code is there since 3.3.0), they are converted to ColumnConfig$ValueNumeric and they appear as "0.0" to the StringChangeLogSerializer. Since ColumnConfig$ValueNumeric is neither Double nor Float, StringChangeLogSerializer doesn't apply its normalizations, which would replace "0.0" with "0", so the serialized value remains "0.0".
This causes the checksum to be computed differently.

Environment

any

Status

Assignee

Unassigned

Reporter

Piotr Findeisen

Labels

None

Affects versions

Priority

Critical
Configure