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.java9
-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/PurgeMapper.java6
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml5
4 files changed, 25 insertions, 2 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 3e17aa2e337..b781c2ad344 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
@@ -2002,6 +2002,14 @@ oldCreationDate));
assertThat(db.countRowsOfTable(dbSession, "sca_issues_releases")).isEqualTo(2);
+ var issueReleaseChangeBase = Map.of("created_at", 0L, "updated_at", 0L);
+ db.executeInsert("sca_issue_rels_changes", merge(issueReleaseChangeBase, Map.of("uuid", "issue-release-change-uuid1",
+ "sca_issues_releases_uuid", "issue-release-uuid1")));
+ db.executeInsert("sca_issue_rels_changes", merge(issueReleaseChangeBase, Map.of("uuid", "issue-release-change-uuid2",
+ "sca_issues_releases_uuid", "issue-release-uuid2")));
+
+ assertThat(db.countRowsOfTable(dbSession, "sca_issue_rels_changes")).isEqualTo(2);
+
var analysisBase = Map.of(
"created_at", 0L,
"updated_at", 0L,
@@ -2031,6 +2039,7 @@ oldCreationDate));
assertThat(db.countRowsOfTable(dbSession, "sca_releases")).isEqualTo(1);
assertThat(db.countRowsOfTable(dbSession, "sca_dependencies")).isEqualTo(1);
assertThat(db.countRowsOfTable(dbSession, "sca_issues_releases")).isEqualTo(1);
+ assertThat(db.countRowsOfTable(dbSession, "sca_issue_rels_changes")).isEqualTo(1);
assertThat(db.countRowsOfTable(dbSession, "sca_analyses")).isEqualTo(1);
}
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 d818e2361cf..fca991f9f28 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
@@ -543,6 +543,13 @@ class PurgeCommands {
session.commit();
profiler.stop();
+ // this must be done before deleting sca_issues_releases or we won't
+ // be able to find the rows
+ profiler.start("deleteScaIssuesReleasesChanges (sca_issue_rels_changes)");
+ purgeMapper.deleteScaIssuesReleasesChangesByComponentUuid(componentUuid);
+ session.commit();
+ profiler.stop();
+
profiler.start("deleteScaIssuesReleases (sca_issues_releases)");
purgeMapper.deleteScaIssuesReleasesByComponentUuid(componentUuid);
session.commit();
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 2502ac8e5d8..ab4b369aef6 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
@@ -201,9 +201,11 @@ public interface PurgeMapper {
void deleteScaIssuesReleasesByComponentUuid(@Param("componentUuid") String componentUuid);
- void deleteScaReleasesByComponentUuid(@Param("componentUuid") String componentUuid);
+ void deleteScaIssuesReleasesChangesByComponentUuid(@Param("componentUuid") String componentUuid);
- void deleteArchitectureGraphsByBranchUuid(@Param("branchUuid") String branchUuid);
+ void deleteScaReleasesByComponentUuid(@Param("componentUuid") String componentUuid);
void deleteScaLicenseProfileProjectsByProjectUuid(@Param("projectUuid") String projectUuid);
+
+ 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 9b0b865fc36..bc5c066d6b4 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
@@ -683,6 +683,11 @@
<delete id="deleteScaIssuesReleasesByComponentUuid">
delete from sca_issues_releases where sca_release_uuid in (select uuid from sca_releases where component_uuid = #{componentUuid,jdbcType=VARCHAR})
</delete>
+ <delete id="deleteScaIssuesReleasesChangesByComponentUuid">
+ delete from sca_issue_rels_changes where sca_issues_releases_uuid in
+ (select sca_issues_releases.uuid from sca_issues_releases join sca_releases on sca_releases.uuid = sca_issues_releases.sca_release_uuid
+ where sca_releases.component_uuid = #{componentUuid,jdbcType=VARCHAR})
+ </delete>
<delete id="deleteScaReleasesByComponentUuid">
delete from sca_releases where component_uuid = #{componentUuid,jdbcType=VARCHAR}
</delete>