public static TypeTransformation toNullable() {
        return DataType::nullable;
    }
@Test
    void testToNullable() {
        DataType dataType =
                DataTypes.ROW(
                        DataTypes.FIELD("a", DataTypes.STRING().notNull()),
                        DataTypes.FIELD("b", DataTypes.TIMESTAMP()),
                        DataTypes.FIELD("c", DataTypes.TIMESTAMP(5).notNull()),
                        DataTypes.FIELD("d", DataTypes.ARRAY(DataTypes.TIME().notNull())),
                        DataTypes.FIELD(
                                "e",
                                DataTypes.MAP(
                                        DataTypes.DATE().notNull(), DataTypes.TIME(9).notNull())),
                        DataTypes.FIELD("f", DataTypes.TIMESTAMP_WITH_TIME_ZONE()));

        DataType expected =
                DataTypes.ROW(
                        DataTypes.FIELD("a", DataTypes.STRING()),
                        DataTypes.FIELD("b", DataTypes.TIMESTAMP()),
                        DataTypes.FIELD("c", DataTypes.TIMESTAMP(5)),
                        DataTypes.FIELD("d", DataTypes.ARRAY(DataTypes.TIME())),
                        DataTypes.FIELD("e", DataTypes.MAP(DataTypes.DATE(), DataTypes.TIME(9))),
                        DataTypes.FIELD("f", DataTypes.TIMESTAMP_WITH_TIME_ZONE()));

        assertThat(DataTypeUtils.transform(dataType, toNullable())).isEqualTo(expected);
    }