46 private final PreparedStatement clearAffected, clearResolved; |
46 private final PreparedStatement clearAffected, clearResolved; |
47 private final PreparedStatement insertAffected, insertResolved; |
47 private final PreparedStatement insertAffected, insertResolved; |
48 private final PreparedStatement insertComment, updateComment, listComments; |
48 private final PreparedStatement insertComment, updateComment, listComments; |
49 |
49 |
50 public PGIssueDao(Connection connection) throws SQLException { |
50 public PGIssueDao(Connection connection) throws SQLException { |
51 list = connection.prepareStatement( |
51 final var query = "select issueid, i.project, p.name as projectname, p.node as projectnode, "+ |
52 "select issueid, i.project, p.name as projectname, component, c.name as componentname, " + |
52 "component, c.name as componentname, c.node as componentnode, " + |
53 "status, category, subject, i.description, " + |
53 "status, category, subject, i.description, " + |
54 "userid, username, givenname, lastname, mail, " + |
54 "userid, username, givenname, lastname, mail, " + |
55 "created, updated, eta " + |
55 "created, updated, eta " + |
56 "from lpit_issue i " + |
56 "from lpit_issue i " + |
57 "join lpit_project p on i.project = projectid " + |
57 "join lpit_project p on i.project = projectid " + |
58 "left join lpit_component c on component = c.id " + |
58 "left join lpit_component c on component = c.id " + |
59 "left join lpit_user on userid = assignee " + |
59 "left join lpit_user on userid = assignee "; |
|
60 |
|
61 list = connection.prepareStatement(query + |
60 "where i.project = ? and coalesce(component, -1) = coalesce(?, component, -1)"); |
62 "where i.project = ? and coalesce(component, -1) = coalesce(?, component, -1)"); |
61 |
63 |
62 listForVersion = connection.prepareStatement( |
64 listForVersion = connection.prepareStatement( |
63 "with issue_version as ( "+ |
65 "with issue_version as ( "+ |
64 "select issueid, versionid from lpit_issue_affected_version union "+ |
66 "select issueid, versionid from lpit_issue_affected_version union "+ |
65 "select issueid, versionid from lpit_issue_resolved_version) "+ |
67 "select issueid, versionid from lpit_issue_resolved_version) "+ |
66 "select issueid, i.project, p.name as projectname, component, c.name as componentname, " + |
68 query + |
67 "status, category, subject, i.description, " + |
|
68 "userid, username, givenname, lastname, mail, " + |
|
69 "created, updated, eta " + |
|
70 "from lpit_issue i " + |
|
71 "join lpit_project p on i.project = projectid " + |
|
72 "left join lpit_component c on component = c.id " + |
|
73 "left join issue_version using (issueid) "+ |
69 "left join issue_version using (issueid) "+ |
74 "left join lpit_user on userid = assignee " + |
|
75 "where coalesce(versionid,-1) = ? and coalesce(component, -1) = coalesce(?, component, -1)" |
70 "where coalesce(versionid,-1) = ? and coalesce(component, -1) = coalesce(?, component, -1)" |
76 ); |
71 ); |
77 |
72 |
78 find = connection.prepareStatement( |
73 find = connection.prepareStatement(query + "where issueid = ? "); |
79 "select issueid, i.project, p.name as projectname, component, c.name as componentname, " + |
|
80 "status, category, subject, i.description, " + |
|
81 "userid, username, givenname, lastname, mail, " + |
|
82 "created, updated, eta " + |
|
83 "from lpit_issue i " + |
|
84 "join lpit_project p on i.project = projectid " + |
|
85 "left join lpit_component c on component = c.id " + |
|
86 "left join lpit_user on userid = assignee " + |
|
87 "where issueid = ? "); |
|
88 |
74 |
89 insert = connection.prepareStatement( |
75 insert = connection.prepareStatement( |
90 "insert into lpit_issue (project, component, status, category, subject, description, assignee, eta) " + |
76 "insert into lpit_issue (project, component, status, category, subject, description, assignee, eta) " + |
91 "values (?, ?, ?::issue_status, ?::issue_category, ?, ?, ?, ?) returning issueid" |
77 "values (?, ?, ?::issue_status, ?::issue_category, ?, ?, ?, ?) returning issueid" |
92 ); |
78 ); |