<?xml version="1.0" encoding="UTF-8"?> <changeSet> <createTable tableName="PRIORITY"> <column name="USER_NAME" type="varchar(100)" nullable="false"/> <column name="REPOSITORY_NAME" type="varchar(100)" nullable="false"/> <column name="PRIORITY_ID" type="int" nullable="false" autoIncrement="true" unique="true"/> <column name="PRIORITY_NAME" type="varchar(100)" nullable="false"/> <column name="DESCRIPTION" type="varchar(255)" nullable="true"/> <column name="ORDERING" type="int" nullable="false"/> <column name="IS_DEFAULT" type="boolean" nullable="false"/> <column name="COLOR" type="char(6)" nullable="false"/> </createTable> <addPrimaryKey constraintName="IDX_PRIORITY_PK" tableName="PRIORITY" columnNames="USER_NAME, REPOSITORY_NAME, PRIORITY_ID"/> <addForeignKeyConstraint constraintName="IDX_PRIORITY_FK0" baseTableName="PRIORITY" baseColumnNames="USER_NAME, REPOSITORY_NAME" referencedTableName="REPOSITORY" referencedColumnNames="USER_NAME, REPOSITORY_NAME"/> <addColumn tableName="ISSUE"> <column name="PRIORITY_ID" type="int" nullable="true" /> </addColumn> <addForeignKeyConstraint constraintName="IDX_ISSUE_FK3" baseTableName="ISSUE" baseColumnNames="PRIORITY_ID" referencedTableName="PRIORITY" referencedColumnNames="PRIORITY_ID"/> <createTable tableName="ACCOUNT_WEB_HOOK"> <column name="USER_NAME" type="varchar(100)" nullable="false"/> <column name="URL" type="varchar(200)" nullable="false"/> <column name="TOKEN" type="varchar(100)" nullable="true"/> <column name="CTYPE" type="varchar(10)" nullable="true"/> </createTable> <addPrimaryKey constraintName="IDX_ACCOUNT_WEB_HOOK_PK" tableName="ACCOUNT_WEB_HOOK" columnNames="USER_NAME, URL"/> <addForeignKeyConstraint constraintName="IDX_ACCOUNT_WEB_HOOK_FK0" baseTableName="ACCOUNT_WEB_HOOK" baseColumnNames="USER_NAME" referencedTableName="ACCOUNT" referencedColumnNames="USER_NAME"/> <createTable tableName="ACCOUNT_WEB_HOOK_EVENT"> <column name="USER_NAME" type="varchar(100)" nullable="false"/> <column name="URL" type="varchar(200)" nullable="false"/> <column name="EVENT" type="varchar(30)" nullable="false"/> </createTable> <sql> CREATE OR REPLACE VIEW ISSUE_OUTLINE_VIEW AS SELECT A.USER_NAME, A.REPOSITORY_NAME, A.ISSUE_ID, COALESCE(B.COMMENT_COUNT, 0) + COALESCE(C.COMMENT_COUNT, 0) AS COMMENT_COUNT, COALESCE(D.ORDERING, 9999) AS PRIORITY FROM ISSUE A LEFT OUTER JOIN ( SELECT USER_NAME, REPOSITORY_NAME, ISSUE_ID, COUNT(COMMENT_ID) AS COMMENT_COUNT FROM ISSUE_COMMENT WHERE ACTION IN ('comment', 'close_comment', 'reopen_comment') GROUP BY USER_NAME, REPOSITORY_NAME, ISSUE_ID ) B ON (A.USER_NAME = B.USER_NAME AND A.REPOSITORY_NAME = B.REPOSITORY_NAME AND A.ISSUE_ID = B.ISSUE_ID) LEFT OUTER JOIN ( SELECT USER_NAME, REPOSITORY_NAME, ISSUE_ID, COUNT(COMMENT_ID) AS COMMENT_COUNT FROM COMMIT_COMMENT GROUP BY USER_NAME, REPOSITORY_NAME, ISSUE_ID ) C ON (A.USER_NAME = C.USER_NAME AND A.REPOSITORY_NAME = C.REPOSITORY_NAME AND A.ISSUE_ID = C.ISSUE_ID) LEFT OUTER JOIN PRIORITY D ON (A.PRIORITY_ID = D.PRIORITY_ID); </sql> </changeSet>