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}