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}