Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perl-SQL-Abstract-Pg for 
openSUSE:Factory checked in at 2026-11-06 19:43:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-SQL-Abstract-Pg (Old)
 and      /work/SRC/openSUSE:Factory/.perl-SQL-Abstract-Pg.new.3759290 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-SQL-Abstract-Pg"

Fri Nov  6 19:43:45 2026 rev:3 rq:1395142 version:1.10.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-SQL-Abstract-Pg/perl-SQL-Abstract-Pg.changes    
    2025-02-09 20:47:47.104815744 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-SQL-Abstract-Pg.new.3759290/perl-SQL-Abstract-Pg.changes
   2026-11-06 19:49:25.136680334 +0100
@@ -1,0 +2,9 @@
+Sun Oct 25 09:53:36 UTC 2026 - Tina Müller <[email protected]>
+
+- updated to 1.10.0 (1.01)
+   see /usr/share/doc/packages/perl-SQL-Abstract-Pg/Changes
+
+  1.01  2026-10-25
+    - Added support for bulk inserts. (array of hashes)
+
+-------------------------------------------------------------------

Old:
----
  SQL-Abstract-Pg-1.0.tar.gz

New:
----
  README.md
  SQL-Abstract-Pg-1.01.tar.gz
  _scmsync.obsinfo
  build.specials.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-SQL-Abstract-Pg.spec ++++++
--- /var/tmp/diff_new_pack.cS8z2x/_old  2026-11-06 19:49:26.494737227 +0100
+++ /var/tmp/diff_new_pack.cS8z2x/_new  2026-11-06 19:49:26.502737563 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-SQL-Abstract-Pg
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,15 +18,16 @@
 
 %define cpan_name SQL-Abstract-Pg
 Name:           perl-SQL-Abstract-Pg
-Version:        1.0.0
+Version:        1.10.0
 Release:        0
-# 1.0 -> normalize -> 1.0.0
-%define cpan_version 1.0
+# 1.01 -> normalize -> 1.10.0
+%define cpan_version 1.01
 License:        Artistic-2.0
 Summary:        PostgreSQL features for SQL::Abstract
 URL:            https://metacpan.org/release/%{cpan_name}
 Source0:        
https://cpan.metacpan.org/authors/id/S/SR/SRI/%{cpan_name}-%{cpan_version}.tar.gz
 Source1:        cpanspec.yml
+Source100:      README.md
 BuildArch:      noarch
 BuildRequires:  perl
 BuildRequires:  perl-macros

++++++ README.md ++++++

## Build Results

Current state of perl in openSUSE:Factory is

![Factory build 
results](https://br.opensuse.org/status/openSUSE:Factory/perl-SQL-Abstract-Pg/standard)

The current state of perl in the devel project build (devel:languages:perl)

![Devel project build 
results](https://br.opensuse.org/status/devel:languages:perl/perl-SQL-Abstract-Pg)



++++++ SQL-Abstract-Pg-1.0.tar.gz -> SQL-Abstract-Pg-1.01.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SQL-Abstract-Pg-1.0/Changes 
new/SQL-Abstract-Pg-1.01/Changes
--- old/SQL-Abstract-Pg-1.0/Changes     2021-02-20 17:28:49.000000000 +0100
+++ new/SQL-Abstract-Pg-1.01/Changes    2026-10-25 01:59:31.000000000 +0200
@@ -1,3 +1,6 @@
 
+1.01  2026-10-25
+  - Added support for bulk inserts. (array of hashes)
+
 1.0  2021-02-20
   - First release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SQL-Abstract-Pg-1.0/META.json 
new/SQL-Abstract-Pg-1.01/META.json
--- old/SQL-Abstract-Pg-1.0/META.json   2021-02-20 17:52:55.000000000 +0100
+++ new/SQL-Abstract-Pg-1.01/META.json  2026-10-25 02:00:01.000000000 +0200
@@ -4,7 +4,7 @@
       "Sebastian Riedel <[email protected]>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "ExtUtils::MakeMaker version 7.60, CPAN::Meta::Converter 
version 2.150010",
+   "generated_by" : "ExtUtils::MakeMaker version 7.76, CPAN::Meta::Converter 
version 2.150010",
    "license" : [
       "artistic_2"
    ],
@@ -54,10 +54,10 @@
          "web" : "https://github.com/mojolicious/sql-abstract-pg";
       },
       "x_IRC" : {
-         "url" : "irc://chat.freenode.net/#mojo",
-         "web" : "https://webchat.freenode.net/#mojo";
+         "url" : "irc://irc.libera.chat/#mojo",
+         "web" : "https://web.libera.chat/#mojo";
       }
    },
-   "version" : "1.0",
-   "x_serialization_backend" : "JSON::PP version 4.06"
+   "version" : "1.01",
+   "x_serialization_backend" : "JSON::PP version 4.16"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SQL-Abstract-Pg-1.0/META.yml 
new/SQL-Abstract-Pg-1.01/META.yml
--- old/SQL-Abstract-Pg-1.0/META.yml    2021-02-20 17:52:55.000000000 +0100
+++ new/SQL-Abstract-Pg-1.01/META.yml   2026-10-25 02:00:01.000000000 +0200
@@ -7,7 +7,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 7.60, CPAN::Meta::Converter version 
2.150010'
+generated_by: 'ExtUtils::MakeMaker version 7.76, CPAN::Meta::Converter version 
2.150010'
 license: artistic_2
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -24,11 +24,11 @@
   perl: '5.016'
 resources:
   IRC:
-    url: irc://chat.freenode.net/#mojo
-    web: https://webchat.freenode.net/#mojo
+    url: irc://irc.libera.chat/#mojo
+    web: https://web.libera.chat/#mojo
   bugtracker: https://github.com/mojolicious/sql-abstract-pg/issues
   homepage: https://mojolicious.org
   license: http://www.opensource.org/licenses/artistic-license-2.0
   repository: https://github.com/mojolicious/sql-abstract-pg.git
-version: '1.0'
-x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
+version: '1.01'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.020'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SQL-Abstract-Pg-1.0/Makefile.PL 
new/SQL-Abstract-Pg-1.01/Makefile.PL
--- old/SQL-Abstract-Pg-1.0/Makefile.PL 2021-02-20 17:41:35.000000000 +0100
+++ new/SQL-Abstract-Pg-1.01/Makefile.PL        2026-10-25 01:59:31.000000000 
+0200
@@ -26,7 +26,7 @@
         url  => 'https://github.com/mojolicious/sql-abstract-pg.git',
         web  => 'https://github.com/mojolicious/sql-abstract-pg',
       },
-      x_IRC => {url => 'irc://chat.freenode.net/#mojo', web => 
'https://webchat.freenode.net/#mojo'}
+      x_IRC => {url => 'irc://irc.libera.chat/#mojo', web => 
'https://web.libera.chat/#mojo'}
     },
   },
   PREREQ_PM => {'SQL::Abstract' => '2.0'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SQL-Abstract-Pg-1.0/README.md 
new/SQL-Abstract-Pg-1.01/README.md
--- old/SQL-Abstract-Pg-1.0/README.md   2021-02-20 17:51:58.000000000 +0100
+++ new/SQL-Abstract-Pg-1.01/README.md  2021-10-29 21:05:30.000000000 +0200
@@ -20,5 +20,4 @@
 
 ## Want to know more?
 
-  Take a look at our excellent
-  [documentation](https://mojolicious.org/perldoc/SQL/Abstract/Pg)!
+  Take a look at our excellent 
[documentation](https://mojolicious.org/perldoc/SQL/Abstract/Pg)!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SQL-Abstract-Pg-1.0/lib/SQL/Abstract/Pg.pm 
new/SQL-Abstract-Pg-1.01/lib/SQL/Abstract/Pg.pm
--- old/SQL-Abstract-Pg-1.0/lib/SQL/Abstract/Pg.pm      2021-02-20 
17:35:43.000000000 +0100
+++ new/SQL-Abstract-Pg-1.01/lib/SQL/Abstract/Pg.pm     2026-10-25 
01:59:31.000000000 +0200
@@ -6,7 +6,7 @@
 
 use parent 'SQL::Abstract';
 
-our $VERSION = '1.0';
+our $VERSION = '1.01';
 
 BEGIN { *puke = \&SQL::Abstract::puke }
 
@@ -28,6 +28,31 @@
   return $self;
 }
 
+sub _expand_insert_clause_from {
+  my ($self, undef, $data) = @_;
+
+  # Bulk insert (array of hashes)
+  return $self->SUPER::_expand_insert_clause_from(undef, $data)
+    unless ref $data eq 'ARRAY' && ref $data->[0] eq 'HASH' && grep { !/^-/ } 
keys %{$data->[0]};
+  puke 'bulk insert values must all be hash references' if grep { ref $_ ne 
'HASH' } @$data;
+
+  my %fields = map { $_ => 1 } map { keys %$_ } @$data;
+  my @fields = sort keys %fields;
+  my @rows;
+  for my $row (@$data) {
+    push @rows, {
+      -row => [
+        map {
+          local $SQL::Abstract::Cur_Col_Meta = $_;
+          exists $row->{$_} ? $self->_expand_insert_value($row->{$_}) : 
{-keyword => 'default'}
+        } @fields
+      ]
+    };
+  }
+
+  return (from => {-values => \@rows}, fields => $self->expand_expr({-row => 
\@fields}, -ident));
+}
+
 sub _insert_returning {
   my ($self, $options) = @_;
 
@@ -217,7 +242,19 @@
 
 =head1 INSERT
 
-  $abstract->insert($table, \@values || \%fieldvals, \%options);
+  $abstract->insert($table, \@values || \%fieldvals || \@fieldvals, \%options);
+
+=head2 BULK INSERT
+
+The C<$data> argument now also accepts array references containing hash 
references, to generate C<INSERT> queries
+with multiple rows. Fields missing from some rows will be set to C<DEFAULT>. 
Keep in mind that PostgreSQL limits the
+number of bind values per query to 65535, so very large inserts need to be 
split up.
+
+  # "INSERT INTO t (a, b) VALUES ('c', 'd'), ('e', DEFAULT)"
+  $abstract->insert('t', [{a => 'c', b => 'd'}, {a => 'e'}]);
+
+  # "INSERT INTO t (a) VALUES ('b'), ('c') ON CONFLICT DO NOTHING RETURNING id"
+  $abstract->insert('t', [{a => 'b'}, {a => 'c'}], {on_conflict => undef, 
returning => 'id'});
 
 =head2 ON CONFLICT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SQL-Abstract-Pg-1.0/t/sql.t 
new/SQL-Abstract-Pg-1.01/t/sql.t
--- old/SQL-Abstract-Pg-1.0/t/sql.t     2021-02-20 17:34:16.000000000 +0100
+++ new/SQL-Abstract-Pg-1.01/t/sql.t    2026-10-25 01:59:31.000000000 +0200
@@ -19,7 +19,7 @@
 subtest 'Basics' => sub {
   is_query [$abstract->insert('foo', {bar => 'baz'})], ['INSERT INTO "foo" ( 
"bar") VALUES ( ? )', 'baz'],
     'right query';
-  is_query [$abstract->select('foo', '*')], ['SELECT * FROM "foo"'], 'right 
query';
+  is_query [$abstract->select('foo', '*')],            ['SELECT * FROM 
"foo"'],               'right query';
   is_query [$abstract->select(['foo', 'bar', 'baz'])], ['SELECT * FROM "foo", 
"bar", "baz"'], 'right query';
 };
 
@@ -43,6 +43,23 @@
   is_query \@sql, $result, 'right query';
 };
 
+subtest 'Bulk insert' => sub {
+  my @sql = $abstract->insert('foo', [{bar => 'baz', yada => 1}, {bar => 
'yada', yada => 2}]);
+  is_query \@sql, ['INSERT INTO "foo" ( "bar", "yada") VALUES ( ?, ? ), ( ?, ? 
)', 'baz', 1, 'yada', 2], 'right query';
+  @sql = $abstract->insert('foo', [{bar => 'baz'}, {yada => 2}]);
+  is_query \@sql, ['INSERT INTO "foo" ( "bar", "yada") VALUES ( ?, DEFAULT ), 
( DEFAULT, ? )', 'baz', 2], 'right query';
+  @sql = $abstract->insert('foo', [{bar => 'baz'}, {bar => 'yada'}], 
{on_conflict => undef, returning => 'id'});
+  is_query \@sql,
+    ['INSERT INTO "foo" ( "bar") VALUES ( ? ), ( ? ) ON CONFLICT DO NOTHING 
RETURNING "id"', 'baz', 'yada'],
+    'right query';
+  @sql = $abstract->insert('foo', [{bar => [1, 2]}, {bar => {-json => [3]}}, 
{bar => \'now()'}]);
+  is_query \@sql, ['INSERT INTO "foo" ( "bar") VALUES ( ? ), ( ? ), ( now() 
)', [1, 2], {json => [3]}], 'right query';
+  @sql = $abstract->insert('foo', ['baz', {-json => [1]}]);
+  is_query \@sql, ['INSERT INTO "foo" VALUES ( ?, ? )', 'baz', {json => [1]}], 
'right query';
+  eval { $abstract->insert('foo', [{bar => 'baz'}, 'yada']) };
+  like $@, qr/bulk insert values must all be hash references/, 'right error';
+};
+
 subtest 'ON CONFLICT (unsupported value)' => sub {
   eval { $abstract->insert('foo', {bar => 'baz'}, {on_conflict => [[], []]}) };
   like $@, qr/on_conflict value must be in the form \[\$target, \\\%set\]/, 
'right error';

++++++ _scmsync.obsinfo ++++++
mtime: 1792922016
commit: c89ad4e87e96ee17a6908917f83f910abff04d171c7781037c50c262ece9cede
url: https://src.opensuse.org/perl/perl-SQL-Abstract-Pg
revision: c89ad4e87e96ee17a6908917f83f910abff04d171c7781037c50c262ece9cede
projectscmsync: https://src.opensuse.org/perl/_ObsPrj

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-10-25 10:53:36.000000000 +0100
@@ -0,0 +1 @@
+.osc

Reply via email to