aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-db/src/main/resources/org/sonar/db/notification/NotificationQueueMapper.xml
blob: c09eafc31d0d87f6ddfb1acccbc4931fe07fac6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mappei.dtd">

<mapper namespace="org.sonar.db.notification.NotificationQueueMapper">

  <insert id="insert" parameterType="NotificationQueue" useGeneratedKeys="false">
    INSERT INTO notifications (data)
    VALUES (#{data})
  </insert>

  <delete id="delete" parameterType="long">
    delete from notifications where id=#{id}
  </delete>

  <select id="count" resultType="long">
    select count(*) from notifications
  </select>

  <select id="findOldest" parameterType="int" resultType="NotificationQueue">
    select id, data
    from notifications
    order by id asc
    limit #{count}
  </select>

  <!-- SQL Server -->
  <select id="findOldest" parameterType="int" resultType="NotificationQueue" databaseId="mssql">
    select top (#{count}) id, data
    from notifications
    order by id asc
  </select>

  <!-- Oracle -->
  <select id="findOldest" parameterType="int" resultType="NotificationQueue" databaseId="oracle">
    select * from (select
    id, data
    from notifications
    order by id asc
    )
    where rownum &lt;= #{count}
  </select>

</mapper>