From 4196e6444c680ca28054bf633e195d3ee847fec4 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Sun, 31 May 2026 21:31:23 -0400 Subject: [PATCH] Stringbuilder --- user/manager_sqlite.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/user/manager_sqlite.go b/user/manager_sqlite.go index ebe81d8d..18cb4028 100644 --- a/user/manager_sqlite.go +++ b/user/manager_sqlite.go @@ -229,11 +229,16 @@ const ( // sqliteSelectAccessCacheUsersQuery builds the per-users cache-load query // with a "?, ?, ..." IN clause sized for n usernames. func sqliteSelectAccessCacheUsersQuery(n int) string { - placeholders := strings.Repeat(",?", n) - if n > 0 { - placeholders = placeholders[1:] // drop the leading comma + var sb strings.Builder + sb.WriteString(`SELECT u.user, a.topic, a.read, a.write FROM user_access a JOIN user u ON u.id = a.user_id WHERE u.user IN (`) + for i := 0; i < n; i++ { + if i > 0 { + sb.WriteString(",") + } + sb.WriteString("?") } - return `SELECT u.user, a.topic, a.read, a.write FROM user_access a JOIN user u ON u.id = a.user_id WHERE u.user IN (` + placeholders + `)` + sb.WriteString(")") + return sb.String() } var sqliteQueries = queries{