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  /**
025   * Map bigint, integer and smallint all into serial.
026   */
027  @Override
028  public String asIdentityColumn(String columnDefn, DdlIdentity identity) {
029    if ("bigint".equalsIgnoreCase(columnDefn)) {
030      return "serial";
031    }
032    if ("integer".equalsIgnoreCase(columnDefn)) {
033      return "serial";
034    }
035    if ("smallint".equalsIgnoreCase(columnDefn)) {
036      return "serial";
037    }
038    return columnDefn;
039  }
040
041  @Override
042  public void addTableComment(DdlBuffer apply, String tableName, String tableComment) {
043    // do nothing
044  }
045
046  @Override
047  public void addColumnComment(DdlBuffer apply, String table, String column, String comment) {
048    // do nothing
049  }
050
051  @Override
052  public boolean isInlineComments() {
053    return false;
054  }
055}