MT#60189 support multi-insert stmts for lnp_numbers

Change-Id: I2baf3ace876c4d869ec40668a61c9899f5c7ba85
mr12.5
Rene Krenn 11 months ago
parent 76d773bbf4
commit d785be99f5

@ -23,7 +23,8 @@ our @EXPORT_OK = qw(
filter
getroundrobinitem
getrandomitem
array_to_map);
array_to_map
flatten);
sub mergearrays {
my ($array_ptr1, $array_ptr2) = @_;
@ -323,4 +324,9 @@ sub mapeq {
return 1;
}
#https://metacpan.org/dist/List-Flatten/source/lib/List/Flatten.pm
sub flatten(@) {
return map { ref eq 'ARRAY' ? @$_ : $_ } @_;
}
1;

@ -236,9 +236,9 @@ sub buildrecords_fromrows {
sub getinsertstatement {
my ($insert_ignore) = @_;
my ($insert_ignore,$row_count) = @_;
check_table();
return insert_stmt($get_db,__PACKAGE__,$insert_ignore);
return insert_stmt($get_db,__PACKAGE__,$insert_ignore,undef,$row_count);
}

@ -715,7 +715,7 @@ sub update_record {
sub insert_stmt {
my ($get_db,$class,$insert_ignore,$exclude_identity_fieldnames) = @_;
my ($get_db,$class,$insert_ignore,$exclude_identity_fieldnames,$row_count) = @_;
my $db = (ref $get_db eq 'CODE') ? &$get_db() : $get_db;
my $connectidentifier = $db->connectidentifier();
my $tid = threadid();
@ -724,9 +724,11 @@ sub insert_stmt {
$expected_fieldnames = [ grep { not contains($_,$exclude_identity_fieldnames); } @$expected_fieldnames ];
}
my $tablename = $table_names->{$tid}->{$connectidentifier}->{$class};
$row_count //= 1;
my $values = join ", ", ('(' . substr(',?' x scalar @$expected_fieldnames,1) . ')') x $row_count;
return 'INSERT ' . ($insert_ignore ? $db->insert_ignore_phrase() . ' ' : '') . 'INTO ' . $db->tableidentifier($tablename) . ' (' .
join(', ',map { local $_ = $_; $_ = $db->columnidentifier($_); $_; } @$expected_fieldnames) .
') VALUES (' . substr(',?' x scalar @$expected_fieldnames,1) . ')';
') VALUES ' . $values;
}

Loading…
Cancel
Save