From 3061b8117a08d611b87d00fb7b1b05e6c6b1d46e Mon Sep 17 00:00:00 2001 From: kolaente Date: Mon, 30 Mar 2026 17:38:22 +0200 Subject: [PATCH] fix(templates): use aggregate for is_template HAVING clause for MySQL/PostgreSQL compatibility --- pkg/models/project.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/models/project.go b/pkg/models/project.go index 463381142..9eee78c44 100644 --- a/pkg/models/project.go +++ b/pkg/models/project.go @@ -670,7 +670,7 @@ INNER JOIN all_projects ap ON p.parent_project_id = ap.id` "all_projects.owner_id", "CASE WHEN all_projects.parent_project_id IS NULL THEN 0 ELSE all_projects.parent_project_id END AS parent_project_id", "MAX(CASE WHEN all_projects.is_archived THEN 1 ELSE 0 END) AS is_archived", - "all_projects.is_template", + "MAX(CASE WHEN all_projects.is_template THEN 1 ELSE 0 END) AS is_template", "all_projects.background_file_id", "all_projects.background_blur_hash", "all_projects.position", @@ -688,7 +688,6 @@ INNER JOIN all_projects ap ON p.parent_project_id = ap.id` "all_projects.parent_project_id", "all_projects.background_file_id", "all_projects.background_blur_hash", - "all_projects.is_template", "all_projects.position", "all_projects.created", "all_projects.updated", @@ -699,7 +698,7 @@ INNER JOIN all_projects ap ON p.parent_project_id = ap.id` havingClauses = append(havingClauses, "MAX(CASE WHEN all_projects.is_archived THEN 1 ELSE 0 END) = 0") } if !opts.getTemplates { - havingClauses = append(havingClauses, "all_projects.is_template = 0") + havingClauses = append(havingClauses, "MAX(CASE WHEN all_projects.is_template THEN 1 ELSE 0 END) = 0") } var havingFilter string if len(havingClauses) > 0 {