diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/sca/ScaDependenciesDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/sca/ScaDependenciesDaoIT.java index 5173c7a1881..1d41394dd54 100644 --- a/server/sonar-db-dao/src/it/java/org/sonar/db/sca/ScaDependenciesDaoIT.java +++ b/server/sonar-db-dao/src/it/java/org/sonar/db/sca/ScaDependenciesDaoIT.java @@ -47,6 +47,7 @@ void insert_shouldPersistScaDependencies() { List> select = db.select(db.getSession(), "select * from sca_dependencies"); assertThat(select).hasSize(1); Map stringObjectMap = select.get(0); + stringObjectMap.remove("chains"); assertThat(stringObjectMap).containsExactlyInAnyOrderEntriesOf( Map.ofEntries( Map.entry("uuid", scaDependencyDto.uuid()), @@ -195,6 +196,7 @@ void update_shouldUpdateScaDependency() { List> select = db.select(db.getSession(), "select * from sca_dependencies"); assertThat(select).hasSize(1); Map stringObjectMap = select.get(0); + stringObjectMap.remove("chains"); assertThat(stringObjectMap).containsExactlyInAnyOrderEntriesOf( Map.ofEntries( Map.entry("uuid", updatedScaDependency.uuid()), diff --git a/server/sonar-db-dao/src/schema/schema-sq.ddl b/server/sonar-db-dao/src/schema/schema-sq.ddl index 05a305e4f17..023e2e04552 100644 --- a/server/sonar-db-dao/src/schema/schema-sq.ddl +++ b/server/sonar-db-dao/src/schema/schema-sq.ddl @@ -1039,6 +1039,7 @@ CREATE TABLE "SCA_DEPENDENCIES"( "SCOPE" CHARACTER VARYING(100) NOT NULL, "USER_DEPENDENCY_FILE_PATH" CHARACTER VARYING(1000), "LOCKFILE_DEPENDENCY_FILE_PATH" CHARACTER VARYING(1000), + "CHAINS" CHARACTER LARGE OBJECT, "CREATED_AT" BIGINT NOT NULL, "UPDATED_AT" BIGINT NOT NULL ); diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202502/CreateScaDependenciesTableIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202502/CreateScaDependenciesTableIT.java index afe8744ce6a..10f31a1c908 100644 --- a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202502/CreateScaDependenciesTableIT.java +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202502/CreateScaDependenciesTableIT.java @@ -28,6 +28,7 @@ import static java.sql.Types.BIGINT; import static java.sql.Types.BOOLEAN; import static java.sql.Types.VARCHAR; +import static java.sql.Types.CLOB; import static org.sonar.db.MigrationDbTester.createForMigrationStep; import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.UUID_SIZE; @@ -50,6 +51,7 @@ void execute_shouldCreateTable() throws SQLException { db.assertColumnDefinition(TABLE_NAME, "scope", VARCHAR, 100, false); db.assertColumnDefinition(TABLE_NAME, "user_dependency_file_path", VARCHAR, 1000, true); db.assertColumnDefinition(TABLE_NAME, "lockfile_dependency_file_path", VARCHAR, 1000, true); + db.assertColumnDefinition(TABLE_NAME, "chains", CLOB, null, true); db.assertColumnDefinition(TABLE_NAME, "created_at", BIGINT, null, false); db.assertColumnDefinition(TABLE_NAME, "updated_at", BIGINT, null, false); } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202502/CreateScaDependenciesTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202502/CreateScaDependenciesTable.java index 96742afb771..c88c2be3f79 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202502/CreateScaDependenciesTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202502/CreateScaDependenciesTable.java @@ -26,6 +26,7 @@ import static org.sonar.server.platform.db.migration.def.BigIntegerColumnDef.newBigIntegerColumnDefBuilder; import static org.sonar.server.platform.db.migration.def.BooleanColumnDef.newBooleanColumnDefBuilder; +import static org.sonar.server.platform.db.migration.def.ClobColumnDef.newClobColumnDefBuilder; import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.UUID_SIZE; import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.newVarcharColumnDefBuilder; @@ -40,6 +41,7 @@ public class CreateScaDependenciesTable extends CreateTableChange { private static final String COLUMN_USER_DEPENDENCY_FILE_PATH_NAME = "user_dependency_file_path"; private static final String COLUMN_LOCKFILE_DEPENDENCY_FILE_PATH_NAME = "lockfile_dependency_file_path"; private static final int COLUMN_DEPENDENCY_FILE_PATH_SIZE = 1000; + private static final String COLUMN_CHAINS_NAME = "chains"; private static final String COLUMN_CREATED_AT_NAME = "created_at"; private static final String COLUMN_UPDATED_AT_NAME = "updated_at"; @@ -56,6 +58,7 @@ public void execute(Context context, String tableName) throws SQLException { .addColumn(newVarcharColumnDefBuilder().setColumnName(COLUMN_SCOPE_NAME).setIsNullable(false).setLimit(COLUMN_SCOPE_SIZE).build()) .addColumn(newVarcharColumnDefBuilder().setColumnName(COLUMN_USER_DEPENDENCY_FILE_PATH_NAME).setIsNullable(true).setLimit(COLUMN_DEPENDENCY_FILE_PATH_SIZE).build()) .addColumn(newVarcharColumnDefBuilder().setColumnName(COLUMN_LOCKFILE_DEPENDENCY_FILE_PATH_NAME).setIsNullable(true).setLimit(COLUMN_DEPENDENCY_FILE_PATH_SIZE).build()) + .addColumn(newClobColumnDefBuilder().setColumnName(COLUMN_CHAINS_NAME).setIsNullable(true).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName(COLUMN_CREATED_AT_NAME).setIsNullable(false).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName(COLUMN_UPDATED_AT_NAME).setIsNullable(false).build()) .build());