]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-2642 Support Oracle DB for cross-project CPD
authorEvgeny Mandrikov <mandrikov@gmail.com>
Fri, 28 Oct 2011 21:05:02 +0000 (01:05 +0400)
committerEvgeny Mandrikov <mandrikov@gmail.com>
Sat, 29 Oct 2011 17:09:37 +0000 (21:09 +0400)
sonar-core/src/main/resources/org/sonar/persistence/model/DuplicationMapper-oracle.xml [new file with mode: 0644]

diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/DuplicationMapper-oracle.xml b/sonar-core/src/main/resources/org/sonar/persistence/model/DuplicationMapper-oracle.xml
new file mode 100644 (file)
index 0000000..659281d
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="org.sonar.persistence.model.DuplicationMapper">
+
+  <select id="selectCandidates" parameterType="map" resultType="DuplicationUnit">
+    SELECT DISTINCT to_blocks.hash hash, res.kee resourceKey, to_blocks.index_in_file indexInFile, to_blocks.start_line startLine, to_blocks.end_line endLine
+    FROM duplications_index to_blocks, duplications_index from_blocks, snapshots snapshot, projects res
+    WHERE from_blocks.snapshot_id = #{resource_snapshot_id}
+    AND to_blocks.hash = from_blocks.hash
+    AND to_blocks.snapshot_id = snapshot.id
+    AND snapshot.islast = TRUE
+    AND snapshot.project_id = res.id
+    <if test="last_project_snapshot_id != null">
+      AND to_blocks.project_snapshot_id != #{last_project_snapshot_id}
+    </if>
+  </select>
+
+  <insert id="insert" parameterType="DuplicationUnit" keyColumn="id" useGeneratedKeys="true">
+    INSERT INTO duplications_index (id, snapshot_id, project_snapshot_id, hash, index_in_file, start_line, end_line)
+    VALUES (select DUPLICATIONS_INDEX_SEQ.nextval, #{snapshotId}, #{projectSnapshotId}, #{hash}, #{indexInFile}, #{startLine}, #{endLine})
+  </insert>
+
+</mapper>