001package io.ebeaninternal.dbmigration.ddlgeneration.platform;
002
003import io.ebean.config.dbplatform.DatabasePlatform;
004import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer;
005
006/**
007 * CockroachDB specific DDL handling.
008 */
009public class CockroachDdl extends PlatformDdl {
010
011  public CockroachDdl(DatabasePlatform platform) {
012    super(platform);
013    this.dropTableCascade = " cascade";
014    this.columnSetType = "type ";
015    this.alterTableIfExists = "if exists ";
016    this.columnSetNull = "drop not null";
017  }
018
019  @Override
020  protected String convertArrayType(String logicalArrayType) {
021    return NativeDbArray.logicalToNative(logicalArrayType);
022  }
023
024  @Override
025  public String asIdentityColumn(String columnDefn, DdlIdentity identity) {
026    return asIdentityStandardOptions(columnDefn, identity);
027  }
028
029  @Override
030  public void addTableComment(DdlBuffer apply, String tableName, String tableComment) {
031    // do nothing
032  }
033
034  @Override
035  public void addColumnComment(DdlBuffer apply, String table, String column, String comment) {
036    // do nothing
037  }
038
039  @Override
040  public String alterTableDropUniqueConstraint(String tableName, String uniqueConstraintName) {
041    // workaround for: https://github.com/cockroachdb/cockroach/issues/42840
042    return "drop index " + maxConstraintName(uniqueConstraintName) + " cascade";
043  }
044
045  @Override
046  public boolean isInlineComments() {
047    return false;
048  }
049}