@Override
  public String generateSqlType(Dialect dialect) {
    return switch (dialect.getId()) {
      case PostgreSql.ID, Oracle.ID -> String.format("NUMERIC (%s,%s)", precision, scale);
      case MsSql.ID -> String.format("DECIMAL (%s,%s)", precision, scale);
      case H2.ID -> "DOUBLE";
      default -> throw new UnsupportedOperationException(String.format("Unknown dialect '%s'", dialect.getId()));
    };
  }
@Test
  public void generate_sql_type() {
    DecimalColumnDef def = new DecimalColumnDef.Builder()
      .setColumnName("issues")
      .setPrecision(30)
      .setScale(20)
      .setIsNullable(true)
      .build();

    assertThat(def.generateSqlType(new H2())).isEqualTo("DOUBLE");
    assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("NUMERIC (30,20)");
    assertThat(def.generateSqlType(new MsSql())).isEqualTo("DECIMAL (30,20)");
    assertThat(def.generateSqlType(new Oracle())).isEqualTo("NUMERIC (30,20)");
  }