@@ -320,6 +320,7 @@ func OffloadSensitivePartitionRanges(
320320 return fmt .Errorf ("failed to clear existing partition ranges: %w" , err )
321321 }
322322
323+ insertRows := make ([][]any , 0 , len (partitions ))
323324 for _ , partition := range partitions {
324325 payload , err := proto .Marshal (partition .Range )
325326 if err != nil {
@@ -329,20 +330,21 @@ func OffloadSensitivePartitionRanges(
329330 if err != nil {
330331 return fmt .Errorf ("failed to encrypt partition range: %w" , err )
331332 }
332-
333- if _ , err := tx .Exec (ctx ,
334- `INSERT INTO ` + qrepPartitionRangesTableName +
335- `(parent_mirror_name,run_uuid,partition_uuid,enc_key_id,range_payload) VALUES($1,$2,$3,$4,$5)` ,
336- parentMirrorName , runUUID , partition .PartitionId , key .ID , encrypted ,
337- ); err != nil {
338- return fmt .Errorf ("failed to persist encrypted partition range: %w" , err )
339- }
333+ insertRows = append (insertRows , []any {parentMirrorName , runUUID , partition .PartitionId , key .ID , encrypted })
340334
341335 partition .Range = & protos.PartitionRange {
342336 Range : & protos.PartitionRange_StringRange {StringRange : & protos.StringPartitionRange {}},
343337 }
344338 }
345339
340+ if _ , err := tx .CopyFrom (ctx ,
341+ pgx.Identifier {qrepPartitionRangesTableName },
342+ []string {"parent_mirror_name" , "run_uuid" , "partition_uuid" , "enc_key_id" , "range_payload" },
343+ pgx .CopyFromRows (insertRows ),
344+ ); err != nil {
345+ return fmt .Errorf ("failed to persist encrypted partition ranges: %w" , err )
346+ }
347+
346348 if err := tx .Commit (ctx ); err != nil {
347349 return fmt .Errorf ("failed to commit partition ranges: %w" , err )
348350 }
@@ -418,7 +420,7 @@ func RestoreSensitivePartitionRanges(
418420func partitionsContainSensitiveRanges (partitions []* protos.QRepPartition ) bool {
419421 for _ , partition := range partitions {
420422 if partition == nil || partition .Range == nil {
421- return false
423+ continue
422424 }
423425 // String ranges may contain PII data like email, so deem it as sensitive.
424426 if _ , ok := partition .Range .Range .(* protos.PartitionRange_StringRange ); ok {
0 commit comments