aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2018-11-29 15:54:08 +0100
committerSonarTech <sonartech@sonarsource.com>2018-12-05 20:20:58 +0100
commit21369995bc5443108b2521a3126bebd002ca6444 (patch)
treecb75ccb4f502cb8a31f47c671369458595cdb51d /server/sonar-db-dao
parent4ecd4bdcbc24f97a2d77aafb6273ce805976baaf (diff)
downloadsonarqube-21369995bc5443108b2521a3126bebd002ca6444.tar.gz
sonarqube-21369995bc5443108b2521a3126bebd002ca6444.zip
SONAR-11455 improve SQL and network perf of PersistIssuesStep
Diffstat (limited to 'server/sonar-db-dao')
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueMapper.java3
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/issue/IssueMapper.xml15
2 files changed, 18 insertions, 0 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueMapper.java
index 90655308f90..5ae7382a4f7 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueMapper.java
@@ -34,6 +34,8 @@ public interface IssueMapper {
List<IssueDto> selectByKeys(List<String> keys);
+ List<IssueDto> selectByKeysIfNotUpdatedAt(@Param("keys") List<String> keys, @Param("updatedAt") long updatedAt);
+
List<ShortBranchIssueDto> selectOpenByComponentUuids(List<String> componentUuids);
void insert(IssueDto issue);
@@ -53,4 +55,5 @@ public interface IssueMapper {
Collection<IssueGroupDto> selectIssueGroupsByBaseComponent(
@Param("baseComponent") ComponentDto baseComponent,
@Param("leakPeriodBeginningDate") long leakPeriodBeginningDate);
+
}
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/issue/IssueMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/issue/IssueMapper.xml
index 90f2ccfaf03..9592c6831ce 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/issue/IssueMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/issue/IssueMapper.xml
@@ -261,6 +261,21 @@
</foreach>
</select>
+ <select id="selectByKeysIfNotUpdatedAt" parameterType="map" resultType="Issue">
+ select
+ <include refid="issueColumns"/>
+ from issues i
+ inner join rules r on r.id=i.rule_id
+ inner join projects p on p.uuid=i.component_uuid
+ inner join projects root on root.uuid=i.project_uuid
+ where
+ i.kee in
+ <foreach collection="keys" open="(" close=")" item="key" separator=",">
+ #{key,jdbcType=VARCHAR}
+ </foreach>
+ and i.updated_at &lt;&gt; #{updatedAt,jdbcType=BIGINT}
+ </select>
+
<select id="selectOpenByComponentUuids" parameterType="map" resultType="ShortBranchIssue">
select
i.kee as kee,