diff -r da975b1f188d -r 87328572e36f src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt --- a/src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt Wed Aug 18 12:47:32 2021 +0200 +++ b/src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt Wed Aug 18 14:57:45 2021 +0200 @@ -129,17 +129,19 @@ executeUpdate() } } -// + // // //language=SQL - private val versionQuery = "select versionid, project, name, node, ordinal, status from lpit_version" + private val versionQuery = "select versionid, project, name, node, ordinal, status, release, eol from lpit_version" private fun ResultSet.extractVersion() = Version(getInt("versionid"), getInt("project")).apply { name = getString("name") node = getString("node") ordinal = getInt("ordinal") + release = getDate("release") + eol = getDate("eol") status = getEnum("status") } @@ -171,7 +173,7 @@ from lpit_version v left join issues using (versionid) ) - select v.versionid, project, name, node, ordinal, status, + select v.versionid, project, name, node, ordinal, status, release, eol, ro.total as resolved_open, ra.total as resolved_active, rd.total as resolved_done, ao.total as affected_open, aa.total as affected_active, ad.total as affected_done from lpit_version v @@ -212,13 +214,15 @@ } override fun insertVersion(version: Version) { - withStatement("insert into lpit_version (name, node, ordinal, status, project) values (?, ?, ?, ?::version_status, ?)") { + withStatement("insert into lpit_version (name, node, ordinal, status, project, release, eol) values (?, ?, ?, ?::version_status, ?, ?, ?)") { with(version) { setStringSafe(1, name) setStringSafe(2, node) setInt(3, ordinal) setEnum(4, status) setInt(5, version.projectid) + setDateOrNull(6, version.release) + setDateOrNull(7, version.eol) } executeUpdate() } @@ -226,18 +230,20 @@ } override fun updateVersion(version: Version) { - withStatement("update lpit_version set name = ?, node = ?, ordinal = ?, status = ?::version_status where versionid = ?") { + withStatement("update lpit_version set name = ?, node = ?, ordinal = ?, status = ?::version_status, release=?,eol=? where versionid = ?") { with(version) { setStringSafe(1, name) setStringSafe(2, node) setInt(3, ordinal) setEnum(4, status) - setInt(5, id) + setDateOrNull(5, version.release) + setDateOrNull(6, version.eol) + setInt(7, id) } executeUpdate() } } -// + // // //language=SQL @@ -347,9 +353,9 @@ } } -// + // -// + // //language=SQL private val projectQuery = @@ -441,9 +447,9 @@ } } -// + // -// + // //language=SQL private val issueQuery = @@ -485,19 +491,24 @@ } //language=SQL - fun versionQuery(table: String) = + val queryAffected = """ - select versionid, project, name, status, ordinal, node - from lpit_version join $table using (versionid) - where issueid = ? - order by ordinal, name + $versionQuery join lpit_issue_affected_version using (versionid) + where issueid = ? order by ordinal, name """.trimIndent() - issue.affectedVersions = withStatement(versionQuery("lpit_issue_affected_version")) { + //language=SQL + val queryResolved = + """ + $versionQuery join lpit_issue_resolved_version using (versionid) + where issueid = ? order by ordinal, name + """.trimIndent() + + issue.affectedVersions = withStatement(queryAffected) { setInt(1, issue.id) queryAll { it.extractVersion() } } - issue.resolvedVersions = withStatement(versionQuery("lpit_issue_resolved_version")) { + issue.resolvedVersions = withStatement(queryResolved) { setInt(1, issue.id) queryAll { it.extractVersion() } } @@ -640,9 +651,9 @@ insertVersionInfo(issue.id, issue) } -// + // -// + // private fun ResultSet.extractIssueComment() = IssueComment(getInt("commentid"), getInt("issueid")).apply { @@ -693,5 +704,5 @@ } } } -// + // } \ No newline at end of file