From 19d1ded3bf65d0d655a3d9b4fdbc5182f8adf3c3 Mon Sep 17 00:00:00 2001 From: Georges Chaudy Date: Fri, 21 Mar 2025 16:04:58 +0100 Subject: [PATCH] spanner: fix TestIntegration_DashboardPermissionFilter (#102603) --- .../sqlstore/permissions/dashboard_test.go | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/pkg/services/sqlstore/permissions/dashboard_test.go b/pkg/services/sqlstore/permissions/dashboard_test.go index 2f625298937..f26e923228f 100644 --- a/pkg/services/sqlstore/permissions/dashboard_test.go +++ b/pkg/services/sqlstore/permissions/dashboard_test.go @@ -760,9 +760,21 @@ func setupTest(t *testing.T, numFolders, numDashboards int, permissions []access }) } - _, err := sess.InsertMulti(&dashes) - if err != nil { - return err + // Insert dashboards in batches + batchSize := 500 + if db.IsTestDBSpanner() { + batchSize = 30 // spanner has a limit of 950 parameters per query + } + for i := 0; i < len(dashes); i += batchSize { + end := i + batchSize + if end > len(dashes) { + end = len(dashes) + } + + _, err := sess.InsertMulti(dashes[i:end]) + if err != nil { + return err + } } role := &accesscontrol.Role{ @@ -772,7 +784,7 @@ func setupTest(t *testing.T, numFolders, numDashboards int, permissions []access Updated: time.Now(), Created: time.Now(), } - _, err = sess.Insert(role) + _, err := sess.Insert(role) if err != nil { return err } @@ -794,10 +806,18 @@ func setupTest(t *testing.T, numFolders, numDashboards int, permissions []access permissions[i].Updated = time.Now() permissions[i].Kind, permissions[i].Attribute, permissions[i].Identifier = permissions[i].SplitScope() } + if len(permissions) > 0 { - _, err = sess.InsertMulti(&permissions) - if err != nil { - return err + for i := 0; i < len(permissions); i += batchSize { + end := i + batchSize + if end > len(permissions) { + end = len(permissions) + } + + _, err = sess.InsertMulti(permissions[i:end]) + if err != nil { + return err + } } }