From 043542b2c1db4530cec54f6d12bbec68e3076dbc Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Mon, 20 Apr 2020 11:45:55 +0200 Subject: [PATCH] Remove usage of original table name when dropping primary key --- .../MigrationConfigurationModule.java | 4 +-- .../v83/DropIdFromComponentsTable.java | 3 +-- ...OnIdColumnOfActiveRuleParametersTable.java | 2 +- ...PrimaryKeyOnIdColumnOfCeActivityTable.java | 2 +- ...ropPrimaryKeyOnIdColumnOfCeQueueTable.java | 2 +- ...KeyOnIdColumnOfDuplicationsIndexTable.java | 2 +- ...DropPrimaryKeyOnIdColumnOfEventsTable.java | 2 +- ...DropPrimaryKeyOnIdColumnOfIssuesTable.java | 2 +- ...imaryKeyOnIdColumnOfNotificationTable.java | 2 +- ...ryKeyOnIdColumnOfProjectMeasuresTable.java | 2 +- ...pPrimaryKeyOnIdColumnOfSnapshotsTable.java | 2 +- ...PrimaryKeyOnIdColumnOfUserTokensTable.java | 2 +- .../v83/util/DropPrimaryKeySqlGenerator.java | 27 +++++++++---------- ...etConstraintHelper.java => SqlHelper.java} | 16 +++++++++-- .../v83/DropIdFromComponentsTableTest.java | 4 +-- ...ColumnOfActiveRuleParametersTableTest.java | 4 +-- ...aryKeyOnIdColumnOfCeActivityTableTest.java | 4 +-- ...rimaryKeyOnIdColumnOfCeQueueTableTest.java | 4 +-- ...nIdColumnOfDuplicationsIndexTableTest.java | 4 +-- ...PrimaryKeyOnIdColumnOfEventsTableTest.java | 4 +-- ...PrimaryKeyOnIdColumnOfIssuesTableTest.java | 4 +-- ...yKeyOnIdColumnOfNotificationTableTest.java | 4 +-- ...yOnIdColumnOfProjectMeasuresTableTest.java | 4 +-- ...maryKeyOnIdColumnOfSnapshotsTableTest.java | 4 +-- .../util/DropPrimaryKeySqlGeneratorTest.java | 26 +++++++++--------- 25 files changed, 73 insertions(+), 63 deletions(-) rename server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/{GetConstraintHelper.java => SqlHelper.java} (85%) diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/MigrationConfigurationModule.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/MigrationConfigurationModule.java index 8e9fe814311..765b0d6c047 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/MigrationConfigurationModule.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/MigrationConfigurationModule.java @@ -30,7 +30,7 @@ import org.sonar.server.platform.db.migration.version.v81.DbVersion81; import org.sonar.server.platform.db.migration.version.v82.DbVersion82; import org.sonar.server.platform.db.migration.version.v83.DbVersion83; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; public class MigrationConfigurationModule extends Module { @Override @@ -52,7 +52,7 @@ public class MigrationConfigurationModule extends Module { MigrationHistoryMeddler.class, // Only needed for 8.3 - GetConstraintHelper.class, + SqlHelper.class, DropPrimaryKeySqlGenerator.class); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/DropIdFromComponentsTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/DropIdFromComponentsTable.java index b5a1142d97f..37509a845aa 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/DropIdFromComponentsTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/DropIdFromComponentsTable.java @@ -27,7 +27,6 @@ import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySql public class DropIdFromComponentsTable extends DdlChange { - static final String ORIGINAL_TABLE_NAME = "projects"; static final String TABLE_NAME = "components"; static final String COLUMN_NAME = "id"; @@ -39,7 +38,7 @@ public class DropIdFromComponentsTable extends DdlChange { } @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate(TABLE_NAME, ORIGINAL_TABLE_NAME, COLUMN_NAME)); + context.execute(dropPrimaryKeySqlGenerator.generate(TABLE_NAME, COLUMN_NAME)); context.execute(new DropColumnsBuilder(getDialect(), TABLE_NAME, COLUMN_NAME).build()); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/activeruleparameters/DropPrimaryKeyOnIdColumnOfActiveRuleParametersTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/activeruleparameters/DropPrimaryKeyOnIdColumnOfActiveRuleParametersTable.java index d8c0a307642..4dd3c20d465 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/activeruleparameters/DropPrimaryKeyOnIdColumnOfActiveRuleParametersTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/activeruleparameters/DropPrimaryKeyOnIdColumnOfActiveRuleParametersTable.java @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfActiveRuleParametersTable extends DdlChan @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate("active_rule_parameters", "active_rule_parameters", "id")); + context.execute(dropPrimaryKeySqlGenerator.generate("active_rule_parameters", "id")); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/ceactivity/DropPrimaryKeyOnIdColumnOfCeActivityTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/ceactivity/DropPrimaryKeyOnIdColumnOfCeActivityTable.java index 200219294ee..0cd480a2a04 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/ceactivity/DropPrimaryKeyOnIdColumnOfCeActivityTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/ceactivity/DropPrimaryKeyOnIdColumnOfCeActivityTable.java @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfCeActivityTable extends DdlChange { @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate("ce_activity", "ce_activity","id")); + context.execute(dropPrimaryKeySqlGenerator.generate("ce_activity", "id")); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/cequeue/DropPrimaryKeyOnIdColumnOfCeQueueTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/cequeue/DropPrimaryKeyOnIdColumnOfCeQueueTable.java index 4e2a02ce6a7..955daec3936 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/cequeue/DropPrimaryKeyOnIdColumnOfCeQueueTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/cequeue/DropPrimaryKeyOnIdColumnOfCeQueueTable.java @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfCeQueueTable extends DdlChange { @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate("ce_queue", "ce_queue","id")); + context.execute(dropPrimaryKeySqlGenerator.generate("ce_queue", "id")); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/duplicationsindex/DropPrimaryKeyOnIdColumnOfDuplicationsIndexTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/duplicationsindex/DropPrimaryKeyOnIdColumnOfDuplicationsIndexTable.java index 1f6bdfe2911..bb941f85773 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/duplicationsindex/DropPrimaryKeyOnIdColumnOfDuplicationsIndexTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/duplicationsindex/DropPrimaryKeyOnIdColumnOfDuplicationsIndexTable.java @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfDuplicationsIndexTable extends DdlChange @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate("duplications_index", "duplications_index", "id")); + context.execute(dropPrimaryKeySqlGenerator.generate("duplications_index", "id")); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/events/DropPrimaryKeyOnIdColumnOfEventsTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/events/DropPrimaryKeyOnIdColumnOfEventsTable.java index 9e4228868fc..ddcb55808ab 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/events/DropPrimaryKeyOnIdColumnOfEventsTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/events/DropPrimaryKeyOnIdColumnOfEventsTable.java @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfEventsTable extends DdlChange { @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate("events", "events", "id")); + context.execute(dropPrimaryKeySqlGenerator.generate("events", "id")); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/issues/DropPrimaryKeyOnIdColumnOfIssuesTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/issues/DropPrimaryKeyOnIdColumnOfIssuesTable.java index bfef73c5af9..017c32b96ad 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/issues/DropPrimaryKeyOnIdColumnOfIssuesTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/issues/DropPrimaryKeyOnIdColumnOfIssuesTable.java @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfIssuesTable extends DdlChange { @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate("issues", "issues","id")); + context.execute(dropPrimaryKeySqlGenerator.generate("issues", "id")); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/notifications/DropPrimaryKeyOnIdColumnOfNotificationTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/notifications/DropPrimaryKeyOnIdColumnOfNotificationTable.java index 3ff0231e7c1..63260acb91d 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/notifications/DropPrimaryKeyOnIdColumnOfNotificationTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/notifications/DropPrimaryKeyOnIdColumnOfNotificationTable.java @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfNotificationTable extends DdlChange { @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate("notifications", "notifications","id")); + context.execute(dropPrimaryKeySqlGenerator.generate("notifications", "id")); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/projectmeasures/DropPrimaryKeyOnIdColumnOfProjectMeasuresTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/projectmeasures/DropPrimaryKeyOnIdColumnOfProjectMeasuresTable.java index a64d1939629..4135690e0a2 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/projectmeasures/DropPrimaryKeyOnIdColumnOfProjectMeasuresTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/projectmeasures/DropPrimaryKeyOnIdColumnOfProjectMeasuresTable.java @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfProjectMeasuresTable extends DdlChange { @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate("project_measures", "project_measures", "id")); + context.execute(dropPrimaryKeySqlGenerator.generate("project_measures", "id")); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/snapshots/issues/DropPrimaryKeyOnIdColumnOfSnapshotsTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/snapshots/issues/DropPrimaryKeyOnIdColumnOfSnapshotsTable.java index a309537d5e8..a4384573eed 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/snapshots/issues/DropPrimaryKeyOnIdColumnOfSnapshotsTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/snapshots/issues/DropPrimaryKeyOnIdColumnOfSnapshotsTable.java @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfSnapshotsTable extends DdlChange { @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate("snapshots", "snapshots","id")); + context.execute(dropPrimaryKeySqlGenerator.generate("snapshots", "id")); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/usertokens/DropPrimaryKeyOnIdColumnOfUserTokensTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/usertokens/DropPrimaryKeyOnIdColumnOfUserTokensTable.java index bc6c354d63a..df1b2443872 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/usertokens/DropPrimaryKeyOnIdColumnOfUserTokensTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/usertokens/DropPrimaryKeyOnIdColumnOfUserTokensTable.java @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfUserTokensTable extends DdlChange { @Override public void execute(Context context) throws SQLException { - context.execute(dropPrimaryKeySqlGenerator.generate("user_tokens", "user_tokens", "id")); + context.execute(dropPrimaryKeySqlGenerator.generate("user_tokens", "id")); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/DropPrimaryKeySqlGenerator.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/DropPrimaryKeySqlGenerator.java index 35c2f51d2e5..55649d09b1f 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/DropPrimaryKeySqlGenerator.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/DropPrimaryKeySqlGenerator.java @@ -32,39 +32,38 @@ import org.sonar.db.dialect.PostgreSql; import static java.lang.String.format; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; -import static java.util.Locale.ENGLISH; -import static org.sonar.server.platform.db.migration.sql.CreateTableBuilder.PRIMARY_KEY_PREFIX; public class DropPrimaryKeySqlGenerator { private final Database db; - private GetConstraintHelper getConstraintHelper; + private SqlHelper sqlHelper; - public DropPrimaryKeySqlGenerator(Database db, GetConstraintHelper getConstraintHelper) { + public DropPrimaryKeySqlGenerator(Database db, SqlHelper sqlHelper) { this.db = db; - this.getConstraintHelper = getConstraintHelper; + this.sqlHelper = sqlHelper; } - public List generate(String tableName, String originalTableName, String columnName) throws SQLException { + public List generate(String tableName, String columnName) throws SQLException { Dialect dialect = db.getDialect(); switch (dialect.getId()) { case PostgreSql.ID: - return generateForPostgresSql(tableName, originalTableName, columnName, getConstraintHelper.getPostgresSqlConstraint(tableName)); + return generateForPostgresSql(tableName, columnName, sqlHelper.getPostgresSqlConstraint(tableName)); case MsSql.ID: - return generateForMsSql(tableName, getConstraintHelper.getMssqlConstraint(tableName)); + return generateForMsSql(tableName, sqlHelper.getMssqlConstraint(tableName)); case Oracle.ID: - return generateForOracle(tableName, getConstraintHelper.getOracleConstraint(tableName)); + return generateForOracle(tableName, sqlHelper.getOracleConstraint(tableName)); case H2.ID: - return generateForH2(tableName, originalTableName, columnName); + return generateForH2(tableName, columnName, sqlHelper.getH2Constraint(tableName)); default: throw new IllegalStateException(format("Unsupported database '%s'", dialect.getId())); } } - private static List generateForPostgresSql(String tableName, String originalTableName, String column, String constraintName) { + private List generateForPostgresSql(String tableName, String column, String constraintName) throws SQLException { + String sequence = sqlHelper.getPostgresSqlSequence(tableName, column); return asList( format("ALTER TABLE %s ALTER COLUMN %s DROP DEFAULT", tableName, column), - format("DROP SEQUENCE %s_%s_seq", originalTableName, column), + format("DROP SEQUENCE %s", sequence), format("ALTER TABLE %s DROP CONSTRAINT %s", tableName, constraintName)); } @@ -79,9 +78,9 @@ public class DropPrimaryKeySqlGenerator { return singletonList(format("ALTER TABLE %s DROP CONSTRAINT %s", tableName, constraintName)); } - private static List generateForH2(String tableName, String originalTableName, String column) { + private static List generateForH2(String tableName, String column, String constraintName) { return asList( - format("ALTER TABLE %s DROP CONSTRAINT %s%s", tableName, PRIMARY_KEY_PREFIX.toUpperCase(ENGLISH), originalTableName), + format("ALTER TABLE %s DROP CONSTRAINT %s", tableName, constraintName), format("ALTER TABLE %s ALTER COLUMN %s INTEGER NOT NULL", tableName, column)); } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/GetConstraintHelper.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/SqlHelper.java similarity index 85% rename from server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/GetConstraintHelper.java rename to server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/SqlHelper.java index b223e74c16c..88b75a7f1db 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/GetConstraintHelper.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v83/util/SqlHelper.java @@ -28,11 +28,11 @@ import org.sonar.db.Database; import static java.lang.String.format; -public class GetConstraintHelper { +public class SqlHelper { private final Database db; - public GetConstraintHelper(Database db) { + public SqlHelper(Database db) { this.db = db; } @@ -67,6 +67,18 @@ public class GetConstraintHelper { } } + String getPostgresSqlSequence(String tableName, String columnName) throws SQLException { + try (Connection connection = db.getDataSource().getConnection(); + PreparedStatement pstmt = connection + .prepareStatement(format("SELECT pg_get_serial_sequence('%s', '%s')", tableName, columnName)); + ResultSet rs = pstmt.executeQuery()) { + if (rs.next()) { + return rs.getString(1); + } + throw new IllegalStateException(format("Cannot find sequence for table '%s' on column '%s'", tableName, columnName)); + } + } + String getOracleConstraint(String tableName) throws SQLException { try (Connection connection = db.getDataSource().getConnection(); PreparedStatement pstmt = connection diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/DropIdFromComponentsTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/DropIdFromComponentsTableTest.java index 96b729ae69f..fa6119e41a5 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/DropIdFromComponentsTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/DropIdFromComponentsTableTest.java @@ -25,7 +25,7 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.db.CoreDbTester; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; import static java.sql.Types.INTEGER; import static org.sonar.server.platform.db.migration.version.v83.DropIdFromComponentsTable.COLUMN_NAME; @@ -37,7 +37,7 @@ public class DropIdFromComponentsTableTest { @Rule public ExpectedException expectedException = ExpectedException.none(); - private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(dbTester.database(), new GetConstraintHelper(dbTester.database())); + private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(dbTester.database(), new SqlHelper(dbTester.database())); private DropIdFromComponentsTable underTest = new DropIdFromComponentsTable(dbTester.database(), dropPrimaryKeySqlGenerator); @Test diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/activeruleparameters/DropPrimaryKeyOnIdColumnOfActiveRuleParametersTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/activeruleparameters/DropPrimaryKeyOnIdColumnOfActiveRuleParametersTableTest.java index 7f0e3e24515..fa8b978aad1 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/activeruleparameters/DropPrimaryKeyOnIdColumnOfActiveRuleParametersTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/activeruleparameters/DropPrimaryKeyOnIdColumnOfActiveRuleParametersTableTest.java @@ -25,7 +25,7 @@ import org.junit.Test; import org.sonar.db.CoreDbTester; import org.sonar.server.platform.db.migration.step.MigrationStep; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfActiveRuleParametersTableTest { @Rule public CoreDbTester db = CoreDbTester.createForSchema(DropPrimaryKeyOnIdColumnOfActiveRuleParametersTableTest.class, "schema.sql"); - private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new GetConstraintHelper(db.database())); + private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new SqlHelper(db.database())); private MigrationStep underTest = new DropPrimaryKeyOnIdColumnOfActiveRuleParametersTable(db.database(), dropPrimaryKeySqlGenerator); diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/ceactivity/DropPrimaryKeyOnIdColumnOfCeActivityTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/ceactivity/DropPrimaryKeyOnIdColumnOfCeActivityTableTest.java index d268cca811c..dee767ffbe1 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/ceactivity/DropPrimaryKeyOnIdColumnOfCeActivityTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/ceactivity/DropPrimaryKeyOnIdColumnOfCeActivityTableTest.java @@ -25,7 +25,7 @@ import org.junit.Test; import org.sonar.db.CoreDbTester; import org.sonar.server.platform.db.migration.step.MigrationStep; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfCeActivityTableTest { @Rule public CoreDbTester db = CoreDbTester.createForSchema(DropPrimaryKeyOnIdColumnOfCeActivityTableTest.class, "schema.sql"); - private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new GetConstraintHelper(db.database())); + private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new SqlHelper(db.database())); private MigrationStep underTest = new DropPrimaryKeyOnIdColumnOfCeActivityTable(db.database(), dropPrimaryKeySqlGenerator); diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/cequeue/DropPrimaryKeyOnIdColumnOfCeQueueTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/cequeue/DropPrimaryKeyOnIdColumnOfCeQueueTableTest.java index d48c130cb9d..525f83c6612 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/cequeue/DropPrimaryKeyOnIdColumnOfCeQueueTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/cequeue/DropPrimaryKeyOnIdColumnOfCeQueueTableTest.java @@ -26,7 +26,7 @@ import org.junit.Test; import org.sonar.db.CoreDbTester; import org.sonar.server.platform.db.migration.step.MigrationStep; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -36,7 +36,7 @@ public class DropPrimaryKeyOnIdColumnOfCeQueueTableTest { @Rule public CoreDbTester db = CoreDbTester.createForSchema(DropPrimaryKeyOnIdColumnOfCeQueueTableTest.class, "schema.sql"); - private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new GetConstraintHelper(db.database())); + private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new SqlHelper(db.database())); private MigrationStep underTest = new DropPrimaryKeyOnIdColumnOfCeQueueTable(db.database(), dropPrimaryKeySqlGenerator); diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/duplicationsindex/DropPrimaryKeyOnIdColumnOfDuplicationsIndexTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/duplicationsindex/DropPrimaryKeyOnIdColumnOfDuplicationsIndexTableTest.java index 00869d195cf..8bc11e1d181 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/duplicationsindex/DropPrimaryKeyOnIdColumnOfDuplicationsIndexTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/duplicationsindex/DropPrimaryKeyOnIdColumnOfDuplicationsIndexTableTest.java @@ -25,7 +25,7 @@ import org.junit.Test; import org.sonar.db.CoreDbTester; import org.sonar.server.platform.db.migration.step.MigrationStep; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfDuplicationsIndexTableTest { @Rule public CoreDbTester db = CoreDbTester.createForSchema(DropPrimaryKeyOnIdColumnOfDuplicationsIndexTableTest.class, "schema.sql"); - private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new GetConstraintHelper(db.database())); + private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new SqlHelper(db.database())); private MigrationStep underTest = new DropPrimaryKeyOnIdColumnOfDuplicationsIndexTable(db.database(), dropPrimaryKeySqlGenerator); diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/events/DropPrimaryKeyOnIdColumnOfEventsTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/events/DropPrimaryKeyOnIdColumnOfEventsTableTest.java index d9700105c0c..2ad8922b8a6 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/events/DropPrimaryKeyOnIdColumnOfEventsTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/events/DropPrimaryKeyOnIdColumnOfEventsTableTest.java @@ -25,7 +25,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonar.db.CoreDbTester; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfEventsTableTest { @Rule public CoreDbTester db = CoreDbTester.createForSchema(DropPrimaryKeyOnIdColumnOfEventsTableTest.class, "schema.sql"); - private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new GetConstraintHelper(db.database())); + private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new SqlHelper(db.database())); private DropPrimaryKeyOnIdColumnOfEventsTable underTest = new DropPrimaryKeyOnIdColumnOfEventsTable(db.database(), dropPrimaryKeySqlGenerator); diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/issues/DropPrimaryKeyOnIdColumnOfIssuesTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/issues/DropPrimaryKeyOnIdColumnOfIssuesTableTest.java index 7acfaaef1ac..ec52bab62d5 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/issues/DropPrimaryKeyOnIdColumnOfIssuesTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/issues/DropPrimaryKeyOnIdColumnOfIssuesTableTest.java @@ -25,7 +25,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonar.db.CoreDbTester; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfIssuesTableTest { @Rule public CoreDbTester db = CoreDbTester.createForSchema(DropPrimaryKeyOnIdColumnOfIssuesTableTest.class, "schema.sql"); - private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new GetConstraintHelper(db.database())); + private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new SqlHelper(db.database())); private DropPrimaryKeyOnIdColumnOfIssuesTable underTest = new DropPrimaryKeyOnIdColumnOfIssuesTable(db.database(), dropPrimaryKeySqlGenerator); diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/notifications/DropPrimaryKeyOnIdColumnOfNotificationTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/notifications/DropPrimaryKeyOnIdColumnOfNotificationTableTest.java index 9c80ca5bd74..ffef46d7d8e 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/notifications/DropPrimaryKeyOnIdColumnOfNotificationTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/notifications/DropPrimaryKeyOnIdColumnOfNotificationTableTest.java @@ -25,7 +25,7 @@ import org.junit.Test; import org.sonar.db.CoreDbTester; import org.sonar.server.platform.db.migration.step.MigrationStep; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfNotificationTableTest { @Rule public CoreDbTester db = CoreDbTester.createForSchema(DropPrimaryKeyOnIdColumnOfNotificationTableTest.class, "schema.sql"); - private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new GetConstraintHelper(db.database())); + private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new SqlHelper(db.database())); private MigrationStep underTest = new DropPrimaryKeyOnIdColumnOfNotificationTable(db.database(), dropPrimaryKeySqlGenerator); diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/projectmeasures/DropPrimaryKeyOnIdColumnOfProjectMeasuresTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/projectmeasures/DropPrimaryKeyOnIdColumnOfProjectMeasuresTableTest.java index 9beaac73199..f137f8a7ded 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/projectmeasures/DropPrimaryKeyOnIdColumnOfProjectMeasuresTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/projectmeasures/DropPrimaryKeyOnIdColumnOfProjectMeasuresTableTest.java @@ -25,7 +25,7 @@ import org.junit.Test; import org.sonar.db.CoreDbTester; import org.sonar.server.platform.db.migration.step.MigrationStep; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -35,7 +35,7 @@ public class DropPrimaryKeyOnIdColumnOfProjectMeasuresTableTest { @Rule public CoreDbTester db = CoreDbTester.createForSchema(DropPrimaryKeyOnIdColumnOfProjectMeasuresTableTest.class, "schema.sql"); - private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new GetConstraintHelper(db.database())); + private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new SqlHelper(db.database())); private MigrationStep underTest = new DropPrimaryKeyOnIdColumnOfProjectMeasuresTable(db.database(), dropPrimaryKeySqlGenerator); diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/snapshots/DropPrimaryKeyOnIdColumnOfSnapshotsTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/snapshots/DropPrimaryKeyOnIdColumnOfSnapshotsTableTest.java index beebc70faea..de7014fef39 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/snapshots/DropPrimaryKeyOnIdColumnOfSnapshotsTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/snapshots/DropPrimaryKeyOnIdColumnOfSnapshotsTableTest.java @@ -26,7 +26,7 @@ import org.junit.Test; import org.sonar.db.CoreDbTester; import org.sonar.server.platform.db.migration.version.v83.snapshots.issues.DropPrimaryKeyOnIdColumnOfSnapshotsTable; import org.sonar.server.platform.db.migration.version.v83.util.DropPrimaryKeySqlGenerator; -import org.sonar.server.platform.db.migration.version.v83.util.GetConstraintHelper; +import org.sonar.server.platform.db.migration.version.v83.util.SqlHelper; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -36,7 +36,7 @@ public class DropPrimaryKeyOnIdColumnOfSnapshotsTableTest { @Rule public CoreDbTester db = CoreDbTester.createForSchema(DropPrimaryKeyOnIdColumnOfSnapshotsTableTest.class, "schema.sql"); - private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new GetConstraintHelper(db.database())); + private DropPrimaryKeySqlGenerator dropPrimaryKeySqlGenerator = new DropPrimaryKeySqlGenerator(db.database(), new SqlHelper(db.database())); private DropPrimaryKeyOnIdColumnOfSnapshotsTable underTest = new DropPrimaryKeyOnIdColumnOfSnapshotsTable(db.database(), dropPrimaryKeySqlGenerator); diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/util/DropPrimaryKeySqlGeneratorTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/util/DropPrimaryKeySqlGeneratorTest.java index 4e5b3e7abf6..d293ab8ba46 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/util/DropPrimaryKeySqlGeneratorTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v83/util/DropPrimaryKeySqlGeneratorTest.java @@ -35,7 +35,6 @@ import static org.mockito.Mockito.when; public class DropPrimaryKeySqlGeneratorTest { private static final String TABLE_NAME = "issues"; - private static final String ORIGINAL_TABLE_NAME = "original_issues"; private static final String PK_COLUMN = "id"; private static final String CONSTRAINT = "pk_id"; @@ -45,38 +44,39 @@ public class DropPrimaryKeySqlGeneratorTest { private static final org.sonar.db.dialect.H2 H2 = new H2(); private Database db = mock(Database.class); - private GetConstraintHelper getConstraintHelper = mock(GetConstraintHelper.class); + private SqlHelper sqlHelper = mock(SqlHelper.class); - private DropPrimaryKeySqlGenerator underTest = new DropPrimaryKeySqlGenerator(db, getConstraintHelper); + private DropPrimaryKeySqlGenerator underTest = new DropPrimaryKeySqlGenerator(db, sqlHelper); @Test public void generate_for_postgres_sql() throws SQLException { - when(getConstraintHelper.getPostgresSqlConstraint(TABLE_NAME)).thenReturn(CONSTRAINT); + when(sqlHelper.getPostgresSqlConstraint(TABLE_NAME)).thenReturn(CONSTRAINT); + when(sqlHelper.getPostgresSqlSequence(TABLE_NAME, "id")).thenReturn(TABLE_NAME + "_id_seq"); when(db.getDialect()).thenReturn(POSTGRESQL); - List sqls = underTest.generate(TABLE_NAME, ORIGINAL_TABLE_NAME, PK_COLUMN); + List sqls = underTest.generate(TABLE_NAME, PK_COLUMN); assertThat(sqls).containsExactly("ALTER TABLE issues ALTER COLUMN id DROP DEFAULT", - "DROP SEQUENCE original_issues_id_seq", + "DROP SEQUENCE issues_id_seq", "ALTER TABLE issues DROP CONSTRAINT pk_id"); } @Test public void generate_for_ms_sql() throws SQLException { - when(getConstraintHelper.getMssqlConstraint(TABLE_NAME)).thenReturn(CONSTRAINT); + when(sqlHelper.getMssqlConstraint(TABLE_NAME)).thenReturn(CONSTRAINT); when(db.getDialect()).thenReturn(MS_SQL); - List sqls = underTest.generate(TABLE_NAME, ORIGINAL_TABLE_NAME, PK_COLUMN); + List sqls = underTest.generate(TABLE_NAME, PK_COLUMN); assertThat(sqls).containsExactly("ALTER TABLE issues DROP CONSTRAINT pk_id"); } @Test public void generate_for_oracle() throws SQLException { - when(getConstraintHelper.getOracleConstraint(TABLE_NAME)).thenReturn(CONSTRAINT); + when(sqlHelper.getOracleConstraint(TABLE_NAME)).thenReturn(CONSTRAINT); when(db.getDialect()).thenReturn(ORACLE); - List sqls = underTest.generate(TABLE_NAME, ORIGINAL_TABLE_NAME, PK_COLUMN); + List sqls = underTest.generate(TABLE_NAME, PK_COLUMN); assertThat(sqls).containsExactly("DROP TRIGGER issues_IDT", "DROP SEQUENCE issues_SEQ", @@ -85,12 +85,12 @@ public class DropPrimaryKeySqlGeneratorTest { @Test public void generate_for_h2() throws SQLException { - when(getConstraintHelper.getH2Constraint(TABLE_NAME)).thenReturn(CONSTRAINT); + when(sqlHelper.getH2Constraint(TABLE_NAME)).thenReturn(CONSTRAINT); when(db.getDialect()).thenReturn(H2); - List sqls = underTest.generate(TABLE_NAME, ORIGINAL_TABLE_NAME, PK_COLUMN); + List sqls = underTest.generate(TABLE_NAME, PK_COLUMN); - assertThat(sqls).containsExactly("ALTER TABLE issues DROP CONSTRAINT PK_original_issues", + assertThat(sqls).containsExactly("ALTER TABLE issues DROP CONSTRAINT pk_id", "ALTER TABLE issues ALTER COLUMN id INTEGER NOT NULL"); } } -- 2.39.5