diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java index b9fead35b..9e6d7ea28 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java @@ -305,21 +305,13 @@ public class DdlGenerator implements SpiDdlGenerator { } protected String generateDropAllDdl() { - try { - dropAllContent = currentModel().getDropAllDdl(); - return dropAllContent; - } catch (IOException e) { - throw new RuntimeException(e); - } + dropAllContent = currentModel().getDropAllDdl(); + return dropAllContent; } protected String generateCreateAllDdl() { - try { - createAllContent = currentModel().getCreateDdl(); - return createAllContent; - } catch (IOException e) { - throw new RuntimeException(e); - } + createAllContent = currentModel().getCreateDdl(); + return createAllContent; } protected String getDropFileName() { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java index 1d7f9e562..1f233092a 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java @@ -8,7 +8,6 @@ import java.io.Writer; import java.util.ArrayList; import java.util.List; import java.util.Properties; -import java.util.StringJoiner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,7 +15,6 @@ import org.slf4j.LoggerFactory; import io.ebean.DB; import io.ebean.Database; import io.ebean.annotation.Platform; -import io.ebean.config.ClassLoadConfig; import io.ebean.config.DatabaseConfig; import io.ebean.config.DbConstraintNaming; import io.ebean.config.PlatformConfig; @@ -46,7 +44,6 @@ import io.ebean.config.dbplatform.sqlserver.SqlServer17Platform; import io.ebean.config.dbplatform.yugabyte.YugabytePlaform; import io.ebean.dbmigration.DbMigration; import io.ebean.util.IOUtils; -import io.ebean.util.StringHelper; import io.ebeaninternal.api.DbOffline; import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions; diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java index c8b29872a..ed8d65987 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java @@ -7,6 +7,8 @@ package io.ebeaninternal.dbmigration; */ public class UnknownResourcePathException extends RuntimeException { + private static final long serialVersionUID = 8533769929372106003L; + public UnknownResourcePathException(String msg) { super(msg); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java index 870d90472..a78219962 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java @@ -17,7 +17,6 @@ import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.migration.DropIndex; import io.ebeaninternal.dbmigration.migration.DropTable; -import java.io.IOException; import java.util.List; /** @@ -36,7 +35,7 @@ public class BaseDdlHandler implements DdlHandler { } @Override - public void generate(DdlWrite writer, ChangeSet changeSet) throws IOException { + public void generate(DdlWrite writer, ChangeSet changeSet) { List changeSetChildren = changeSet.getChangeSetChildren(); for (Object change : changeSetChildren) { @@ -76,72 +75,72 @@ public class BaseDdlHandler implements DdlHandler { } @Override - public void generateProlog(DdlWrite write) throws IOException { + public void generateProlog(DdlWrite write) { tableDdl.generateProlog(write); } @Override - public void generateEpilog(DdlWrite write) throws IOException { + public void generateEpilog(DdlWrite write) { tableDdl.generateEpilog(write); } @Override - public void generate(DdlWrite writer, CreateTable createTable) throws IOException { + public void generate(DdlWrite writer, CreateTable createTable) { tableDdl.generate(writer, createTable); } @Override - public void generate(DdlWrite writer, DropTable dropTable) throws IOException { + public void generate(DdlWrite writer, DropTable dropTable) { tableDdl.generate(writer, dropTable); } @Override - public void generate(DdlWrite writer, AddTableComment addTableComment) throws IOException { + public void generate(DdlWrite writer, AddTableComment addTableComment) { tableDdl.generate(writer, addTableComment); } @Override - public void generate(DdlWrite writer, AddColumn addColumn) throws IOException { + public void generate(DdlWrite writer, AddColumn addColumn) { tableDdl.generate(writer, addColumn); } @Override - public void generate(DdlWrite writer, DropColumn dropColumn) throws IOException { + public void generate(DdlWrite writer, DropColumn dropColumn) { tableDdl.generate(writer, dropColumn); } @Override - public void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException { + public void generate(DdlWrite writer, AlterColumn alterColumn) { tableDdl.generate(writer, alterColumn); } @Override - public void generate(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void generate(DdlWrite writer, AddHistoryTable addHistoryTable) { tableDdl.generate(writer, addHistoryTable); } @Override - public void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) { tableDdl.generate(writer, dropHistoryTable); } @Override - public void generate(DdlWrite writer, CreateIndex createIndex) throws IOException { + public void generate(DdlWrite writer, CreateIndex createIndex) { tableDdl.generate(writer, createIndex); } @Override - public void generate(DdlWrite writer, DropIndex dropIndex) throws IOException { + public void generate(DdlWrite writer, DropIndex dropIndex) { tableDdl.generate(writer, dropIndex); } @Override - public void generate(DdlWrite writer, AddUniqueConstraint constraint) throws IOException { + public void generate(DdlWrite writer, AddUniqueConstraint constraint) { tableDdl.generate(writer, constraint); } @Override - public void generate(DdlWrite writer, AlterForeignKey alterForeignKey) throws IOException { + public void generate(DdlWrite writer, AlterForeignKey alterForeignKey) { tableDdl.generate(writer, alterForeignKey); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java index fa334e88a..e4189997f 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java @@ -4,8 +4,6 @@ import io.ebeaninternal.dbmigration.migration.AddColumn; import io.ebeaninternal.dbmigration.migration.AlterColumn; import io.ebeaninternal.dbmigration.migration.DropColumn; -import java.io.IOException; - /** * Write DDL for AddColumn , DropColumn or AlterColumn. */ @@ -14,15 +12,15 @@ public interface ColumnDdl { /** * Write the add column change. */ - void generate(DdlWrite writer, AddColumn addColumn) throws IOException; + void generate(DdlWrite writer, AddColumn addColumn); /** * Write the drop column change. */ - void generate(DdlWrite writer, DropColumn dropColumn) throws IOException; + void generate(DdlWrite writer, DropColumn dropColumn); /** * Write the alter column changes. */ - void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException; + void generate(DdlWrite writer, AlterColumn alterColumn); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java index 5d37cb762..e1c7365ea 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java @@ -1,19 +1,10 @@ package io.ebeaninternal.dbmigration.ddlgeneration; -import io.ebeaninternal.dbmigration.model.MConfiguration; - -import java.io.IOException; - /** * Buffer to append generated DDL to. */ public interface DdlBuffer { - /** - * Return the configuration (default tablespaces etc). - */ - MConfiguration getConfiguration(); - /** * Return true if the buffer is empty. */ @@ -22,37 +13,37 @@ public interface DdlBuffer { /** * Append a statement allowing for null or empty statements. */ - DdlBuffer appendStatement(String content) throws IOException; + DdlBuffer appendStatement(String content); /** * Append DDL content to the buffer. */ - DdlBuffer append(String content) throws IOException; + DdlBuffer append(String content); /** * Append DDL content to the buffer with space padding. */ - DdlBuffer append(String type, int space) throws IOException; + DdlBuffer append(String type, int space); /** * Append a value that is potentially null or empty and proceed it with a space if so. */ - DdlBuffer appendWithSpace(String foreignKeyRestrict) throws IOException; + DdlBuffer appendWithSpace(String foreignKeyRestrict); /** * Append new line character to the buffer. */ - DdlBuffer newLine() throws IOException; + DdlBuffer newLine(); /** * Append the end of statement content. */ - DdlBuffer endOfStatement() throws IOException; + DdlBuffer endOfStatement(); /** * End of a change - add some whitespace. */ - DdlBuffer end() throws IOException; + DdlBuffer end(); /** * Return the buffer content. diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java index 9a693640f..b16939527 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java @@ -14,40 +14,38 @@ import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.migration.DropIndex; import io.ebeaninternal.dbmigration.migration.DropTable; -import java.io.IOException; - /** * DDL generation interface. */ public interface DdlHandler { - void generate(DdlWrite writer, ChangeSet changeSet) throws IOException; + void generate(DdlWrite writer, ChangeSet changeSet); - void generate(DdlWrite writer, CreateTable createTable) throws IOException; + void generate(DdlWrite writer, CreateTable createTable); - void generate(DdlWrite writer, DropTable dropTable) throws IOException; + void generate(DdlWrite writer, DropTable dropTable); - void generate(DdlWrite writer, AddTableComment addTableComment) throws IOException; + void generate(DdlWrite writer, AddTableComment addTableComment); - void generate(DdlWrite writer, AddColumn addColumn) throws IOException; + void generate(DdlWrite writer, AddColumn addColumn); - void generate(DdlWrite writer, DropColumn dropColumn) throws IOException; + void generate(DdlWrite writer, DropColumn dropColumn); - void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException; + void generate(DdlWrite writer, AlterColumn alterColumn); - void generate(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException; + void generate(DdlWrite writer, AddHistoryTable addHistoryTable); - void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException; + void generate(DdlWrite writer, DropHistoryTable dropHistoryTable); - void generate(DdlWrite writer, CreateIndex createIndex) throws IOException; + void generate(DdlWrite writer, CreateIndex createIndex); - void generate(DdlWrite writer, DropIndex dropIndex) throws IOException; + void generate(DdlWrite writer, DropIndex dropIndex); - void generate(DdlWrite writer, AddUniqueConstraint constraint) throws IOException; + void generate(DdlWrite writer, AddUniqueConstraint constraint); - void generate(DdlWrite writer, AlterForeignKey alterForeignKey) throws IOException; + void generate(DdlWrite writer, AlterForeignKey alterForeignKey); - void generateProlog(DdlWrite write) throws IOException; + void generateProlog(DdlWrite write); - void generateEpilog(DdlWrite write) throws IOException; + void generateEpilog(DdlWrite write); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java index 0f37f3374..eff523d09 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java @@ -12,19 +12,19 @@ public class DdlWrite { private final ModelContainer currentModel; - private final DdlBuffer applyDropDependencies; + private final DdlBuffer applyDropDependencies = new BaseDdlBuffer(); - private final DdlBuffer apply; + private final DdlBuffer apply = new BaseDdlBuffer(); - private final DdlBuffer applyForeignKeys; + private final DdlBuffer applyForeignKeys = new BaseDdlBuffer(); - private final DdlBuffer applyHistoryView; + private final DdlBuffer applyHistoryView = new BaseDdlBuffer(); - private final DdlBuffer applyHistoryTrigger; + private final DdlBuffer applyHistoryTrigger = new BaseDdlBuffer(); - private final DdlBuffer dropAllForeignKeys; + private final DdlBuffer dropAllForeignKeys = new BaseDdlBuffer(); - private final DdlBuffer dropAll; + private final DdlBuffer dropAll = new BaseDdlBuffer(); private final DdlOptions options; @@ -40,13 +40,6 @@ public class DdlWrite { */ public DdlWrite(MConfiguration configuration, ModelContainer currentModel, DdlOptions options) { this.currentModel = currentModel; - this.applyDropDependencies = new BaseDdlBuffer(configuration); - this.apply = new BaseDdlBuffer(configuration); - this.applyForeignKeys = new BaseDdlBuffer(configuration); - this.applyHistoryView = new BaseDdlBuffer(configuration); - this.applyHistoryTrigger = new BaseDdlBuffer(configuration); - this.dropAllForeignKeys = new BaseDdlBuffer(configuration); - this.dropAll = new BaseDdlBuffer(configuration); this.options = options; } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java index 1ef34384b..493a0f10d 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java @@ -13,8 +13,6 @@ import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.migration.DropIndex; import io.ebeaninternal.dbmigration.migration.DropTable; -import java.io.IOException; - /** * Write table DDL. */ @@ -23,70 +21,70 @@ public interface TableDdl { /** * Generate the create table change. */ - void generate(DdlWrite writer, CreateTable createTable) throws IOException; + void generate(DdlWrite writer, CreateTable createTable); /** * Write the drop column change. */ - void generate(DdlWrite writer, DropTable dropTable) throws IOException; + void generate(DdlWrite writer, DropTable dropTable); /** * Write the add column change. */ - void generate(DdlWrite writer, AddColumn addColumn) throws IOException; + void generate(DdlWrite writer, AddColumn addColumn); /** * Write the alter column changes. */ - void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException; + void generate(DdlWrite writer, AlterColumn alterColumn); /** * Write the drop column change. */ - void generate(DdlWrite writer, DropColumn dropColumn) throws IOException; + void generate(DdlWrite writer, DropColumn dropColumn); /** * Write the AddTableComment change. */ - void generate(DdlWrite writer, AddTableComment addTableComment) throws IOException; + void generate(DdlWrite writer, AddTableComment addTableComment); /** * Write the AddHistoryTable change. */ - void generate(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException; + void generate(DdlWrite writer, AddHistoryTable addHistoryTable); /** * Write the DropHistoryTable change. */ - void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException; + void generate(DdlWrite writer, DropHistoryTable dropHistoryTable); /** * Generate the create index change. */ - void generate(DdlWrite writer, CreateIndex createIndex) throws IOException; + void generate(DdlWrite writer, CreateIndex createIndex); /** * Write the drop index change. */ - void generate(DdlWrite writer, DropIndex dropIndex) throws IOException; + void generate(DdlWrite writer, DropIndex dropIndex); /** * Write add unique constraint. */ - void generate(DdlWrite writer, AddUniqueConstraint constraint) throws IOException; + void generate(DdlWrite writer, AddUniqueConstraint constraint); /** * Writes alter foreign key statements. */ - void generate(DdlWrite writer, AlterForeignKey alterForeignKey) throws IOException; + void generate(DdlWrite writer, AlterForeignKey alterForeignKey); /** * Generate any extra DDL such as stored procedures or TableValueParameters. */ - void generateProlog(DdlWrite write) throws IOException; + void generateProlog(DdlWrite write); /** * Generate any extra DDL such as regeneration of history triggers. */ - void generateEpilog(DdlWrite write) throws IOException; + void generateEpilog(DdlWrite write); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java index f14c96762..dd9e57ff5 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java @@ -7,7 +7,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler; import io.ebeaninternal.dbmigration.migration.AlterColumn; -import java.io.IOException; import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -52,31 +51,27 @@ public abstract class AbstractHanaDdl extends PlatformDdl { : (alter.getDefaultValue() != null ? alter.getDefaultValue() : alter.getCurrentDefaultValue()); String defaultValueClause = (defaultValue == null || defaultValue.isEmpty()) ? "" : " default " + defaultValue; - try { - DdlBuffer buffer = new BaseDdlBuffer(null); - if (!isConvertible(currentType, type)) { - // add an intermediate conversion if possible - if (isNumberType(currentType)) { - // numbers can always be converted to decimal - buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" decimal ").append(defaultValueClause).append(notnullClause).append(alterColumnSuffix) - .endOfStatement(); + DdlBuffer buffer = new BaseDdlBuffer(); + if (!isConvertible(currentType, type)) { + // add an intermediate conversion if possible + if (isNumberType(currentType)) { + // numbers can always be converted to decimal + buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) + .append(" decimal ").append(defaultValueClause).append(notnullClause).append(alterColumnSuffix) + .endOfStatement(); - } else if (isStringType(currentType)) { - // strings can always be converted to nclob - buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" nclob ").append(defaultValueClause).append(notnullClause).append(alterColumnSuffix) - .endOfStatement(); - } + } else if (isStringType(currentType)) { + // strings can always be converted to nclob + buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) + .append(" nclob ").append(defaultValueClause).append(notnullClause).append(alterColumnSuffix) + .endOfStatement(); } - - buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" ").append(type).append(defaultValueClause).append(notnullClause).append(alterColumnSuffix); - - return buffer.getBuffer(); - } catch (IOException e) { - throw new RuntimeException(e); } + + buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) + .append(" ").append(type).append(defaultValueClause).append(notnullClause).append(alterColumnSuffix); + + return buffer.getBuffer(); } @Override @@ -120,20 +115,17 @@ public abstract class AbstractHanaDdl extends PlatformDdl { @Override public String alterTableDropUniqueConstraint(String tableName, String uniqueConstraintName) { - DdlBuffer buffer = new BaseDdlBuffer(null); - try { - buffer.append("delimiter $$").newLine(); - buffer.append("do").newLine(); - buffer.append("begin").newLine(); - buffer.append("declare exit handler for sql_error_code 397 begin end").endOfStatement(); - buffer.append("exec 'alter table ").append(tableName).append(" ").append(dropUniqueConstraint).append(" ") - .append(maxConstraintName(uniqueConstraintName)).append("'").endOfStatement(); - buffer.append("end").endOfStatement(); - buffer.append("$$"); - return buffer.getBuffer(); - } catch (IOException e) { - throw new RuntimeException(e); - } + DdlBuffer buffer = new BaseDdlBuffer(); + + buffer.append("delimiter $$").newLine(); + buffer.append("do").newLine(); + buffer.append("begin").newLine(); + buffer.append("declare exit handler for sql_error_code 397 begin end").endOfStatement(); + buffer.append("exec 'alter table ").append(tableName).append(" ").append(dropUniqueConstraint).append(" ") + .append(maxConstraintName(uniqueConstraintName)).append("'").endOfStatement(); + buffer.append("end").endOfStatement(); + buffer.append("$$"); + return buffer.getBuffer(); } @Override @@ -146,7 +138,7 @@ public abstract class AbstractHanaDdl extends PlatformDdl { * foreign keys. That's why we call a user stored procedure here */ @Override - public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) throws IOException { + public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { buffer.append("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')") .endOfStatement(); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java index e54e91ba0..674c07063 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java @@ -1,45 +1,34 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import io.ebeaninternal.dbmigration.model.MConfiguration; -import java.io.IOException; -import java.io.StringWriter; /** * Base implementation of DdlBuffer using an underlying writer. */ public class BaseDdlBuffer implements DdlBuffer { - protected final StringWriter writer; + protected final StringBuilder writer; - protected final MConfiguration configuration; - - public BaseDdlBuffer(MConfiguration configuration) { - this.configuration = configuration; - this.writer = new StringWriter(); - } - - @Override - public MConfiguration getConfiguration() { - return configuration; + public BaseDdlBuffer() { + this.writer = new StringBuilder(); } @Override public boolean isEmpty() { - return writer.getBuffer().length() == 0; + return writer.length() == 0; } @Override - public DdlBuffer appendWithSpace(String foreignKeyRestrict) throws IOException { - if (foreignKeyRestrict != null && !foreignKeyRestrict.isEmpty()) { - writer.append(" ").append(foreignKeyRestrict); + public DdlBuffer appendWithSpace(String content) { + if (content != null && !content.isEmpty()) { + writer.append(" ").append(content); } return this; } @Override - public DdlBuffer appendStatement(String content) throws IOException { + public DdlBuffer appendStatement(String content) { if (content != null && !content.isEmpty()) { writer.append(content); endOfStatement(); @@ -48,19 +37,19 @@ public class BaseDdlBuffer implements DdlBuffer { } @Override - public DdlBuffer append(String content) throws IOException { + public DdlBuffer append(String content) { writer.append(content); return this; } @Override - public DdlBuffer append(String content, int space) throws IOException { + public DdlBuffer append(String content, int space) { writer.append(content); appendSpace(space, content); return this; } - protected void appendSpace(int max, String content) throws IOException { + protected void appendSpace(int max, String content) { int space = max - content.length(); if (space > 0) { for (int i = 0; i < space; i++) { @@ -71,7 +60,7 @@ public class BaseDdlBuffer implements DdlBuffer { } @Override - public DdlBuffer endOfStatement() throws IOException { + public DdlBuffer endOfStatement() { writer.append(";\n"); return this; } @@ -81,7 +70,7 @@ public class BaseDdlBuffer implements DdlBuffer { * This should be just whitespace or a sql comment. */ @Override - public DdlBuffer end() throws IOException { + public DdlBuffer end() { if (!isEmpty()) { writer.append("\n"); } @@ -89,7 +78,7 @@ public class BaseDdlBuffer implements DdlBuffer { } @Override - public DdlBuffer newLine() throws IOException { + public DdlBuffer newLine() { writer.append("\n"); return this; } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index 0e80c2676..34839184c 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -32,7 +32,6 @@ import io.ebeaninternal.dbmigration.model.MTable; import io.ebeaninternal.dbmigration.model.MTableIdentity; import io.ebeaninternal.server.deploy.IdentityMode; -import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; @@ -141,7 +140,7 @@ public class BaseTableDdl implements TableDdl { after = getScriptsForPlatform(alter.getAfter()); } - void writeBefore(DdlBuffer buffer) throws IOException { + void writeBefore(DdlBuffer buffer) { if (!before.isEmpty()) { buffer.end(); } @@ -154,7 +153,7 @@ public class BaseTableDdl implements TableDdl { } } - void writeAfter(DdlBuffer buffer) throws IOException { + void writeAfter(DdlBuffer buffer) { if (!after.isEmpty() && withHistory) { buffer.append("-- NOTE: table has @History - special migration may be necessary").newLine(); } @@ -235,7 +234,7 @@ public class BaseTableDdl implements TableDdl { * and add them to the appropriate 'apply' and 'rollback' buffers. */ @Override - public void generate(DdlWrite writer, CreateTable createTable) throws IOException { + public void generate(DdlWrite writer, CreateTable createTable) { reset(); String tableName = lowerTableName(createTable.getName()); @@ -308,7 +307,7 @@ public class BaseTableDdl implements TableDdl { /** * Add table and column comments (separate from the create table statement). */ - private void addComments(DdlBuffer apply, CreateTable createTable) throws IOException { + private void addComments(DdlBuffer apply, CreateTable createTable) { if (!platformDdl.isInlineComments()) { String tableComment = createTable.getComment(); if (hasValue(tableComment)) { @@ -325,7 +324,7 @@ public class BaseTableDdl implements TableDdl { /** * Add the table storage engine clause. */ - private void addTableStorageEngine(DdlBuffer apply, CreateTable createTable) throws IOException { + private void addTableStorageEngine(DdlBuffer apply, CreateTable createTable) { if (platformDdl.isIncludeStorageEngine()) { platformDdl.tableStorageEngine(apply, createTable.getStorageEngine()); } @@ -334,7 +333,7 @@ public class BaseTableDdl implements TableDdl { /** * Add the table comment inline with the create table statement. */ - private void addTableCommentInline(DdlBuffer apply, CreateTable createTable) throws IOException { + private void addTableCommentInline(DdlBuffer apply, CreateTable createTable) { if (platformDdl.isInlineComments()) { String tableComment = createTable.getComment(); if (!StringHelper.isNull(tableComment)) { @@ -343,7 +342,7 @@ public class BaseTableDdl implements TableDdl { } } - private void writeTableColumns(DdlBuffer apply, List columns, DdlIdentity identity) throws IOException { + private void writeTableColumns(DdlBuffer apply, List columns, DdlIdentity identity) { platformDdl.writeTableColumns(apply, columns, identity); } @@ -351,7 +350,7 @@ public class BaseTableDdl implements TableDdl { * Specific handling of OneToOne unique constraints for MsSqlServer. * For all other DB platforms these unique constraints are done inline as per normal. */ - protected void writeUniqueOneToOneConstraints(DdlWrite write, CreateTable createTable) throws IOException { + protected void writeUniqueOneToOneConstraints(DdlWrite write, CreateTable createTable) { String tableName = createTable.getName(); for (Column col : externalUnique) { String uqName = col.getUniqueOneToOne(); @@ -373,7 +372,7 @@ public class BaseTableDdl implements TableDdl { } } - protected void writeSequence(DdlWrite writer, DdlIdentity identity) throws IOException { + protected void writeSequence(DdlWrite writer, DdlIdentity identity) { String seqName = identity.getSequenceName(); String createSeq = platformDdl.createSequence(seqName, identity); if (hasValue(createSeq)) { @@ -382,12 +381,12 @@ public class BaseTableDdl implements TableDdl { } } - protected void createWithHistory(DdlWrite writer, String name) throws IOException { + protected void createWithHistory(DdlWrite writer, String name) { MTable table = writer.getTable(name); platformDdl.createWithHistory(writer, table); } - protected void writeInlineForeignKeys(DdlWrite write, CreateTable createTable) throws IOException { + protected void writeInlineForeignKeys(DdlWrite write, CreateTable createTable) { for (Column column : createTable.getColumn()) { String references = column.getReferences(); if (hasValue(references)) { @@ -397,19 +396,19 @@ public class BaseTableDdl implements TableDdl { writeInlineCompoundForeignKeys(write, createTable); } - protected void writeInlineForeignKey(DdlWrite write, Column column) throws IOException { + protected void writeInlineForeignKey(DdlWrite write, Column column) { String fkConstraint = platformDdl.tableInlineForeignKey(new WriteForeignKey(null, column)); write.apply().append(",").newLine().append(" ").append(fkConstraint); } - protected void writeInlineCompoundForeignKeys(DdlWrite write, CreateTable createTable) throws IOException { + protected void writeInlineCompoundForeignKeys(DdlWrite write, CreateTable createTable) { for (ForeignKey key : createTable.getForeignKey()) { String fkConstraint = platformDdl.tableInlineForeignKey(new WriteForeignKey(null, key)); write.apply().append(",").newLine().append(" ").append(fkConstraint); } } - protected void writeAddForeignKeys(DdlWrite write, CreateTable createTable) throws IOException { + protected void writeAddForeignKeys(DdlWrite write, CreateTable createTable) { for (Column column : createTable.getColumn()) { String references = column.getReferences(); if (hasValue(references)) { @@ -419,17 +418,17 @@ public class BaseTableDdl implements TableDdl { writeAddCompoundForeignKeys(write, createTable); } - protected void writeAddCompoundForeignKeys(DdlWrite write, CreateTable createTable) throws IOException { + protected void writeAddCompoundForeignKeys(DdlWrite write, CreateTable createTable) { for (ForeignKey key : createTable.getForeignKey()) { writeForeignKey(write, new WriteForeignKey(createTable.getName(), key)); } } - protected void writeForeignKey(DdlWrite write, String tableName, Column column) throws IOException { + protected void writeForeignKey(DdlWrite write, String tableName, Column column) { writeForeignKey(write, new WriteForeignKey(tableName, column)); } - protected void writeForeignKey(DdlWrite write, WriteForeignKey request) throws IOException { + protected void writeForeignKey(DdlWrite write, WriteForeignKey request) { DdlBuffer fkeyBuffer = write.applyForeignKeys(); String tableName = lowerTableName(request.table()); if (request.indexName() != null) { @@ -446,11 +445,11 @@ public class BaseTableDdl implements TableDdl { write.dropAllForeignKeys().end(); } - protected void alterTableAddForeignKey(DdlOptions options, DdlBuffer buffer, WriteForeignKey request) throws IOException { + protected void alterTableAddForeignKey(DdlOptions options, DdlBuffer buffer, WriteForeignKey request) { buffer.appendStatement(platformDdl.alterTableAddForeignKey(options, request)); } - protected void appendColumns(String[] columns, DdlBuffer buffer) throws IOException { + protected void appendColumns(String[] columns, DdlBuffer buffer) { buffer.append(" ("); for (int i = 0; i < columns.length; i++) { if (i > 0) { @@ -464,18 +463,18 @@ public class BaseTableDdl implements TableDdl { /** * Add 'drop table' statement to the buffer. */ - protected void dropTable(DdlBuffer buffer, String tableName) throws IOException { + protected void dropTable(DdlBuffer buffer, String tableName) { buffer.appendStatement(platformDdl.dropTable(tableName)); } /** * Add 'drop sequence' statement to the buffer. */ - protected void dropSequence(DdlBuffer buffer, String sequenceName) throws IOException { + protected void dropSequence(DdlBuffer buffer, String sequenceName) { buffer.appendStatement(platformDdl.dropSequence(sequenceName)); } - protected void writeCompoundUniqueConstraints(DdlBuffer apply, CreateTable createTable) throws IOException { + protected void writeCompoundUniqueConstraints(DdlBuffer apply, CreateTable createTable) { boolean inlineUniqueWhenNull = platformDdl.isInlineUniqueWhenNullable(); for (UniqueConstraint uniqueConstraint : createTable.getUniqueConstraint()) { if (platformInclude(uniqueConstraint.getPlatforms())) { @@ -498,7 +497,7 @@ public class BaseTableDdl implements TableDdl { /** * Write the unique constraints inline with the create table statement. */ - protected void writeUniqueConstraints(DdlBuffer apply, CreateTable createTable) throws IOException { + protected void writeUniqueConstraints(DdlBuffer apply, CreateTable createTable) { boolean inlineUniqueWhenNullable = platformDdl.isInlineUniqueWhenNullable(); List columns = new WriteUniqueConstraint(createTable.getColumn()).uniqueKeys(); for (Column column : columns) { @@ -515,7 +514,7 @@ public class BaseTableDdl implements TableDdl { /** * Write the unique constraint inline with the create table statement. */ - protected void inlineUniqueConstraintSingle(DdlBuffer buffer, Column column) throws IOException { + protected void inlineUniqueConstraintSingle(DdlBuffer buffer, Column column) { String uqName = column.getUnique(); if (uqName == null) { uqName = column.getUniqueOneToOne(); @@ -530,7 +529,7 @@ public class BaseTableDdl implements TableDdl { /** * Write the primary key constraint inline with the create table statement. */ - protected void writePrimaryKeyConstraint(DdlBuffer buffer, String pkName, String[] pkColumns) throws IOException { + protected void writePrimaryKeyConstraint(DdlBuffer buffer, String pkName, String[] pkColumns) { buffer.append(",").newLine(); buffer.append(" constraint ").append(pkName).append(" primary key"); appendColumns(pkColumns, buffer); @@ -575,7 +574,7 @@ public class BaseTableDdl implements TableDdl { } @Override - public void generate(DdlWrite writer, CreateIndex index) throws IOException { + public void generate(DdlWrite writer, CreateIndex index) { if (platformInclude(index.getPlatforms())) { writer.apply().appendStatement(platformDdl.createIndex(new WriteCreateIndex(index))); writer.dropAll().appendStatement(platformDdl.dropIndex(index.getIndexName(), index.getTableName(), Boolean.TRUE.equals(index.isConcurrent()))); @@ -583,14 +582,14 @@ public class BaseTableDdl implements TableDdl { } @Override - public void generate(DdlWrite writer, DropIndex dropIndex) throws IOException { + public void generate(DdlWrite writer, DropIndex dropIndex) { if (platformInclude(dropIndex.getPlatforms())) { writer.apply().appendStatement(platformDdl.dropIndex(dropIndex.getIndexName(), dropIndex.getTableName(), Boolean.TRUE.equals(dropIndex.isConcurrent()))); } } @Override - public void generate(DdlWrite writer, AddUniqueConstraint constraint) throws IOException { + public void generate(DdlWrite writer, AddUniqueConstraint constraint) { if (platformInclude(constraint.getPlatforms())) { if (DdlHelp.isDropConstraint(constraint.getColumnNames())) { writer.apply().appendStatement(platformDdl.alterTableDropUniqueConstraint(constraint.getTableName(), constraint.getConstraintName())); @@ -604,7 +603,7 @@ public class BaseTableDdl implements TableDdl { } @Override - public void generate(DdlWrite writer, AlterForeignKey alterForeignKey) throws IOException { + public void generate(DdlWrite writer, AlterForeignKey alterForeignKey) { if (DdlHelp.isDropForeignKey(alterForeignKey.getColumnNames())) { writer.apply().appendStatement(platformDdl.alterTableDropForeignKey(alterForeignKey.getTableName(), alterForeignKey.getName())); } else { @@ -616,7 +615,7 @@ public class BaseTableDdl implements TableDdl { * Add add history table DDL. */ @Override - public void generate(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void generate(DdlWrite writer, AddHistoryTable addHistoryTable) { platformDdl.addHistoryTable(writer, addHistoryTable); } @@ -624,12 +623,12 @@ public class BaseTableDdl implements TableDdl { * Add drop history table DDL. */ @Override - public void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) { platformDdl.dropHistoryTable(writer, dropHistoryTable); } @Override - public void generateProlog(DdlWrite write) throws IOException { + public void generateProlog(DdlWrite write) { platformDdl.generateProlog(write); } @@ -637,7 +636,7 @@ public class BaseTableDdl implements TableDdl { * Called at the end to generate additional ddl such as regenerate history triggers. */ @Override - public void generateEpilog(DdlWrite write) throws IOException { + public void generateEpilog(DdlWrite write) { if (!regenerateHistoryTriggers.isEmpty()) { platformDdl.lockTables(write.applyHistoryTrigger(), regenerateHistoryTriggers.keySet()); @@ -651,7 +650,7 @@ public class BaseTableDdl implements TableDdl { } @Override - public void generate(DdlWrite writer, AddTableComment addTableComment) throws IOException { + public void generate(DdlWrite writer, AddTableComment addTableComment) { if (hasValue(addTableComment.getComment())) { platformDdl.addTableComment(writer.apply(), addTableComment.getName(), addTableComment.getComment()); } @@ -661,7 +660,7 @@ public class BaseTableDdl implements TableDdl { * Add add column DDL. */ @Override - public void generate(DdlWrite writer, AddColumn addColumn) throws IOException { + public void generate(DdlWrite writer, AddColumn addColumn) { String tableName = addColumn.getTableName(); List columns = addColumn.getColumn(); for (Column column : columns) { @@ -687,7 +686,7 @@ public class BaseTableDdl implements TableDdl { * Add drop table DDL. */ @Override - public void generate(DdlWrite writer, DropTable dropTable) throws IOException { + public void generate(DdlWrite writer, DropTable dropTable) { dropTable(writer.apply(), dropTable.getName()); if (hasValue(dropTable.getSequenceCol()) && platformDdl.getPlatform().getDbIdentity().isSupportsSequence()) { @@ -703,7 +702,7 @@ public class BaseTableDdl implements TableDdl { * Add drop column DDL. */ @Override - public void generate(DdlWrite writer, DropColumn dropColumn) throws IOException { + public void generate(DdlWrite writer, DropColumn dropColumn) { String tableName = dropColumn.getTableName(); alterTableDropColumn(writer.apply(), tableName, dropColumn.getColumnName()); @@ -719,7 +718,7 @@ public class BaseTableDdl implements TableDdl { * Add all the appropriate changes based on the column changes. */ @Override - public void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException { + public void generate(DdlWrite writer, AlterColumn alterColumn) { DdlMigrationHelp ddlHelp = new DdlMigrationHelp(alterColumn); ddlHelp.writeBefore(writer.apply()); @@ -781,7 +780,7 @@ public class BaseTableDdl implements TableDdl { ddlHelp.writeAfter(writer.apply()); } - private void alterColumnComment(DdlWrite writer, AlterColumn alterColumn) throws IOException { + private void alterColumnComment(DdlWrite writer, AlterColumn alterColumn) { platformDdl.addColumnComment(writer.apply(), alterColumn.getTableName(), alterColumn.getColumnName(), alterColumn.getComment()); } @@ -804,7 +803,7 @@ public class BaseTableDdl implements TableDdl { * This is mysql specific - alter all the base attributes of the column together. * Will be called, if there is a type, dbdefault or notnull change. */ - protected void alterColumnBaseAttributes(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnBaseAttributes(DdlWrite writer, AlterColumn alter) { String ddl = platformDdl.alterColumnBaseAttributes(alter); if (hasValue(ddl)) { writer.apply().appendStatement(ddl); @@ -824,23 +823,23 @@ public class BaseTableDdl implements TableDdl { } } - protected void alterColumnDefaultValue(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnDefaultValue(DdlWrite writer, AlterColumn alter) { writer.apply().appendStatement(platformDdl.alterColumnDefaultValue(alter.getTableName(), alter.getColumnName(), alter.getDefaultValue())); } - protected void dropCheckConstraint(DdlWrite writer, AlterColumn alter, String constraintName) throws IOException { + protected void dropCheckConstraint(DdlWrite writer, AlterColumn alter, String constraintName) { writer.apply().appendStatement(platformDdl.alterTableDropConstraint(alter.getTableName(), constraintName)); } - protected void addCheckConstraint(DdlWrite writer, AlterColumn alter) throws IOException { + protected void addCheckConstraint(DdlWrite writer, AlterColumn alter) { writer.apply().appendStatement(platformDdl.alterTableAddCheckConstraint(alter.getTableName(), alter.getCheckConstraintName(), alter.getCheckConstraint())); } - protected void alterColumnNotnull(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnNotnull(DdlWrite writer, AlterColumn alter) { writer.apply().appendStatement(platformDdl.alterColumnNotnull(alter.getTableName(), alter.getColumnName(), alter.isNotnull())); } - protected void alterColumnType(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnType(DdlWrite writer, AlterColumn alter) { String ddl = platformDdl.alterColumnType(alter.getTableName(), alter.getColumnName(), alter.getType()); if (hasValue(ddl)) { writer.apply().appendStatement(ddl); @@ -853,27 +852,27 @@ public class BaseTableDdl implements TableDdl { } } - protected void alterColumnAddForeignKey(DdlWrite writer, AlterColumn alterColumn) throws IOException { + protected void alterColumnAddForeignKey(DdlWrite writer, AlterColumn alterColumn) { alterTableAddForeignKey(writer.getOptions(), writer.apply(), new WriteForeignKey(alterColumn)); } - protected void alterColumnDropForeignKey(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnDropForeignKey(DdlWrite writer, AlterColumn alter) { writer.apply().appendStatement(platformDdl.alterTableDropForeignKey(alter.getTableName(), alter.getDropForeignKey())); } - protected void alterColumnDropUniqueConstraint(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnDropUniqueConstraint(DdlWrite writer, AlterColumn alter) { writer.apply().appendStatement(platformDdl.alterTableDropUniqueConstraint(alter.getTableName(), alter.getDropUnique())); } - protected void alterColumnAddUniqueOneToOneConstraint(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnAddUniqueOneToOneConstraint(DdlWrite writer, AlterColumn alter) { addUniqueConstraint(writer, alter, alter.getUniqueOneToOne()); } - protected void alterColumnAddUniqueConstraint(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnAddUniqueConstraint(DdlWrite writer, AlterColumn alter) { addUniqueConstraint(writer, alter, alter.getUnique()); } - protected void addUniqueConstraint(DdlWrite writer, AlterColumn alter, String uqName) throws IOException { + protected void addUniqueConstraint(DdlWrite writer, AlterColumn alter, String uqName) { String[] cols = {alter.getColumnName()}; boolean notNull = alter.isNotnull() != null ? alter.isNotnull() : Boolean.TRUE.equals(alter.isNotnull()); writer.apply().appendStatement(platformDdl.alterTableAddUniqueConstraint(alter.getTableName(), uqName, cols, notNull ? null : cols)); @@ -882,11 +881,11 @@ public class BaseTableDdl implements TableDdl { } - protected void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) throws IOException { + protected void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { platformDdl.alterTableDropColumn(buffer, tableName, columnName); } - protected void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, boolean withHistory) throws IOException { + protected void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, boolean withHistory) { DdlMigrationHelp help = new DdlMigrationHelp(tableName, column, withHistory); if (!onHistoryTable) { help.writeBefore(buffer); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java index 97f3bf8c7..2c3e2d841 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java @@ -6,8 +6,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler; import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions; -import java.io.IOException; - public class ClickHouseDdl extends PlatformDdl { private static final String LOG_TABLE = "ENGINE = Log()"; @@ -32,7 +30,7 @@ public class ClickHouseDdl extends PlatformDdl { * Add an table storage engine to the create table statement. */ @Override - public void tableStorageEngine(DdlBuffer apply, String storageEngine) throws IOException { + public void tableStorageEngine(DdlBuffer apply, String storageEngine) { if (storageEngine == null) { // default to Log() table but really should all be explicit (need arguments for MergeTree etc) storageEngine = LOG_TABLE; diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java index 58bed4505..5b34a08ea 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java @@ -9,8 +9,6 @@ import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MColumn; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; -import java.util.Collection; import java.util.List; /** @@ -49,7 +47,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } @Override - public void updateTriggers(DdlWrite writer, HistoryTableUpdate update) throws IOException { + public void updateTriggers(DdlWrite writer, HistoryTableUpdate update) { MTable table = writer.getTable(update.getBaseTable()); if (table == null) { @@ -61,13 +59,13 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { /** * Replace the existing triggers/stored procedures/views for history table support given the included columns. */ - protected abstract void updateHistoryTriggers(DbTriggerUpdate triggerUpdate) throws IOException; + protected abstract void updateHistoryTriggers(DbTriggerUpdate triggerUpdate); /** * Process the HistoryTableUpdate which can result in changes to the apply, rollback * and drop scripts. */ - protected void updateTriggers(DdlWrite writer, MTable table, HistoryTableUpdate update) throws IOException { + protected void updateTriggers(DdlWrite writer, MTable table, HistoryTableUpdate update) { writer.applyHistoryTrigger().append("-- changes: ").append(update.description()).newLine(); @@ -83,7 +81,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } @Override - public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { String baseTable = dropHistoryTable.getBaseTable(); @@ -93,7 +91,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } @Override - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { String baseTable = addHistoryTable.getBaseTable(); MTable table = writer.getTable(baseTable); @@ -105,7 +103,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } @Override - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { String baseTable = table.getName(); String whenCreatedColumn = table.getWhenCreatedColumn(); @@ -118,11 +116,11 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { createTriggers(writer, table); } - protected abstract void createTriggers(DdlWrite writer, MTable table) throws IOException; + protected abstract void createTriggers(DdlWrite writer, MTable table); - protected abstract void dropTriggers(DdlBuffer buffer, String baseTable) throws IOException; + protected abstract void dropTriggers(DdlBuffer buffer, String baseTable); - protected void createStoredFunction(DdlWrite writer, MTable table) throws IOException { + protected void createStoredFunction(DdlWrite writer, MTable table) { // do nothing } @@ -150,7 +148,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { return normalise(baseTableName) + "_history_del"; } - protected void addHistoryTable(DdlWrite writer, MTable table, String whenCreatedColumn) throws IOException { + protected void addHistoryTable(DdlWrite writer, MTable table, String whenCreatedColumn) { String baseTableName = table.getName(); @@ -161,7 +159,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { createWithHistoryView(apply, baseTableName); } - protected void addSysPeriodColumns(DdlBuffer apply, String baseTableName, String whenCreatedColumn) throws IOException { + protected void addSysPeriodColumns(DdlBuffer apply, String baseTableName, String whenCreatedColumn) { apply.append("alter table ").append(baseTableName).append(" add column ") .append(sysPeriodStart).append(" ").append(sysPeriodType).append(" default ").append(now).endOfStatement(); @@ -173,12 +171,12 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } } - protected void createHistoryTable(DdlBuffer apply, MTable table) throws IOException { + protected void createHistoryTable(DdlBuffer apply, MTable table) { createHistoryTableAs(apply, table); createHistoryTableWithPeriod(apply); } - protected void createHistoryTableAs(DdlBuffer apply, MTable table) throws IOException { + protected void createHistoryTableAs(DdlBuffer apply, MTable table) { apply.append(platformDdl.getCreateTableCommandPrefix()).append(" ").append(table.getName()).append(historySuffix).append("(").newLine(); for (MColumn column : table.allColumns()) { if (!column.isDraftOnly()) { @@ -188,7 +186,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } } - protected void createHistoryTableWithPeriod(DdlBuffer apply) throws IOException { + protected void createHistoryTableWithPeriod(DdlBuffer apply) { writeColumnDefinition(apply, sysPeriodStart, sysPeriodType); apply.append(",").newLine(); writeColumnDefinition(apply, sysPeriodEnd, sysPeriodType); @@ -198,7 +196,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { /** * Write the column definition to the create table statement. */ - protected void writeColumnDefinition(DdlBuffer buffer, String columnName, String type) throws IOException { + protected void writeColumnDefinition(DdlBuffer buffer, String columnName, String type) { String platformType = platformDdl.convert(type); buffer.append(" "); @@ -206,7 +204,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { buffer.append(platformType); } - protected void createWithHistoryView(DdlBuffer apply, String baseTableName) throws IOException { + protected void createWithHistoryView(DdlBuffer apply, String baseTableName) { apply .append("create view ").append(baseTableName).append(viewSuffix) @@ -220,7 +218,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { * For postgres/h2/mysql we need to drop and recreate the view. Well, we could add columns to the end of the view * but otherwise we need to drop and create it. */ - protected void recreateHistoryView(DbTriggerUpdate update) throws IOException { + protected void recreateHistoryView(DbTriggerUpdate update) { DdlBuffer buffer = update.dropDependencyBuffer(); // we need to drop the view early/first before any changes to the tables etc @@ -230,24 +228,24 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { createWithHistoryView(update.historyViewBuffer(), update.getBaseTable()); } - protected void appendSysPeriodColumns(DdlBuffer apply, String prefix) throws IOException { + protected void appendSysPeriodColumns(DdlBuffer apply, String prefix) { appendColumnName(apply, prefix, sysPeriodStart); appendColumnName(apply, prefix, sysPeriodEnd); } - protected void dropHistoryTableEtc(DdlBuffer buffer, String baseTableName) throws IOException { + protected void dropHistoryTableEtc(DdlBuffer buffer, String baseTableName) { buffer.append("drop view ").append(baseTableName).append(viewSuffix).endOfStatement(); dropSysPeriodColumns(buffer, baseTableName); buffer.append("drop table ").append(baseTableName).append(historySuffix).endOfStatement().end(); } - protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) throws IOException { + protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) { platformDdl.alterTableDropColumn(buffer, baseTableName, sysPeriodStart); platformDdl.alterTableDropColumn(buffer, baseTableName, sysPeriodEnd); } - protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) throws IOException { + protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) { buffer.append(" insert into ").append(historyTable).append(" (").append(sysPeriodStart).append(",").append(sysPeriodEnd).append(","); appendColumnNames(buffer, columns, ""); @@ -256,7 +254,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { buffer.append(");").newLine(); } - void appendColumnNames(DdlBuffer buffer, List columns, String columnPrefix) throws IOException { + void appendColumnNames(DdlBuffer buffer, List columns, String columnPrefix) { for (int i = 0; i < columns.size(); i++) { if (i > 0) { buffer.append(", "); @@ -269,7 +267,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { /** * Append a single column to the buffer if it is not null. */ - void appendColumnName(DdlBuffer buffer, String prefix, String columnName) throws IOException { + void appendColumnName(DdlBuffer buffer, String prefix, String columnName) { if (columnName != null) { buffer.append(prefix).append(columnName); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java index 5bd58adeb..55ffdd748 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java @@ -4,8 +4,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * H2 history support using DB triggers to maintain a history table. */ @@ -20,26 +18,26 @@ public class H2HistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void dropTriggers(DdlBuffer buffer, String baseTable) throws IOException { + protected void dropTriggers(DdlBuffer buffer, String baseTable) { buffer.append("drop trigger ").append(updateTriggerName(baseTable)).endOfStatement(); } @Override - protected void createTriggers(DdlWrite writer, MTable table) throws IOException { + protected void createTriggers(DdlWrite writer, MTable table) { String baseTableName = table.getName(); DdlBuffer apply = writer.applyHistoryTrigger(); addCreateTrigger(apply, updateTriggerName(baseTableName), baseTableName); } @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) throws IOException { + protected void updateHistoryTriggers(DbTriggerUpdate update) { recreateHistoryView(update); DdlBuffer buffer = update.historyTriggerBuffer(); dropTriggers(buffer, update.getBaseTable()); addCreateTrigger(buffer, updateTriggerName(update.getBaseTable()), update.getBaseTable()); } - private void addCreateTrigger(DdlBuffer apply, String triggerName, String baseTable) throws IOException { + private void addCreateTrigger(DdlBuffer apply, String triggerName, String baseTable) { // Note that this does not take into account the historyTable name (excepts _history suffix) and // does not take into account excluded columns (all columns included in history) apply diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java index 872fc3930..b1fbd08a8 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java @@ -3,8 +3,6 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import java.io.IOException; - public class HanaColumnStoreDdl extends AbstractHanaDdl { public HanaColumnStoreDdl(DatabasePlatform platform) { @@ -31,20 +29,16 @@ public class HanaColumnStoreDdl extends AbstractHanaDdl { @Override public String dropIndex(String indexName, String tableName, boolean concurrent) { - DdlBuffer buffer = new BaseDdlBuffer(null); - try { - buffer.append("delimiter $$").newLine(); - buffer.append("do").newLine(); - buffer.append("begin").newLine(); - buffer.append("declare exit handler for sql_error_code 261 begin end").endOfStatement(); - buffer.append("exec '").append(dropIndexIfExists).append(maxConstraintName(indexName)).append("'") - .endOfStatement(); - buffer.append("end").endOfStatement(); - buffer.append("$$"); - return buffer.getBuffer(); - } catch (IOException e) { - throw new RuntimeException(e); - } + DdlBuffer buffer = new BaseDdlBuffer(); + buffer.append("delimiter $$").newLine(); + buffer.append("do").newLine(); + buffer.append("begin").newLine(); + buffer.append("declare exit handler for sql_error_code 261 begin end").endOfStatement(); + buffer.append("exec '").append(dropIndexIfExists).append(maxConstraintName(indexName)).append("'") + .endOfStatement(); + buffer.append("end").endOfStatement(); + buffer.append("$$"); + return buffer.getBuffer(); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java index 3624fa1da..94432fe38 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java @@ -8,7 +8,6 @@ import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MColumn; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; import java.util.Collection; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -32,7 +31,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } @Override - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { String tableName = table.getName(); String historyTableName = tableName + historySuffix; DdlBuffer apply = writer.applyHistoryView(); @@ -73,12 +72,12 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } @Override - public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { dropHistoryTable(writer.applyDropDependencies(), dropHistoryTable.getBaseTable(), dropHistoryTable.getBaseTable() + historySuffix); } - protected void dropHistoryTable(DdlBuffer apply, String baseTable, String historyTable) throws IOException { + protected void dropHistoryTable(DdlBuffer apply, String baseTable, String historyTable) { // disable system versioning disableSystemVersioning(apply, baseTable); @@ -93,7 +92,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } @Override - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { MTable table = writer.getTable(addHistoryTable.getBaseTable()); if (table == null) { throw new IllegalStateException("MTable " + addHistoryTable.getBaseTable() + " not found in writer? (required for history DDL)"); @@ -107,7 +106,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } protected void writeColumnDefinition(DdlBuffer buffer, String columnName, String type, String defaultValue, - boolean isNotNull, String generated) throws IOException { + boolean isNotNull, String generated) { String platformType = platformDdl.convert(type); buffer.append(" ").append(platformDdl.lowerColumnName(columnName)); @@ -123,11 +122,11 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } } - public void disableSystemVersioning(DdlBuffer apply, String tableName) throws IOException { + public void disableSystemVersioning(DdlBuffer apply, String tableName) { disableSystemVersioning(apply, tableName, false); } - public void disableSystemVersioning(DdlBuffer apply, String tableName, boolean uniqueStatement) throws IOException { + public void disableSystemVersioning(DdlBuffer apply, String tableName, boolean uniqueStatement) { apply.append("alter table ").append(tableName).append(" drop system versioning"); if (uniqueStatement) { // needed for the DB migration test to prevent the statement from being filtered @@ -138,7 +137,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } public void enableSystemVersioning(DdlBuffer apply, String tableName, String historyTableName, boolean validated, - boolean uniqueStatement) throws IOException { + boolean uniqueStatement) { apply.append("alter table ").append(tableName).append(" add system versioning history table ").append(historyTableName); if (!validated) { apply.append(" not validated"); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java index 341fe9517..f15d7c718 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java @@ -9,7 +9,6 @@ import io.ebeaninternal.dbmigration.migration.Column; import io.ebeaninternal.dbmigration.migration.DropColumn; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; import java.util.List; public class HanaTableDdl extends BaseTableDdl { @@ -29,12 +28,12 @@ public class HanaTableDdl extends BaseTableDdl { } @Override - protected void alterColumnDefaultValue(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnDefaultValue(DdlWrite writer, AlterColumn alter) { // done in alterColumnBaseAttributes } @Override - public void generate(DdlWrite writer, AddColumn addColumn) throws IOException { + public void generate(DdlWrite writer, AddColumn addColumn) { String tableName = addColumn.getTableName(); MTable table = writer.getTable(tableName); if (table == null) { @@ -63,7 +62,7 @@ public class HanaTableDdl extends BaseTableDdl { } @Override - public void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException { + public void generate(DdlWrite writer, AlterColumn alterColumn) { String tableName = alterColumn.getTableName(); MTable table = writer.getTable(tableName); if (table == null) { @@ -103,7 +102,7 @@ public class HanaTableDdl extends BaseTableDdl { } @Override - public void generate(DdlWrite writer, DropColumn dropColumn) throws IOException { + public void generate(DdlWrite writer, DropColumn dropColumn) { String tableName = dropColumn.getTableName(); MTable table = writer.getTable(tableName); if (table == null) { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java index 3fbdfad61..0795ddd75 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java @@ -7,8 +7,6 @@ import io.ebeaninternal.dbmigration.migration.AddHistoryTable; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * History DDL for MariaDB. */ @@ -20,12 +18,12 @@ public class MariaDbHistoryDdl implements PlatformHistoryDdl { } @Override - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { String baseTable = table.getName(); enableSystemVersioning(writer, baseTable); } - private void enableSystemVersioning(DdlWrite writer, String baseTable) throws IOException { + private void enableSystemVersioning(DdlWrite writer, String baseTable) { DdlBuffer apply = writer.applyHistoryView(); apply.append("alter table ").append(baseTable).append(" add system versioning").endOfStatement(); @@ -34,14 +32,14 @@ public class MariaDbHistoryDdl implements PlatformHistoryDdl { } @Override - public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { String baseTable = dropHistoryTable.getBaseTable(); DdlBuffer apply = writer.applyHistoryView(); apply.append("alter table ").append(baseTable).append(" drop system versioning").endOfStatement(); } @Override - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { String baseTable = addHistoryTable.getBaseTable(); enableSystemVersioning(writer, baseTable); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java index c772a30aa..91a3760c2 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java @@ -6,7 +6,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.migration.AlterColumn; import io.ebeaninternal.dbmigration.migration.Column; -import java.io.IOException; import java.util.Collection; /** @@ -38,7 +37,7 @@ public class MySqlDdl extends PlatformDdl { } @Override - public void alterTableDropColumn(final DdlBuffer buffer, final String tableName, final String columnName) throws IOException { + public void alterTableDropColumn(final DdlBuffer buffer, final String tableName, final String columnName) { if (this.useMigrationStoredProcedures) { buffer.append("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')").endOfStatement(); } else { @@ -127,7 +126,7 @@ public class MySqlDdl extends PlatformDdl { } @Override - protected void writeColumnDefinition(DdlBuffer buffer, Column column, DdlIdentity identity) throws IOException { + protected void writeColumnDefinition(DdlBuffer buffer, Column column, DdlIdentity identity) { super.writeColumnDefinition(buffer, column, identity); String comment = column.getComment(); if (!StringHelper.isNull(comment)) { @@ -140,7 +139,7 @@ public class MySqlDdl extends PlatformDdl { } @Override - public void inlineTableComment(DdlBuffer apply, String tableComment) throws IOException { + public void inlineTableComment(DdlBuffer apply, String tableComment) { if (tableComment.length() > 1000) { tableComment = tableComment.substring(0, 1000); } @@ -151,7 +150,7 @@ public class MySqlDdl extends PlatformDdl { * Add table comment as a separate statement (from the create table statement). */ @Override - public void addTableComment(DdlBuffer apply, String tableName, String tableComment) throws IOException { + public void addTableComment(DdlBuffer apply, String tableName, String tableComment) { if (DdlHelp.isDropComment(tableComment)) { tableComment = ""; } @@ -168,7 +167,7 @@ public class MySqlDdl extends PlatformDdl { * Locks all tables for triggers that have to be updated. */ @Override - public void lockTables(DdlBuffer buffer, Collection tables) throws IOException { + public void lockTables(DdlBuffer buffer, Collection tables) { if (!tables.isEmpty()) { buffer.append("lock tables "); int i = 0; @@ -187,7 +186,7 @@ public class MySqlDdl extends PlatformDdl { * Unlocks all tables for triggers that have to be updated. */ @Override - public void unlockTables(DdlBuffer buffer, Collection tables) throws IOException { + public void unlockTables(DdlBuffer buffer, Collection tables) { buffer.append("unlock tables").endOfStatement(); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java index 16d07136e..300e2ec8c 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java @@ -4,8 +4,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * MySql history support using DB triggers to maintain a history table. */ @@ -15,13 +13,13 @@ public class MySqlHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void dropTriggers(DdlBuffer buffer, String baseTable) throws IOException { + protected void dropTriggers(DdlBuffer buffer, String baseTable) { buffer.append("drop trigger ").append(updateTriggerName(baseTable)).endOfStatement(); buffer.append("drop trigger ").append(deleteTriggerName(baseTable)).endOfStatement(); } @Override - protected void createTriggers(DdlWrite writer, MTable table) throws IOException { + protected void createTriggers(DdlWrite writer, MTable table) { DbTriggerUpdate update = createDbTriggerUpdate(writer, table); @@ -30,7 +28,7 @@ public class MySqlHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) throws IOException { + protected void updateHistoryTriggers(DbTriggerUpdate update) { recreateHistoryView(update); @@ -42,7 +40,7 @@ public class MySqlHistoryDdl extends DbTriggerBasedHistoryDdl { addBeforeDelete(deleteTriggerName(baseTable), update); } - private void addBeforeUpdate(String triggerName, DbTriggerUpdate update) throws IOException { + private void addBeforeUpdate(String triggerName, DbTriggerUpdate update) { DdlBuffer apply = update.historyTriggerBuffer(); apply @@ -55,7 +53,7 @@ public class MySqlHistoryDdl extends DbTriggerBasedHistoryDdl { .append("end$$").newLine(); } - private void addBeforeDelete(String triggerName, DbTriggerUpdate update) throws IOException { + private void addBeforeDelete(String triggerName, DbTriggerUpdate update) { DdlBuffer apply = update.historyTriggerBuffer(); apply diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java index fbaab9be8..f479ec75d 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java @@ -6,8 +6,6 @@ import io.ebeaninternal.dbmigration.migration.AddHistoryTable; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * Default history implementation that does nothing. Needs to be replaced * with an appropriate implementation for the given database platform. @@ -20,7 +18,7 @@ public class NoHistorySupportDdl implements PlatformHistoryDdl { } @Override - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { // does nothing } @@ -30,7 +28,7 @@ public class NoHistorySupportDdl implements PlatformHistoryDdl { } @Override - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { // does nothing } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java index 89d81eb9b..726f407ad 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java @@ -4,8 +4,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * NuoDB history support using DB triggers to maintain a history table. */ @@ -17,14 +15,14 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void dropTriggers(DdlBuffer buffer, String baseTable) throws IOException { + protected void dropTriggers(DdlBuffer buffer, String baseTable) { buffer.append("drop trigger ").append(updateTriggerName(baseTable)).endOfStatement(); buffer.append("drop trigger ").append(deleteTriggerName(baseTable)).endOfStatement(); } @Override - protected void createTriggers(DdlWrite writer, MTable table) throws IOException { + protected void createTriggers(DdlWrite writer, MTable table) { DbTriggerUpdate update = createDbTriggerUpdate(writer, table); @@ -33,7 +31,7 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) throws IOException { + protected void updateHistoryTriggers(DbTriggerUpdate update) { recreateHistoryView(update); @@ -45,7 +43,7 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { addBeforeDelete(deleteTriggerName(baseTable), update); } - private void addBeforeUpdate(String triggerName, DbTriggerUpdate update) throws IOException { + private void addBeforeUpdate(String triggerName, DbTriggerUpdate update) { DdlBuffer apply = update.historyTriggerBuffer(); addTriggerStart(triggerName, update, apply, " before update for each row as "); @@ -54,7 +52,7 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { addEndTrigger(apply); } - private void addBeforeDelete(String triggerName, DbTriggerUpdate update) throws IOException { + private void addBeforeDelete(String triggerName, DbTriggerUpdate update) { DdlBuffer apply = update.historyTriggerBuffer(); addTriggerStart(triggerName, update, apply, " before delete for each row as"); @@ -62,14 +60,14 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { addEndTrigger(apply); } - private void addTriggerStart(String triggerName, DbTriggerUpdate update, DdlBuffer apply, String s) throws IOException { + private void addTriggerStart(String triggerName, DbTriggerUpdate update, DdlBuffer apply, String s) { apply .append("delimiter $$").newLine() .append("create or replace trigger ").append(triggerName).append(" for ").append(update.getBaseTable()) .append(s).newLine(); } - private void addEndTrigger(DdlBuffer apply) throws IOException { + private void addEndTrigger(DdlBuffer apply) { apply.append("end_trigger") .endOfStatement() .append("$$").newLine() diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index 67a11d1e6..968dd0053 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -18,7 +18,6 @@ import io.ebeaninternal.dbmigration.migration.Column; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; import java.util.Collection; import java.util.List; import java.util.Locale; @@ -232,7 +231,7 @@ public class PlatformDdl { /** * Write all the table columns converting to platform types as necessary. */ - public void writeTableColumns(DdlBuffer apply, List columns, DdlIdentity identity) throws IOException { + public void writeTableColumns(DdlBuffer apply, List columns, DdlIdentity identity) { for (int i = 0; i < columns.size(); i++) { if (i > 0) { apply.append(","); @@ -256,7 +255,7 @@ public class PlatformDdl { /** * Write the column definition to the create table statement. */ - protected void writeColumnDefinition(DdlBuffer buffer, Column column, DdlIdentity identity) throws IOException { + protected void writeColumnDefinition(DdlBuffer buffer, Column column, DdlIdentity identity) { String columnDefn = convert(column.getType()); if (identity.useIdentity() && isTrue(column.isPrimaryKey())) { @@ -283,7 +282,7 @@ public class PlatformDdl { /** * Allow for platform overriding (e.g. ClickHouse). */ - protected void writeColumnNotNull(DdlBuffer buffer) throws IOException { + protected void writeColumnNotNull(DdlBuffer buffer) { buffer.append(" not null"); } @@ -355,28 +354,28 @@ public class PlatformDdl { /** * Add history support to this table using the platform specific mechanism. */ - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { historyDdl.createWithHistory(writer, table); } /** * Drop history support for a given table. */ - public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { historyDdl.dropHistoryTable(writer, dropHistoryTable); } /** * Add history support to an existing table. */ - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { historyDdl.addHistoryTable(writer, addHistoryTable); } /** * Regenerate the history triggers (or function) due to a column being added/dropped/excluded or included. */ - public void regenerateHistoryTriggers(DdlWrite write, HistoryTableUpdate update) throws IOException { + public void regenerateHistoryTriggers(DdlWrite write, HistoryTableUpdate update) { historyDdl.updateTriggers(write, update); } @@ -539,7 +538,7 @@ public class PlatformDdl { return buffer.toString(); } - public void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, String defaultValue) throws IOException { + public void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, String defaultValue) { String convertedType = convert(column.getType()); @@ -576,7 +575,7 @@ public class PlatformDdl { } - public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) throws IOException { + public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { buffer.append("alter table ").append(tableName).append(" ").append(dropColumn).append(" ").append(columnName) .append(dropColumnSuffix).endOfStatement(); } @@ -694,21 +693,21 @@ public class PlatformDdl { /** * Add an inline table comment to the create table statement. */ - public void inlineTableComment(DdlBuffer apply, String tableComment) throws IOException { + public void inlineTableComment(DdlBuffer apply, String tableComment) { // do nothing by default (MySql only) } /** * Add an table storage engine to the create table statement. */ - public void tableStorageEngine(DdlBuffer apply, String storageEngine) throws IOException { + public void tableStorageEngine(DdlBuffer apply, String storageEngine) { // do nothing by default } /** * Add table comment as a separate statement (from the create table statement). */ - public void addTableComment(DdlBuffer apply, String tableName, String tableComment) throws IOException { + public void addTableComment(DdlBuffer apply, String tableName, String tableComment) { if (DdlHelp.isDropComment(tableComment)) { tableComment = ""; } @@ -718,7 +717,7 @@ public class PlatformDdl { /** * Add column comment as a separate statement. */ - public void addColumnComment(DdlBuffer apply, String table, String column, String comment) throws IOException { + public void addColumnComment(DdlBuffer apply, String table, String column, String comment) { if (DdlHelp.isDropComment(comment)) { comment = ""; } @@ -728,14 +727,14 @@ public class PlatformDdl { /** * Use this to generate a prolog for each script (stored procedures) */ - public void generateProlog(DdlWrite write) throws IOException { + public void generateProlog(DdlWrite write) { } /** * Use this to generate an epilog. Will be added at the end of script */ - public void generateEpilog(DdlWrite write) throws IOException { + public void generateEpilog(DdlWrite write) { } @@ -761,14 +760,14 @@ public class PlatformDdl { /** * Mysql-specific: Locks all tables for triggers that have to be updated. */ - public void lockTables(DdlBuffer buffer, Collection tables) throws IOException { + public void lockTables(DdlBuffer buffer, Collection tables) { } /** * Mysql-specific: Unlocks all tables for triggers that have to be updated. */ - public void unlockTables(DdlBuffer buffer, Collection tables) throws IOException { + public void unlockTables(DdlBuffer buffer, Collection tables) { } @@ -787,7 +786,7 @@ public class PlatformDdl { return false; } - public void addTablePartition(DdlBuffer apply, String partitionMode, String partitionColumn) throws IOException { + public void addTablePartition(DdlBuffer apply, String partitionMode, String partitionColumn) { // only supported by postgres initially } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java index c5e93aa23..517c390e2 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java @@ -6,8 +6,6 @@ import io.ebeaninternal.dbmigration.migration.AddHistoryTable; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * Defines the implementation for adding history support to a table. */ @@ -21,20 +19,20 @@ public interface PlatformHistoryDdl { /** * Creates a new table and add history support to the table using platform specific mechanism. */ - void createWithHistory(DdlWrite writer, MTable table) throws IOException; + void createWithHistory(DdlWrite writer, MTable table); /** * Drop history support for the given table. */ - void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException; + void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable); /** * Add history support to the given table. */ - void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException; + void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable); /** * Regenerate the history triggers/stored function due to column added/dropped/included or excluded. */ - void updateTriggers(DdlWrite write, HistoryTableUpdate baseTable) throws IOException; + void updateTriggers(DdlWrite write, HistoryTableUpdate baseTable); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java index 734621a66..f9bf55276 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java @@ -3,8 +3,6 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import java.io.IOException; - /** * Postgres specific DDL. */ @@ -40,7 +38,7 @@ public class PostgresDdl extends PlatformDdl { } @Override - public void addTablePartition(DdlBuffer apply, String partitionMode, String partitionColumn) throws IOException { + public void addTablePartition(DdlBuffer apply, String partitionMode, String partitionColumn) { apply.append(" partition by range (").append(partitionColumn).append(")"); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java index b0257f96a..c5b7f23d7 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java @@ -4,7 +4,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; import java.util.List; /** @@ -21,7 +20,7 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { * Use Postgres create table like to create the history table. */ @Override - protected void createHistoryTable(DdlBuffer apply, MTable table) throws IOException { + protected void createHistoryTable(DdlBuffer apply, MTable table) { apply.append("create table ").append(table.getName()).append(historySuffix) .append("(like ").append(table.getName()).append(")").endOfStatement(); } @@ -30,7 +29,7 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { * Use Postgres range type rather than start and end timestamps. */ @Override - protected void addSysPeriodColumns(DdlBuffer apply, String baseTableName, String whenCreatedColumn) throws IOException { + protected void addSysPeriodColumns(DdlBuffer apply, String baseTableName, String whenCreatedColumn) { apply .append("alter table ").append(baseTableName) .append(" add column ").append(sysPeriod).append(" tstzrange not null default tstzrange(").append(now).append(", null)") @@ -43,17 +42,17 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void appendSysPeriodColumns(DdlBuffer apply, String prefix) throws IOException { + protected void appendSysPeriodColumns(DdlBuffer apply, String prefix) { appendColumnName(apply, prefix, sysPeriod); } @Override - protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) throws IOException { + protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) { buffer.append("alter table ").append(baseTableName).append(" drop column ").append(sysPeriod).endOfStatement(); } @Override - protected void createTriggers(DdlWrite writer, MTable table) throws IOException { + protected void createTriggers(DdlWrite writer, MTable table) { String baseTableName = table.getName(); String procedureName = procedureName(baseTableName); String triggerName = triggerName(baseTableName); @@ -66,14 +65,14 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void dropTriggers(DdlBuffer buffer, String baseTable) throws IOException { + protected void dropTriggers(DdlBuffer buffer, String baseTable) { // rollback trigger then function buffer.append("drop trigger if exists ").append(triggerName(baseTable)).append(" on ").append(baseTable).append(" cascade").endOfStatement(); buffer.append("drop function if exists ").append(procedureName(baseTable)).append("()").endOfStatement(); buffer.end(); } - protected void createOrReplaceFunction(DdlBuffer apply, String procedureName, String historyTable, List includedColumns) throws IOException { + protected void createOrReplaceFunction(DdlBuffer apply, String procedureName, String historyTable, List includedColumns) { apply .append("create or replace function ").append(procedureName).append("() returns trigger as $$").newLine(); @@ -105,7 +104,7 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void createStoredFunction(DdlWrite writer, MTable table) throws IOException { + protected void createStoredFunction(DdlWrite writer, MTable table) { String procedureName = procedureName(table.getName()); String historyTable = historyTableName(table.getName()); @@ -114,14 +113,14 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) throws IOException { + protected void updateHistoryTriggers(DbTriggerUpdate update) { String procedureName = procedureName(update.getBaseTable()); recreateHistoryView(update); createOrReplaceFunction(update.historyTriggerBuffer(), procedureName, update.getHistoryTable(), update.getColumns()); } @Override - protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) throws IOException { + protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) { buffer.append(" insert into ").append(historyTable).append(" (").append(sysPeriod).append(","); appendColumnNames(buffer, columns, ""); buffer.append(") values (tstzrange(lowerTs,upperTs), "); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java index 978aa4320..b522b6b7a 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java @@ -6,8 +6,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AlterColumn; -import java.io.IOException; - /** * MS SQL Server platform specific DDL. */ @@ -185,7 +183,7 @@ public class SqlServerDdl extends PlatformDdl { * Add table comment as a separate statement (from the create table statement). */ @Override - public void addTableComment(DdlBuffer apply, String tableName, String tableComment) throws IOException { + public void addTableComment(DdlBuffer apply, String tableName, String tableComment) { // do nothing for MS SQL Server (cause it requires stored procedures etc) } @@ -194,7 +192,7 @@ public class SqlServerDdl extends PlatformDdl { * Add column comment as a separate statement. */ @Override - public void addColumnComment(DdlBuffer apply, String table, String column, String comment) throws IOException { + public void addColumnComment(DdlBuffer apply, String table, String column, String comment) { // do nothing for MS SQL Server (cause it requires stored procedures etc) } @@ -204,7 +202,7 @@ public class SqlServerDdl extends PlatformDdl { * (constraints, default values, indices and foreign keys). That's why we call a user stored procedure here */ @Override - public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) throws IOException { + public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { buffer.append("EXEC usp_ebean_drop_column ").append(tableName).append(", ").append(columnName).endOfStatement(); } @@ -213,7 +211,7 @@ public class SqlServerDdl extends PlatformDdl { * This writes the multi value datatypes needed for MultiValueBind. */ @Override - public void generateProlog(DdlWrite write) throws IOException { + public void generateProlog(DdlWrite write) { super.generateProlog(write); generateTVPDefinitions(write, "bigint"); @@ -227,7 +225,7 @@ public class SqlServerDdl extends PlatformDdl { } - private void generateTVPDefinitions(DdlWrite write, String definition) throws IOException { + private void generateTVPDefinitions(DdlWrite write, String definition) { int pos = definition.indexOf('('); String name = pos == -1 ? definition : definition.substring(0, pos); @@ -236,12 +234,13 @@ public class SqlServerDdl extends PlatformDdl { //createTVP(write.apply(), name, definition); } - private void dropTVP(DdlBuffer ddl, String name) throws IOException { + private void dropTVP(DdlBuffer ddl, String name) { ddl.append("if exists (select name from sys.types where name = 'ebean_").append(name) .append("_tvp') drop type ebean_").append(name).append("_tvp").endOfStatement(); } - private void createTVP(DdlBuffer ddl, String name, String definition) throws IOException { + @SuppressWarnings("unused") + private void createTVP(DdlBuffer ddl, String name, String definition) { ddl.append("if not exists (select name from sys.types where name = 'ebean_").append(name) .append("_tvp') create type ebean_").append(name).append("_tvp as table (c1 ").append(definition).append(")") .endOfStatement(); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java index 4b87ff04e..f82ea20da 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java @@ -7,8 +7,6 @@ import io.ebeaninternal.dbmigration.migration.AddHistoryTable; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * @author Vilmos Nagy */ @@ -26,7 +24,7 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { } @Override - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { String baseTable = table.getName(); enableSystemVersioning(writer, baseTable); } @@ -43,7 +41,7 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { return historyTable; } - private void enableSystemVersioning(DdlWrite writer, String baseTable) throws IOException { + private void enableSystemVersioning(DdlWrite writer, String baseTable) { DdlBuffer apply = writer.applyHistoryView(); apply.append("alter table ").append(baseTable).newLine() .append(" add ").append(systemPeriodStart).append(" datetime2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(),").newLine() @@ -59,7 +57,7 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { } @Override - public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { String baseTable = dropHistoryTable.getBaseTable(); DdlBuffer apply = writer.applyHistoryView(); apply.append("-- dropping history support for ").append(baseTable).endOfStatement(); @@ -78,13 +76,13 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { } @Override - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { String baseTable = addHistoryTable.getBaseTable(); enableSystemVersioning(writer, baseTable); } @Override - public void updateTriggers(DdlWrite writer, HistoryTableUpdate baseTable) throws IOException { + public void updateTriggers(DdlWrite writer, HistoryTableUpdate baseTable) { // SQL Server 2016 does not need triggers DdlBuffer apply = writer.applyHistoryView(); String baseTableName = baseTable.getBaseTable(); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/YugabyteHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/YugabyteHistoryDdl.java index 3ba023881..204dcd762 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/YugabyteHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/YugabyteHistoryDdl.java @@ -3,12 +3,10 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - public class YugabyteHistoryDdl extends PostgresHistoryDdl { @Override - protected void createHistoryTable(DdlBuffer apply, MTable table) throws IOException { + protected void createHistoryTable(DdlBuffer apply, MTable table) { createHistoryTableAs(apply, table); writeColumnDefinition(apply, sysPeriod, "tstzrange"); apply.newLine().append(")").endOfStatement(); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java index e5c8743d2..f9b46f866 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java @@ -16,7 +16,6 @@ import io.ebeaninternal.extraddl.model.ExtraDdl; import io.ebeaninternal.extraddl.model.ExtraDdlXmlReader; import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; -import java.io.IOException; import java.util.List; import static io.ebeaninternal.api.PlatformMatch.matchPlatform; @@ -117,7 +116,7 @@ public class CurrentModel { /** * Return the 'Create' DDL. */ - public String getCreateDdl() throws IOException { + public String getCreateDdl() { createDdl(); @@ -150,7 +149,7 @@ public class CurrentModel { /** * Return the 'Drop' DDL. */ - public String getDropAllDdl() throws IOException { + public String getDropAllDdl() { createDdl(); @@ -166,7 +165,7 @@ public class CurrentModel { /** * Create all the DDL based on the changeSet. */ - private void createDdl() throws IOException { + private void createDdl() { if (write == null) { ChangeSet createChangeSet = getChangeSet(); write = new DdlWrite(new MConfiguration(), model, ddlOptions); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java index f226ebaec..aea2425d8 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java @@ -89,8 +89,9 @@ public class MTableIdentity { return IdentityType.EXTERNAL; case GENERATOR: return IdentityType.GENERATOR; + default: + return null; } - return null; } private static int toInt(BigInteger firstVal, BigInteger secVal) { diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java index d6af52969..3383898b5 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java @@ -15,7 +15,6 @@ import io.ebeaninternal.dbmigration.migration.Column; import io.ebeaninternal.dbmigration.migration.CreateTable; import org.junit.jupiter.api.Test; -import java.io.IOException; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; @@ -28,7 +27,7 @@ public class BaseTableDdlTest { private final PlatformDdl h2ddl = PlatformDdlBuilder.create(new H2Platform()); @Test - public void testAlterColumn() throws IOException { + public void testAlterColumn() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl); DdlWrite write = new DdlWrite(); @@ -46,7 +45,7 @@ public class BaseTableDdlTest { } @Test - public void testAddColumn_withTypeConversion() throws IOException { + public void testAddColumn_withTypeConversion() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, PlatformDdlBuilder.create(new OraclePlatform())); @@ -63,7 +62,7 @@ public class BaseTableDdlTest { } @Test - public void testAddColumn_withTypeConversion_clickHouseVarchar() throws IOException { + public void testAddColumn_withTypeConversion_clickHouseVarchar() { ClickHouseTableDdl ddlGen = new ClickHouseTableDdl(serverConfig, PlatformDdlBuilder.create(new ClickHousePlatform())); @@ -80,7 +79,7 @@ public class BaseTableDdlTest { } @Test - public void testAlterColumnComment() throws IOException { + public void testAlterColumnComment() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl); @@ -98,7 +97,7 @@ public class BaseTableDdlTest { } @Test - public void alterTableAddColumnWithComment() throws IOException { + public void alterTableAddColumnWithComment() { BaseTableDdl ddl = new BaseTableDdl(serverConfig, h2ddl); DdlWrite write = new DdlWrite(); Column column = new Column(); @@ -113,7 +112,7 @@ public class BaseTableDdlTest { } @Test - public void testAddTableComment() throws IOException { + public void testAddTableComment() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl); @@ -130,7 +129,7 @@ public class BaseTableDdlTest { } @Test - public void testAddTableComment_mysql() throws IOException { + public void testAddTableComment_mysql() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, PlatformDdlBuilder.create(new MySqlPlatform())); diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java index 3e467babe..64bb09d9a 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java @@ -5,14 +5,12 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.Column; import org.junit.jupiter.api.Test; -import java.io.IOException; - import static org.junit.jupiter.api.Assertions.assertEquals; public class HanaDdlTest { @Test - public void alterTableDropColumn() throws IOException { + public void alterTableDropColumn() { HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform()); DdlWrite write = new DdlWrite(); ddl.alterTableDropColumn(write.apply(), "my_table", "my_column"); @@ -20,7 +18,7 @@ public class HanaDdlTest { } @Test - public void alterTableAddColumn() throws IOException { + public void alterTableAddColumn() { HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform()); DdlWrite write = new DdlWrite(); Column column = new Column(); diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index 2ae1118f1..193385e5f 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -16,8 +16,6 @@ import io.ebeaninternal.dbmigration.migration.AlterForeignKey; import io.ebeaninternal.dbmigration.migration.Column; import org.junit.jupiter.api.Test; -import java.io.IOException; - import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; @@ -252,7 +250,7 @@ public class PlatformDdl_AlterColumnTest { } @Test - public void oracle_alterTableAddColumn() throws IOException { + public void oracle_alterTableAddColumn() { DdlWrite write = new DdlWrite(); oraDdl.alterTableAddColumn(write.apply(), "my_table", simpleColumn(), false, "1"); assertThat(write.apply().getBuffer()).isEqualTo("alter table my_table add my_column int default 1 not null;\n"); diff --git a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java index c8cd4d400..06390a20e 100644 --- a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java +++ b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java @@ -5,14 +5,11 @@ import io.ebean.Database; import io.ebean.annotation.PersistBatch; import io.ebean.annotation.Platform; import io.ebeaninternal.api.SpiEbeanServer; -import org.junit.jupiter.api.extension.ExtendWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.sql.Types; -import static org.assertj.core.api.Assertions.assertThat; - public abstract class BaseTestCase { protected static Logger logger = LoggerFactory.getLogger(BaseTestCase.class); diff --git a/ebean-ddl-generator/src/test/java/io/localtest/DbMigrationSqlServerTest.java b/ebean-ddl-generator/src/test/java/io/localtest/DbMigrationSqlServerTest.java index 3e63179ec..fbe23d7b3 100644 --- a/ebean-ddl-generator/src/test/java/io/localtest/DbMigrationSqlServerTest.java +++ b/ebean-ddl-generator/src/test/java/io/localtest/DbMigrationSqlServerTest.java @@ -3,7 +3,6 @@ package io.localtest; import io.ebean.annotation.Platform; import io.ebean.dbmigration.DbMigration; import io.ebeaninternal.api.DbOffline; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertThrows;