From 8eec766b5a2713c25b950d55b82ecbc8cfe1e37b Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 24 Mar 2026 09:19:43 +0100 Subject: [PATCH] Bug 42083: (QA follow-up) Simplify atomicupdate migration loop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the O(n²) accumulate-and-re-insert pattern with a simple per-row execute inside the while loop. Signed-off-by: Martin Renvoize --- .../atomicupdate/Bug_42083_add_send_sms_permission.pl | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/installer/data/mysql/atomicupdate/Bug_42083_add_send_sms_permission.pl b/installer/data/mysql/atomicupdate/Bug_42083_add_send_sms_permission.pl index c3aff2aba2..2f7bd65079 100755 --- a/installer/data/mysql/atomicupdate/Bug_42083_add_send_sms_permission.pl +++ b/installer/data/mysql/atomicupdate/Bug_42083_add_send_sms_permission.pl @@ -9,12 +9,12 @@ return { my ( $dbh, $out ) = @$args{qw(dbh out)}; $dbh->do( - q{INSERT IGNORE permissions (module_bit, code, description) VALUES (4, 'send_messages_to_borrowers_email', 'Send messages to patrons via email')} + q{INSERT IGNORE INTO permissions (module_bit, code, description) VALUES (4, 'send_messages_to_borrowers_email', 'Send messages to patrons via email')} ); say_success( $out, "Added new permission 'send_messages_to_borrowers_email'" ); $dbh->do( - q{INSERT IGNORE permissions (module_bit, code, description) VALUES (4, 'send_messages_to_borrowers_sms', 'Send messages to patrons via sms')} + q{INSERT IGNORE INTO permissions (module_bit, code, description) VALUES (4, 'send_messages_to_borrowers_sms', 'Send messages to patrons via sms')} ); say_success( $out, "Added new permission 'send_messages_to_borrowers_sms'" ); @@ -25,12 +25,8 @@ return { $dbh->prepare("SELECT borrowernumber FROM user_permissions WHERE code = 'send_messages_to_borrowers'"); $sth->execute(); - my @borrowernumbers; while ( my ($borrowernumber) = $sth->fetchrow_array() ) { - push @borrowernumbers, $borrowernumber; - - my @rows_to_insert = ( map { [ $_, 4, "send_messages_to_borrowers_email" ] } @borrowernumbers ); - foreach my $row (@rows_to_insert) { $insert_sth->execute( @{$row} ); } + $insert_sth->execute( $borrowernumber, 4, 'send_messages_to_borrowers_email' ); } say_success( $out, "send_messages_to_borrowers_email added to all borrowers with send_messages_to_borrowers" );