Can't sort group issues by popularity when searching
https://sentry.gitlap.com/gitlab/gitlabcom/issues/478090/
PG::GroupingError: ERROR: column "issues.title" must appear in the GROUP BY clause or be used in an aggregate function
LINE 8: ...ed" = 'f' AND "labels"."title" = 'CI/CD') SELECT "issues".*...
^
peek/views/pg.rb:17:in `async_exec'
super(*args)
peek/views/pg.rb:17:in `async_exec'
super(*args)
active_record/connection_adapters/postgresql_adapter.rb:592:in `block in exec_no_cache'
log(sql, name, binds) { @connection.async_exec(sql, []) }
active_record/connection_adapters/abstract_adapter.rb:484:in `block in log'
:binds => binds) { yield }
active_support/notifications/instrumenter.rb:20:in `instrument'
yield payload
...
(151 additional frame(s) were not displayed)
ActiveRecord::StatementInvalid: PG::GroupingError: ERROR: column "issues.title" must appear in the GROUP BY clause or be used in an aggregate function
LINE 8: ...ed" = 'f' AND "labels"."title" = 'CI/CD') SELECT "issues".*...
^
: WITH "issues" AS (SELECT "issues".* FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" INNER JOIN "label_links" ON "label_links"."target_id" = "issues"."id" AND "label_links"."target_type" = 'Issue' INNER JOIN "labels" ON "labels"."id" = "label_links"."label_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (
issues.confidential IS NOT TRUE
OR (issues.confidential = TRUE
AND (issues.author_id = 2243533
OR EXISTS (SELECT TRUE FROM issue_assignees WHERE user_id = 2243533 AND issue_id = issues.id)
OR issues.project_id IN(SELECT "projects"."id" FROM "projects" INNER JOIN "project_authorizations" ON "projects"."id" = "project_authorizations"."project_id" WHERE "project_authorizations"."user_id" = 2243533 AND (project_authorizations.access_level >= 20))))) AND "projects"."namespace_id" IN (WITH RECURSIVE "base_and_descendants" AS (SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 9970
UNION
SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."parent_id" = "base_and_descendants"."id") SELECT "id" FROM "base_and_descendants" AS "namespaces") AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 2243533 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (10,20)) AND ("project_features"."issues_access_level" IN (NULL,20) OR ("project_features"."issues_access_level" = 10 AND EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 2243533 AND (project_authorizations.project_id = projects.id)))) AND ("issues"."state" IN ('opened')) AND "projects"."archived" = 'f' AND "labels"."title" = 'CI/CD') SELECT "issues".* FROM issues INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT OUTER JOIN "award_emoji" ON "award_emoji"."awardable_id" = "issues"."id" AND "award_emoji"."awardable_type" = 'Issue' AND "award_emoji"."name" = 'thumbsup' WHERE ("issues"."title" ILIKE '%github%' OR "issues"."description" ILIKE '%github%') AND "projects"."archived" = 'f' GROUP BY "issues"."id" ORDER BY COUNT(award_emoji.id) DESC, "issues"."id" DESC LIMIT 20 OFFSET 0
ActiveRecord::StatementInvalid: PG::GroupingError: ERROR: column "issues.title" must appear in the GROUP BY clause or be used in an aggregate function
LINE 8: ...ed" = 'f' AND "labels"."title" = 'CI/CD') SELECT "issues".*...
^
: WITH "issues" AS (SELECT "issues".* FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" INNER JOIN "label_links" ON "label_links"."target_id" = "issues"."id" AND "label_links"."target_type" = 'Issue' INNER JOIN "labels" ON "labels"."id" = "label_links"."label_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (
issues.confidential IS NOT TRUE
OR (issues.confidential = TRUE
AND (issues.author_id = 2243533
OR EXISTS (SELECT TRUE FROM issue_assignees WHERE user_id = 2243533 AND issue_id = issues.id)
OR issues.project_id IN(SELECT "projects"."id" FROM "projects" INNER JOIN "project_authorizations" ON "projects"."id" = "project_authorizations"."project_id" WHERE "project_authorizations"."user_id" = 2243533 AND (project_authorizations.access_level >= 20))))) AND "projects"."namespace_id" IN (WITH RECURSIVE "base_and_descendants" AS (SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 9970
UNION
SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."parent_id" = "base_and_descendants"."id") SELECT "id" FROM "base_and_descendants" AS "namespaces") AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 2243533 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (10,20)) AND ("project_features"."issues_access_level" IN (NULL,20) OR ("project_features"."issues_access_level" = 10 AND EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 2243533 AND (project_authorizations.project_id = projects.id)))) AND ("issues"."state" IN ('opened')) AND "projects"."archived" = 'f' AND "labels"."title" = 'CI/CD') SELECT "issues".* FROM issues INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT OUTER JOIN "award_emoji" ON "award_emoji"."awardable_id" = "issues"."id" AND "award_emoji"."awardable_type" = 'Issue' AND "award_emoji"."name" = 'thumbsup' WHERE ("issues"."title" ILIKE '%github%' OR "issues"."description" ILIKE '%github%') AND "projects"."archived" = 'f' GROUP BY "issues"."id" ORDER BY COUNT(award_emoji.id) DESC, "issues"."id" DESC LIMIT 20 OFFSET 0
cc @smcgivern