Skip to content

Add issues filter for any epic

What does this MR do?

#215657 (closed)

Add missing filter ANY that allows us to search for issues with any epic (the epic attribute is not NULL).

Screenshots

No Filter Epic = Any Epic = None
Screen_Shot_2020-05-11_at_16.29.05 Screen_Shot_2020-05-11_at_16.28.53 Screen_Shot_2020-05-11_at_16.28.31

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing


Query for issues search at the group level and with filter Epic = Any

SELECT
    "issues".*
FROM
    "issues"
    INNER JOIN "projects" ON "projects"."id" = "issues"."project_id"
    LEFT OUTER JOIN "epic_issues" ON "epic_issues"."issue_id" = "issues"."id"
    LEFT JOIN project_features ON projects.id = project_features.project_id
WHERE
    "projects"."namespace_id" IN ( WITH RECURSIVE "base_and_descendants" AS (
(
                SELECT
                    "namespaces".*
                FROM
                    "namespaces"
                WHERE
                    "namespaces"."type" = 'Group'
                    AND "namespaces"."id" = 9970)
            UNION (
                SELECT
                    "namespaces".*
                FROM
                    "namespaces",
                    "base_and_descendants"
                WHERE
                    "namespaces"."type" = 'Group'
                    AND "namespaces"."parent_id" = "base_and_descendants"."id"))
            SELECT
                "namespaces"."id"
            FROM
                "base_and_descendants" AS "namespaces")
        AND (EXISTS (
                SELECT
                    1
                FROM
                    "project_authorizations"
                WHERE
                    "project_authorizations"."user_id" = 1
                    AND (project_authorizations.project_id = projects.id))
                OR projects.visibility_level IN (0, 10, 20))
        AND ("project_features"."issues_access_level" > 0
            OR "project_features"."issues_access_level" IS NULL)
    AND ("issues"."state_id" IN (1))
AND "projects"."archived" = FALSE
AND "epic_issues"."epic_id" IS NOT NULL

Query for issues search at the group level and with filter Epic = None

SELECT
    "issues".*
FROM
    "issues"
    INNER JOIN "projects" ON "projects"."id" = "issues"."project_id"
    LEFT OUTER JOIN "epic_issues" ON "epic_issues"."issue_id" = "issues"."id"
    LEFT JOIN project_features ON projects.id = project_features.project_id
WHERE
    "projects"."namespace_id" IN ( WITH RECURSIVE "base_and_descendants" AS (
(
                SELECT
                    "namespaces".*
                FROM
                    "namespaces"
                WHERE
                    "namespaces"."type" = 'Group'
                    AND "namespaces"."id" = 9970)
            UNION (
                SELECT
                    "namespaces".*
                FROM
                    "namespaces",
                    "base_and_descendants"
                WHERE
                    "namespaces"."type" = 'Group'
                    AND "namespaces"."parent_id" = "base_and_descendants"."id"))
            SELECT
                "namespaces"."id"
            FROM
                "base_and_descendants" AS "namespaces")
        AND (EXISTS (
                SELECT
                    1
                FROM
                    "project_authorizations"
                WHERE
                    "project_authorizations"."user_id" = 1
                    AND (project_authorizations.project_id = projects.id))
                OR projects.visibility_level IN (0, 10, 20))
        AND ("project_features"."issues_access_level" > 0
            OR "project_features"."issues_access_level" IS NULL)
    AND ("issues"."state_id" IN (1))
AND "projects"."archived" = FALSE
AND "epic_issues"."epic_id" IS NULL
Edited by 🤖 GitLab Bot 🤖

Merge request reports