aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/sonar-db-dao/src')
-rw-r--r--server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java17
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java7
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java1
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java2
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml3
5 files changed, 30 insertions, 0 deletions
diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java
index e1fb868b7c0..10dda0d3735 100644
--- a/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java
+++ b/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java
@@ -2018,6 +2018,23 @@ oldCreationDate));
assertThat(db.countRowsOfTable(dbSession, "sca_issues_releases")).isEqualTo(1);
}
+ @Test
+ void whenDeleteBranch_thenPurgeArchitectureGraphs() {
+ ProjectDto project = db.components().insertPublicProject().getProjectDto();
+ BranchDto branch1 = db.components().insertProjectBranch(project);
+ BranchDto branch2 = db.components().insertProjectBranch(project);
+
+ db.executeInsert("architecture_graphs", Map.of("uuid", "12345", "branch_uuid", branch1.getUuid(), "source", "xoo", "type", "file_graph", "graph_data", "{}"));
+ db.executeInsert("architecture_graphs", Map.of("uuid", "123456", "branch_uuid", branch1.getUuid(), "source", "xoo", "type", "class_graph", "graph_data", "{}"));
+ db.executeInsert("architecture_graphs", Map.of("uuid", "1234567", "branch_uuid", branch2.getUuid(), "source", "xoo", "type", "file_graph", "graph_data", "{}"));
+
+ assertThat(db.countRowsOfTable(dbSession, "architecture_graphs")).isEqualTo(3);
+ underTest.deleteBranch(dbSession, branch1.getUuid());
+ assertThat(db.countRowsOfTable(dbSession, "architecture_graphs")).isEqualTo(1);
+ underTest.deleteBranch(dbSession, branch2.getUuid());
+ assertThat(db.countRowsOfTable(dbSession, "architecture_graphs")).isZero();
+ }
+
private AnticipatedTransitionDto getAnticipatedTransitionsDto(String uuid, String projectUuid, Date creationDate) {
return new AnticipatedTransitionDto(uuid, projectUuid, "userUuid", "transition", null, null, null, null, "rule:key", "filepath",
creationDate.getTime());
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java
index 230d9aff010..e0fb94fa09a 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java
@@ -510,6 +510,13 @@ class PurgeCommands {
profiler.stop();
}
+ public void deleteArchitectureGraphs(String branchUuid) {
+ profiler.start("deleteArchitectureGraphs (architecture_graphs)");
+ purgeMapper.deleteArchitectureGraphsByBranchUuid(branchUuid);
+ session.commit();
+ profiler.stop();
+ }
+
public void deleteAnticipatedTransitions(String projectUuid, long createdAt) {
profiler.start("deleteAnticipatedTransitions (anticipated_transitions)");
purgeMapper.deleteAnticipatedTransitionsByProjectUuidAndCreationDate(projectUuid, createdAt);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java
index ce5e0cf5e70..79ebb206068 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java
@@ -281,6 +281,7 @@ public class PurgeDao implements Dao {
commands.deleteReportSubscriptions(branchUuid);
commands.deleteIssuesFixed(branchUuid);
commands.deleteScaActivity(branchUuid);
+ commands.deleteArchitectureGraphs(branchUuid);
}
private static void deleteProject(String projectUuid, PurgeMapper mapper, PurgeCommands commands) {
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java
index 5ca08a12d7a..085b28cef6c 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java
@@ -200,4 +200,6 @@ public interface PurgeMapper {
void deleteScaIssuesReleasesByComponentUuid(@Param("componentUuid") String componentUuid);
void deleteScaReleasesByComponentUuid(@Param("componentUuid") String componentUuid);
+
+ void deleteArchitectureGraphsByBranchUuid(@Param("branchUuid") String branchUuid);
}
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml
index 4a64f3cdeab..f8d213b6a3b 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml
@@ -670,6 +670,9 @@
delete from issues_fixed where pull_request_uuid = #{branchUuid,jdbcType=VARCHAR}
</delete>
+ <delete id="deleteArchitectureGraphsByBranchUuid">
+ delete from architecture_graphs where branch_uuid = #{branchUuid,jdbcType=VARCHAR}
+ </delete>
<delete id="deleteScaDependenciesByComponentUuid">
delete from sca_dependencies where sca_release_uuid in (select uuid from sca_releases where component_uuid = #{componentUuid,jdbcType=VARCHAR})