123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd">
-
- <mapper namespace="org.sonar.db.ce.CeActivityMapper">
-
-
- <!--assumes query includes an left left outer join on table ce_scanner_context with alias csc -->
- <sql id="hasScannerContextColumn" databaseId="mssql">
- cast(case when csc.task_uuid is null then 0 else 1 end as bit) as hasScannerContext
- </sql>
- <sql id="hasScannerContextColumn" databaseId="oracle">
- case when csc.task_uuid is null then 0 else 1 end as hasScannerContext
- </sql>
- <sql id="hasScannerContextColumn">
- csc.task_uuid is not null as hasScannerContext
- </sql>
-
- <sql id="countWarnings">
- (select count(1) from ce_task_message ctm where ctm.task_uuid = ca.uuid) as warningCount
- </sql>
-
- <sql id="columns">
- ca.id,
- ca.uuid,
- ca.task_type as taskType,
- ca.component_uuid as componentUuid,
- ca.main_component_uuid as mainComponentUuid,
- ca.analysis_uuid as analysisUuid,
- ca.status as status,
- ca.submitter_uuid as submitterUuid,
- ca.submitted_at as submittedAt,
- ca.worker_uuid as workerUuid,
- ca.started_at as startedAt,
- ca.executed_at as executedAt,
- ca.created_at as createdAt,
- ca.updated_at as updatedAt,
- ca.is_last as isLast,
- ca.is_last_key as isLastKey,
- ca.main_is_last as mainIsLast,
- ca.main_is_last_key as mainIsLastKey,
- ca.execution_time_ms as executionTimeMs,
- ca.error_message as errorMessage,
- ca.error_type as errorType,
- <include refid="hasScannerContextColumn"/>
- </sql>
-
- <select id="selectByUuid" parameterType="String" resultType="org.sonar.db.ce.CeActivityDto">
- select
- <include refid="columns"/>,
- ca.error_stacktrace as errorStacktrace,
- <include refid="countWarnings"/>
- from ce_activity ca
- left outer join ce_scanner_context csc on
- ca.uuid = csc.task_uuid
- where
- ca.uuid=#{uuid,jdbcType=VARCHAR}
- </select>
-
- <select id="selectByQuery" parameterType="map" resultType="org.sonar.db.ce.CeActivityDto">
- select
- <include refid="columns"/>,
- <include refid="countWarnings"/>
- <include refid="sqlSelectByQuery" />
- order by
- ca.created_at desc, id desc
- limit #{pagination.pageSize,jdbcType=INTEGER} offset #{pagination.offset,jdbcType=INTEGER}
- </select>
-
- <select id="selectByQuery" parameterType="map" resultType="org.sonar.db.ce.CeActivityDto" databaseId="mssql">
- select * from (
- select row_number() over(order by id desc) as number,
- <include refid="columns"/>,
- <include refid="countWarnings"/>
- <include refid="sqlSelectByQuery" />
- ) as query
- where
- query.number between #{pagination.startRowNumber,jdbcType=INTEGER} and #{pagination.endRowNumber,jdbcType=INTEGER}
- order by created_at desc, id desc
- </select>
-
- <select id="selectByQuery" parameterType="map" resultType="org.sonar.db.ce.CeActivityDto" databaseId="oracle">
- select * from (
- select rownum as rn, t.* from (
- select
- <include refid="columns"/>,
- <include refid="countWarnings"/>
- <include refid="sqlSelectByQuery" />
- order by ca.created_at desc, ca.id desc
- ) t
- ) t
- where
- t.rn between #{pagination.startRowNumber,jdbcType=INTEGER} and #{pagination.endRowNumber,jdbcType=INTEGER}
- </select>
-
- <sql id="sqlSelectByQuery">
- from ce_activity ca
- left outer join ce_scanner_context csc on csc.task_uuid = ca.uuid
- <where>
- <if test="query.onlyCurrents">
- and ca.main_is_last=${_true}
- </if>
- <if test="query.mainComponentUuids != null and query.mainComponentUuids.size()>0">
- and ca.main_component_uuid in
- <foreach collection="query.mainComponentUuids" open="(" close=")" item="cUuid" separator=",">
- #{cUuid,jdbcType=VARCHAR}
- </foreach>
- </if>
- <if test="query.statuses != null and !query.statuses.isEmpty()">
- and ca.status in
- <foreach collection="query.statuses" open="(" close=")" item="status" separator=",">
- #{status,jdbcType=VARCHAR}
- </foreach>
- </if>
- <if test="query.errorTypes != null and !query.errorTypes.isEmpty()">
- and ca.error_type in
- <foreach collection="query.errorTypes" open="(" close=")" item="errorType" separator=",">
- #{errorType,jdbcType=VARCHAR}
- </foreach>
- </if>
- <if test="query.type != null">
- and ca.task_type=#{query.type,jdbcType=VARCHAR}
- </if>
- <if test="query.minSubmittedAt != null">
- and ca.submitted_at >= #{query.minSubmittedAt,jdbcType=BIGINT}
- </if>
- <if test="query.maxExecutedAt != null">
- and ca.executed_at <= #{query.maxExecutedAt,jdbcType=BIGINT}
- </if>
- <if test="query.minExecutedAt != null">
- and ca.executed_at >= #{query.minExecutedAt,jdbcType=BIGINT}
- </if>
- </where>
- </sql>
-
- <select id="selectOlderThan" parameterType="long" resultType="org.sonar.db.ce.CeActivityDto">
- select
- <include refid="columns"/>
- from ce_activity ca
- left outer join ce_scanner_context csc on csc.task_uuid = ca.uuid
- where
- ca.created_at < #{beforeDate,jdbcType=BIGINT}
- </select>
-
- <select id="countLastByStatusAndMainComponentUuid" resultType="int">
- select
- count(1)
- from
- ce_activity
- where
- main_is_last=${_true}
- and status=#{status,jdbcType=VARCHAR}
- <if test="mainComponentUuid!=null">
- and main_component_uuid=#{mainComponentUuid,jdbcType=VARCHAR}
- </if>
- </select>
-
- <insert id="insert" parameterType="org.sonar.db.ce.CeActivityDto" useGeneratedKeys="false">
- insert into ce_activity (
- uuid,
- component_uuid,
- main_component_uuid,
- analysis_uuid,
- status,
- task_type,
- is_last,
- is_last_key,
- main_is_last,
- main_is_last_key,
- submitter_uuid,
- submitted_at,
- worker_uuid,
- execution_count,
- started_at,
- executed_at,
- created_at,
- updated_at,
- execution_time_ms,
- error_message,
- error_stacktrace,
- error_type
- )
- values (
- #{uuid,jdbcType=VARCHAR},
- #{componentUuid,jdbcType=VARCHAR},
- #{mainComponentUuid,jdbcType=VARCHAR},
- #{analysisUuid,jdbcType=VARCHAR},
- #{status,jdbcType=VARCHAR},
- #{taskType,jdbcType=VARCHAR},
- #{isLast,jdbcType=BOOLEAN},
- #{isLastKey,jdbcType=VARCHAR},
- #{mainIsLast,jdbcType=BOOLEAN},
- #{mainIsLastKey,jdbcType=VARCHAR},
- #{submitterUuid,jdbcType=VARCHAR},
- #{submittedAt,jdbcType=BIGINT},
- #{workerUuid,jdbcType=VARCHAR},
- 0,
- #{startedAt,jdbcType=BIGINT},
- #{executedAt,jdbcType=BIGINT},
- #{createdAt,jdbcType=BIGINT},
- #{updatedAt,jdbcType=BIGINT},
- #{executionTimeMs,jdbcType=BIGINT},
- #{errorMessage,jdbcType=VARCHAR},
- #{errorStacktrace,jdbcType=CLOB},
- #{errorType,jdbcType=VARCHAR}
- )
- </insert>
-
- <update id="clearIsLast" parameterType="map">
- update ce_activity set
- is_last=${_false},
- updated_at=#{updatedAt,jdbcType=BIGINT}
- where
- is_last=${_true}
- and is_last_key=#{isLastKey,jdbcType=VARCHAR}
- </update>
-
- <update id="clearMainIsLast" parameterType="map">
- update ce_activity set
- main_is_last=${_false},
- updated_at=#{updatedAt,jdbcType=BIGINT}
- where
- main_is_last=${_true}
- and main_is_last_key=#{mainIsLastKey,jdbcType=VARCHAR}
- </update>
-
- <delete id="deleteByUuids" parameterType="string">
- delete
- from ce_activity
- where
- uuid in
- <foreach collection="uuids" open="(" close=")" item="uuid" separator=",">
- #{uuid,jdbcType=VARCHAR}
- </foreach>
- </delete>
-
- <select id="selectLastByComponentUuidAndTaskType" parameterType="map" resultType="org.sonar.db.ce.CeActivityDto">
- select
- <include refid="columns"/>
- from ce_activity ca
- left outer join ce_scanner_context csc on
- ca.uuid = csc.task_uuid
- where
- ca.component_uuid = #{componentUuid,jdbcType=VARCHAR}
- and ca.task_type = #{taskType,jdbcType=VARCHAR}
- and ca.is_last = ${_true}
- </select>
-
- </mapper>
|