Hello community, here is the log from the commit of package perl-DBD-Pg for openSUSE:Factory checked in at 2020-05-12 22:27:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-DBD-Pg (Old) and /work/SRC/openSUSE:Factory/.perl-DBD-Pg.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-DBD-Pg" Tue May 12 22:27:33 2020 rev:48 rq:802700 version:3.12.0 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-DBD-Pg/perl-DBD-Pg.changes 2020-05-09 19:51:22.412711546 +0200 +++ /work/SRC/openSUSE:Factory/.perl-DBD-Pg.new.2738/perl-DBD-Pg.changes 2020-05-12 22:28:48.063427244 +0200 @@ -1,0 +2,22 @@ +Fri May 8 03:08:00 UTC 2020 - Tina Müller <[email protected]> + +updated to 3.12.0 + see /usr/share/doc/packages/perl-DBD-Pg/Changes + + Version 3.12.0 (released May 7, 2020) + + - Add CONTRIBUTING.md file + + - Return the table info row last in statistics_info. + This fixes statistics_info on pre-8.3 servers. + [Dagfinn Ilmari Mannsåker] + + - Fix ASC_OR_DESC field in statistics_info + [Dagfinn Ilmari Mannsåker] + + - Indicate NULL ordering in statistics_info + [Dagfinn Ilmari Mannsåker] + + + +------------------------------------------------------------------- Old: ---- DBD-Pg-3.11.1.tar.gz New: ---- DBD-Pg-3.12.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-DBD-Pg.spec ++++++ --- /var/tmp/diff_new_pack.SmtCUK/_old 2020-05-12 22:28:49.087429382 +0200 +++ /var/tmp/diff_new_pack.SmtCUK/_new 2020-05-12 22:28:49.091429390 +0200 @@ -17,7 +17,7 @@ Name: perl-DBD-Pg -Version: 3.11.1 +Version: 3.12.0 Release: 0 %define cpan_name DBD-Pg Summary: PostgreSQL database driver for the DBI module @@ -68,6 +68,6 @@ %files -f %{name}.files %defattr(-,root,root,755) -%doc Changes README README.dev README.win32 TODO win32.mak +%doc Changes CONTRIBUTING.md README README.dev README.win32 TODO win32.mak %changelog ++++++ DBD-Pg-3.11.1.tar.gz -> DBD-Pg-3.12.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/CONTRIBUTING.md new/DBD-Pg-3.12.0/CONTRIBUTING.md --- old/DBD-Pg-3.11.1/CONTRIBUTING.md 1970-01-01 01:00:00.000000000 +0100 +++ new/DBD-Pg-3.12.0/CONTRIBUTING.md 2020-05-01 16:24:56.000000000 +0200 @@ -0,0 +1,57 @@ +# How to Contribute + +Help with DBD::Pg is always welcome. You do not have to know any code to help out - +we also need help testing, answering questions, improving documentation, etc. + + +## Issues + +Bugs and problems can be reported at: + +https://github.com/bucardo/dbdpg/issues + +You can also report them here if you wish: + +https://rt.cpan.org/Dist/Display.html?Name=DBD-Pg + + +## Questions + +Questions about usage can be answered in a number of places: + +### IRC + +You may find helpful people at #postgresql on irc.freenode.net + +Lower volume but more technical discussions happen at #dbi on irc.perl.org + +### Slack + +The Slack channel #general at postgresteam.slack.com is full of helpful people + +### Email + +There is a low-volume mailing list for discussion about this module + +Send an email to <[email protected]>. Before doing so, you probably want to +subscribe by sending an email to [email protected] + + +## Testing + +You can help by testing DBD::Pg as widely as possible. Running the tests +on a wide variety of platforms, Postgres versions, DBI versions, and other +factors is a great help in uncovering problems and improving DBD::Pg + + +## Code development + +Development happens in a git repo. The canonical location is currently +at https://github.com/bucardo/dbdpg + +Create your own copy of the repo by running: + +git clone https://github.com/bucardo/dbdpg.git + +See the README.dev file for more information about developing DBD::Pg + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/Changes new/DBD-Pg-3.12.0/Changes --- old/DBD-Pg-3.11.1/Changes 2020-04-28 15:24:57.000000000 +0200 +++ new/DBD-Pg-3.12.0/Changes 2020-05-07 19:47:05.000000000 +0200 @@ -2,6 +2,21 @@ RT refers to rt.cpan.org +Version 3.12.0 (released May 7, 2020) + + - Add CONTRIBUTING.md file + + - Return the table info row last in statistics_info. + This fixes statistics_info on pre-8.3 servers. + [Dagfinn Ilmari Mannsåker] + + - Fix ASC_OR_DESC field in statistics_info + [Dagfinn Ilmari Mannsåker] + + - Indicate NULL ordering in statistics_info + [Dagfinn Ilmari Mannsåker] + + Version 3.11.1 (released April 28, 2020) - Adjust Makefile to fix failing 'fulltest' target on BSD systems @@ -115,7 +130,7 @@ Version 3.9.1 (released August 15, 2019) - - Bugfix for pg_error_field: make sure we do not feed null to newSVpv, + - Bug fix for pg_error_field: make sure we do not feed null to newSVpv, handle older versions of Postgres better. [Greg Sabino Mullane] @@ -152,7 +167,8 @@ - Fix E'' string escape handling on architectures with unsigned chars (Github issue #46) - - Minor fix to allow DBD::Pg to connect to PGbouncer's internal 'pgbouncer' database. + - Minor fix to allow DBD::Pg to connect to internal 'pgbouncer' database + that is created by PgBouncer [Greg Sabino Mullane] (Github issue #47) @@ -514,7 +530,7 @@ [Greg Sabino Mullane] (RT ticket #94841) - - Don't attempt to use the POSIX signalling stuff if the OS is Win + - Don't attempt to use the POSIX signaling stuff if the OS is Win [Greg Sabino Mullane] (RT ticket #94841) @@ -686,7 +702,7 @@ [Jan Pazdziora] (RT ticket #70953) - - Various fixes to the array-marshalling code + - Various fixes to the array-marshaling code [Noah Misch, Mark Stosberg, and David Christensen] (RT ticket #58552) @@ -1046,8 +1062,8 @@ [Greg Sabino Mullane] - Adjustment of Makefile.PL to fix problem with Strawberry Perl. Thanks - to Martin Evan (martin.evans at easysoft.com) - and Brian (elspicyjack at gmail.com) on the dbi-users list. + to Martin Evan <martin.evans at easysoft.com> + and Brian <elspicyjack at gmail.com> on the dbi-users list. Version 2.10.7 (released September 22, 2008) @@ -2038,10 +2054,10 @@ warning mechanism instead of going to stderr. [Dominic Mitchell <dom at semantico.com>] - - The $dbh->prepare() method now rewrites the SQL statement into an internal form, striping out - comments and whitespace, and if PostgreSQL > 7.3 takes the stripped statement and passes + - The $dbh->prepare() method now rewrites the SQL statement into an internal form, stripping out + comments and whitespace, and if PostgreSQL > 7.3 it takes the stripped statement and passes that to Postgres' PREPARE statement, then rewrites the statement - as 'EXECUTE "DBD::PG::cached_query n" ($1, $2, ... $n, $n+1)' for DBD::Pg's execute. + as 'EXECUTE "DBD::PG::cached_query n" ($1, $2, ... $n, $n+1)' for DBD::Pg::execute. - Allows the use of :n and :foo bind params. So (SELECT * FROM foo WHERE 1 = :this and 2 = :that) will now work. @@ -2050,7 +2066,7 @@ - Switched over to use driver.xst. - - The pg_error() method removes \n's rather than truncating the message on the first \n. + - The pg_error() method removes newlines rather than truncating the message on the first \n. - Fixed statement scan problem where the preparse of "SELECT foo[3:33] from bar" was scanning :33 as a placeholder diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/MANIFEST new/DBD-Pg-3.12.0/MANIFEST --- old/DBD-Pg-3.11.1/MANIFEST 2020-04-23 18:21:50.000000000 +0200 +++ new/DBD-Pg-3.12.0/MANIFEST 2020-05-01 16:26:11.000000000 +0200 @@ -1,5 +1,6 @@ Changes README +CONTRIBUTING.md SIGNATURE Pg.pm META.yml @@ -7,6 +8,7 @@ Makefile.PL .dir-locals.el + MANIFEST MANIFEST.SKIP README.win32 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/META.yml new/DBD-Pg-3.12.0/META.yml --- old/DBD-Pg-3.11.1/META.yml 2020-04-23 20:31:57.000000000 +0200 +++ new/DBD-Pg-3.12.0/META.yml 2020-05-05 20:11:55.000000000 +0200 @@ -1,6 +1,6 @@ --- #YAML:1.0 name : DBD-Pg -version : 3.11.1 +version : 3.12.0 abstract : DBI PostgreSQL interface author: - Greg Sabino Mullane <[email protected]> @@ -30,10 +30,10 @@ provides: DBD::Pg: file : Pg.pm - version : 3.11.1 + version : 3.12.0 Bundle::DBD::Pg: file : lib/Bundle/DBD/Pg.pm - version : 3.11.1 + version : 3.12.0 keywords: - Postgres diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/Makefile.PL new/DBD-Pg-3.12.0/Makefile.PL --- old/DBD-Pg-3.11.1/Makefile.PL 2020-04-23 20:32:01.000000000 +0200 +++ new/DBD-Pg-3.12.0/Makefile.PL 2020-05-05 20:11:59.000000000 +0200 @@ -5,7 +5,7 @@ use 5.008001; ## No version.pm for this one, as the prereqs are not loaded yet. -my $VERSION = '3.11.1'; +my $VERSION = '3.12.0'; ## App::Info is stored inside t/lib ## Create a proper path so we can use it below diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/Pg.pm new/DBD-Pg-3.12.0/Pg.pm --- old/DBD-Pg-3.11.1/Pg.pm 2020-04-23 20:31:54.000000000 +0200 +++ new/DBD-Pg-3.12.0/Pg.pm 2020-05-05 20:35:07.000000000 +0200 @@ -16,7 +16,7 @@ { package DBD::Pg; - use version; our $VERSION = qv('3.11.1'); + use version; our $VERSION = qv('3.12.0'); use DBI (); use DynaLoader (); @@ -640,9 +640,6 @@ push(@exe_args, $schema); } - my $is_key_column = $dbh->{private_dbdpg}{version} >= 110000 - ? 'col.i <= i.indnkeyatts' : 'true'; - my $stats_sql; # Table-level stats @@ -663,7 +660,8 @@ d.relpages AS "PAGES", NULL AS "FILTER_CONDITION", NULL AS "pg_expression", - NULL AS "pg_is_key_column" + NULL AS "pg_is_key_column", + NULL AS "pg_null_ordering" FROM pg_catalog.pg_class d JOIN pg_catalog.pg_namespace n ON n.oid = d.relnamespace WHERE d.relname = ? $schema_where @@ -672,6 +670,35 @@ push @exe_args, @exe_args; } + my $is_key_column = $dbh->{private_dbdpg}{version} >= 110000 + ? 'col.i <= i.indnkeyatts' : 'true'; + + my ($asc_or_desc, $null_ordering); + if ($dbh->{private_dbdpg}{version} >= 90600) { + $asc_or_desc = q{ + CASE WHEN pg_catalog.pg_index_column_has_property(c.oid, col.i, 'asc') THEN 'A' + WHEN pg_catalog.pg_index_column_has_property(c.oid, col.i, 'desc') THEN 'D' + END}; + $null_ordering = q{ + CASE WHEN pg_catalog.pg_index_column_has_property(c.oid, col.i, 'nulls_first') THEN 'first' + WHEN pg_catalog.pg_index_column_has_property(c.oid, col.i, 'nulls_last') THEN 'last' + END}; + } + elsif ($dbh->{private_dbdpg}{version} > 80300) { + $asc_or_desc = q{ + CASE WHEN a.amcanorder THEN + CASE WHEN i.indoption[col.i - 1] & 1 = 0 THEN 'A' ELSE 'D' END + END}; + $null_ordering = q{ + CASE WHEN a.amcanorder THEN + CASE WHEN i.indoption[col.i - 1] & 2 = 0 THEN 'last' ELSE 'first' END + END}; + } + else { + $asc_or_desc = q{CASE WHEN a.amorderstrategy <> 0 THEN 'A' END}; + $null_ordering = q{CASE WHEN a.amorderstrategy <> 0 THEN 'last' END}; + } + # Fetch the index definitions $stats_sql .= qq{ SELECT @@ -688,14 +715,15 @@ END AS "TYPE", col.i AS "ORDINAL_POSITION", att.attname AS "COLUMN_NAME", - 'A' AS "ASC_OR_DESC", + $asc_or_desc AS "ASC_OR_DESC", c.reltuples AS "CARDINALITY", c.relpages AS "PAGES", pg_catalog.pg_get_expr(i.indpred,i.indrelid) AS "FILTER_CONDITION", pg_catalog.pg_get_indexdef(i.indexrelid, col.i, true) AS "pg_expression", - $is_key_column AS "pg_is_key_column" + $is_key_column AS "pg_is_key_column", + $null_ordering AS "pg_null_ordering" FROM pg_catalog.pg_index i JOIN pg_catalog.pg_class c ON c.oid = i.indexrelid @@ -710,8 +738,7 @@ d.relname = ? $schema_where AND (i.indisunique OR NOT(?)) -- unique_only ORDER BY - -- NULLS FIRST to get the table level stats first - "NON_UNIQUE" NULLS FIRST, "TYPE", "INDEX_QUALIFIER", "INDEX_NAME", "ORDINAL_POSITION" + "NON_UNIQUE", "TYPE", "INDEX_QUALIFIER", "INDEX_NAME", "ORDINAL_POSITION" }; my $sth = $dbh->prepare($stats_sql); @@ -1661,7 +1688,7 @@ =head1 VERSION -This documents version 3.11.1 of the DBD::Pg module +This documents version 3.12.0 of the DBD::Pg module =head1 DESCRIPTION @@ -2733,7 +2760,7 @@ The C<ping> method determines if there is a working connection to an active database server. It does this by sending a small query to the server, currently -B<'DBD::Pg ping test v3.11.1'>. It returns 0 (false) if the connection is not valid, +B<'DBD::Pg ping test v3.12.0'>. It returns 0 (false) if the connection is not valid, otherwise it returns a positive number (true). The value returned indicates the current state: @@ -3024,6 +3051,12 @@ Postgres (since version 11) allows including non-key columns in indexes so they can be retrieved by index-only scans. This field will be false for such columns, and true for normal index columns. +=item pg_null_ordering + +In addition to C<ASC> and C<DESC>, Postgres supports specifying C<NULLS FIRST> or C<NULLS LAST> for +index columns. For columns of indexes that support ordering, this field will be C<first> or +C<last>, otherwise it will be C<undef>; + =back diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/README new/DBD-Pg-3.12.0/README --- old/DBD-Pg-3.11.1/README 2020-04-23 20:31:50.000000000 +0200 +++ new/DBD-Pg-3.12.0/README 2020-05-05 20:11:37.000000000 +0200 @@ -5,7 +5,7 @@ DESCRIPTION: ------------ -This is version 3.11.1 of DBD::Pg, the Perl interface to Postgres using DBI. +This is version 3.12.0 of DBD::Pg, the Perl interface to Postgres using DBI. The web site for this interface, and the latest version, can be found at: http://search.cpan.org/dist/DBD-Pg/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/README.dev new/DBD-Pg-3.12.0/README.dev --- old/DBD-Pg-3.11.1/README.dev 2020-04-23 18:31:14.000000000 +0200 +++ new/DBD-Pg-3.12.0/README.dev 2020-05-07 19:47:06.000000000 +0200 @@ -66,6 +66,8 @@ README.testdatabase - created by the tests to cache connection information. +CONTRIBUTING.md - Quick introduction on how to contribute + TODO - Rough list of upcoming tasks. SIGNATURE - Checksum verification via PGP, generated by Module::Signature. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/SIGNATURE new/DBD-Pg-3.12.0/SIGNATURE --- old/DBD-Pg-3.11.1/SIGNATURE 2020-04-28 17:11:32.000000000 +0200 +++ new/DBD-Pg-3.12.0/SIGNATURE 2020-05-07 19:48:41.000000000 +0200 @@ -16,34 +16,35 @@ SHA256 e4c6f4cdc9560a09492f196fc9a180867fab12742d7d05052d9842b395c6a9eb .dir-locals.el SHA256 4c92448e25229b74a54f864675f34376e8464727ad5cb82ac312d5db7f68605c .perlcriticrc -SHA256 a33e5eec2c813984120f3dc741e4de2b0fa10c6bf81fd8e02951e237ef1b8b13 Changes +SHA256 e8d3a038d88fb019bb96983f0c52125f86a4c3465466a20612bf4958ace70ed5 CONTRIBUTING.md +SHA256 bf9a8b789a0991bb898dd29487c8427c179d6341dbaf0bf6b2f9753e6c7c1840 Changes SHA256 d52a34724b2e3c40ffa2b3b378b574b9e3db27bc3132c88e0be3675f93f378a5 LICENSES/artistic.txt SHA256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 LICENSES/gpl-2.0.txt -SHA256 a72fded2cbf8c60180225d8c91929b21d2e22758f29a8f6c94649ec260a56025 MANIFEST +SHA256 e15fb8180cca35de2c3de6854e5cf23152a7733dfa89640825ae13f6f83b0e72 MANIFEST SHA256 d5def2a47197a203318a580bed42169dca47516c6d91d3880317a3043af07f9b MANIFEST.SKIP -SHA256 dfc2b5e62a4eecc210303a75996e7d6de7e5ece94e7ae8143e9bbc5648184704 META.yml -SHA256 12d51ab1577bfb8fb3022e75f59c102dac5599abb01828eee4fa6840474bf369 Makefile.PL +SHA256 51bc09cfb1df2ba92e5c3b03ab348ec075cb2fa1d5fa4bc5204b4f7bbeb370e8 META.yml +SHA256 77a5de49edf1c8af46ac3fdac04f8a9641f7ccfd5bffad67d08502da7054632c Makefile.PL SHA256 d7d68c574b9469375f92aaf0bfd0e539f635a45da869f91390fdc401b1ccaefb Pg.h -SHA256 410f800a67d90ea5f218c822479acec6ebf4a57f4ef1d64a11c64446a2fa8adf Pg.pm +SHA256 c51d413ae7ef895c412ca28173d4d0f5059ef1289865482627578de4a4a82fbb Pg.pm SHA256 a5948aaaf9460d71ffa3fc99ccec17885af1c5597a794adfa230a6b46afc4835 Pg.xs -SHA256 4c429598f7f2185f005fe03c1a928f6a13846036f5bd0e53bd9ee0ef0b96bf47 README -SHA256 31e795eb74ec0bf7cee19cafa8386bc6b3891af3843e7e28fd4e3983a47b9d51 README.dev +SHA256 0425710d675c8b651d24efc5fd50cab2e99d099f1e9b688356268f8d35a13826 README +SHA256 e0ac9d7aa558930a10e957d9cc950fc0676edd13036d7837426d0cc94ef43a09 README.dev SHA256 a1d224603fe3a343ba0a0f40086065c81d57fbebc734b5382b0d359da16bdd94 README.win32 -SHA256 b7431b9a03075a9ee15635ab1899cac490be54dd6e838d5a4859e9fe66711ee9 TODO -SHA256 4e28a2e12e67b4aa6f426530c115b66a3f8fccbaca2c2a4affe1e5fa73513cd9 dbdimp.c +SHA256 ce798149ee5bf517fb76d6a652c3e4619bfda6ed706df068f2d0fd1f05ed259c TODO +SHA256 689b4b4d42388cf4e47b4846002080598016eeae565ec879da0ab7a084398c20 dbdimp.c SHA256 477e40202cc74bf3574359666b322b384a62da77051dc0043665186cf760ae3f dbdimp.h SHA256 9e53f7f41aaaf1b540e2784756ef6f16f61b63df0d9956483aded3c49b6e0f48 dbivport.h -SHA256 f95a02edfdd0cc57f7797102e77f66d51ff6219c5e0b9f945d99fc4659f6bc1c lib/Bundle/DBD/Pg.pm +SHA256 593414481b22b773300c2eac728f15b658835d7baf049812257411360de35b2a lib/Bundle/DBD/Pg.pm SHA256 c945a57d774dc5bb789f2af67892c749f8c4d42b75967c9aab4bc436ed635a90 quote.c SHA256 1ee43f02036bbb68c151903c2718c483ed223aff6cc93fb1408a9158adad9136 quote.h SHA256 49950c2c882018916ef89b59a1707b732064eb3bb6acb6a350111e1dc81000b8 t/00_signature.t SHA256 c24d7dff9bc9d93ddb69b2de7c7137d0e5dfa32f2f77d8f73554d85620373005 t/00basic.t -SHA256 9330b26d1b1c1f98822fccdc4c0803e06aad592f923b5d4ed597fe27bf1f9900 t/01connect.t +SHA256 929a898a75e6ae3bc244990e777f53353322d62ba42327add982d5e00b4dc8da t/01connect.t SHA256 9313402bbbd6a346f67537902ab59af15fbd41ef28b7731905a528384e5e1cbe t/01constants.t SHA256 68e9b2f4e7905a43516fe2e719f4de4f13327a2157b12dd24ce0372d7a885c23 t/02attribs.t -SHA256 3ab3cf4efab8ef297d81be43ed179add00364c2e6706054f1e191b1d7f03544d t/03dbmethod.t -SHA256 6fb56525dbb0b2fc91afc2d4dcaad9157819bcb367deae03827551c52b321ee0 t/03smethod.t -SHA256 fea3ac69212c0b356e67acdd59441d6ce9f8a6a2ffb4ed24f96efe33dd3d4fd4 t/04misc.t +SHA256 667f747227cb42ccfe378ef079b446316e20347a31632962a8990b198df5e2ce t/03dbmethod.t +SHA256 717a453088e5755dbfcd7fc895c80b692e187d7e95c22b8ac62719908804725a t/03smethod.t +SHA256 9ddbdab7db536fa94376a602edbbf076c872d57bab3596ebf685c678739e4c6b t/04misc.t SHA256 be40368efe0cf7232c428fcbecee54acef88c5d5c6e27a146371ed1f854f3674 t/06bytea.t SHA256 7e583fe6aedf5632a489048c35df35bc97463ae2b06e700be6790184a3e86295 t/07copy.t SHA256 3743261fef1e22b9596ddebb8b89a77e1e1f20f7bc11d1bc972e3497b6955766 t/08async.t @@ -68,7 +69,7 @@ SHA256 4628f92764bdb3e2b04bda7f30fc497231fbbf80dfd24cc09ee3df2e6d6d4387 win32.mak -----BEGIN PGP SIGNATURE----- -iF0EAREDAB0WIQQlKd9quPeUB+lERbS8m5BnFJZKyAUCXqhHpAAKCRC8m5BnFJZK -yBN5AKChc9OVOAUlCpJNBbfumvzJDz6+BQCcDgM+pdLDl49JraapKESFvcy1RzY= -=UGhy +iF0EAREDAB0WIQQlKd9quPeUB+lERbS8m5BnFJZKyAUCXrRJ8AAKCRC8m5BnFJZK +yKIYAJ9uJK/Z+zAsrhE2H1yBzsGywuVYsgCg8x04DnKvUhEEVu82vJ1KFp/eCLo= +=3Zg+ -----END PGP SIGNATURE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/TODO new/DBD-Pg-3.12.0/TODO --- old/DBD-Pg-3.11.1/TODO 2020-04-18 20:35:04.000000000 +0200 +++ new/DBD-Pg-3.12.0/TODO 2020-05-05 17:14:36.000000000 +0200 @@ -8,6 +8,8 @@ (although we prefer using cpan.org) +- Get a lint checker for the spellcheck words: sorted, non-duplicated, valid, etc. +- Get the "make fulltest" bit working properly - Change license to Artistic 2 - Remove the "goto" calls in the tests - Force a test database rebuild when a git branch switch is detected @@ -15,7 +17,7 @@ - Enable native JSON decoding, similar to arrays, perhaps with JSON::PP - Allow partial result sets, either via PQsetSingleRowMode or something better - Hack libpq to make user-defined number of rows returned -- Map hstore to hashes ala array/array mapping +- Map hstore to hashes similar to the array/array mapping - Fix ping problem: http://www.cpantesters.org/cpan/report/53c5cc72-6d39-11e1-8b9d-82c3d2d9ea9f - Use WITH HOLD for cursor work - Devise a way to automatically create ppm for Windows builds diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/dbdimp.c new/DBD-Pg-3.12.0/dbdimp.c --- old/DBD-Pg-3.11.1/dbdimp.c 2020-04-23 20:31:33.000000000 +0200 +++ new/DBD-Pg-3.12.0/dbdimp.c 2020-05-05 20:11:19.000000000 +0200 @@ -494,7 +494,7 @@ } /* No matter what state we are in, send an empty query to the backend */ - result = PQexec(imp_dbh->conn, "/* DBD::Pg ping test v3.11.1 */"); + result = PQexec(imp_dbh->conn, "/* DBD::Pg ping test v3.12.0 */"); status = PQresultStatus(result); PQclear(result); if (PGRES_FATAL_ERROR == status) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/lib/Bundle/DBD/Pg.pm new/DBD-Pg-3.12.0/lib/Bundle/DBD/Pg.pm --- old/DBD-Pg-3.11.1/lib/Bundle/DBD/Pg.pm 2020-04-23 20:31:39.000000000 +0200 +++ new/DBD-Pg-3.12.0/lib/Bundle/DBD/Pg.pm 2020-05-05 20:11:28.000000000 +0200 @@ -5,7 +5,7 @@ use warnings; use 5.008001; -our $VERSION = '3.11.1'; +our $VERSION = '3.12.0'; 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/t/01connect.t new/DBD-Pg-3.12.0/t/01connect.t --- old/DBD-Pg-3.11.1/t/01connect.t 2020-04-28 16:07:03.000000000 +0200 +++ new/DBD-Pg-3.12.0/t/01connect.t 2020-05-05 20:47:52.000000000 +0200 @@ -48,7 +48,13 @@ my $SQL = 'SELECT name,setting FROM pg_settings WHERE name IN (' . (join ',' => map { qq{'$_'} } @vals) . ')'; for (@{$dbh->selectall_arrayref($SQL)}) { - $set{$_->[0]} = $_->[1]; + my ($name, $value) = @$_; + ## Skip 'normal' settings + next if $name eq 'array_nulls' and $value eq 'on'; + next if $name eq 'standard_conforming_strings' and $value eq 'on'; + next if $name eq 'backslash_quote' and $value ne 'off'; + next if $name =~ /encoding/ and $value eq 'UTF8'; + $set{$name} = $value; } my $dbh2 = connect_database(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/t/03dbmethod.t new/DBD-Pg-3.12.0/t/03dbmethod.t --- old/DBD-Pg-3.11.1/t/03dbmethod.t 2020-04-17 21:38:02.000000000 +0200 +++ new/DBD-Pg-3.12.0/t/03dbmethod.t 2020-05-04 22:27:06.000000000 +0200 @@ -917,9 +917,13 @@ my $with_oids = $pgversion < 120000 ? 'WITH OIDS' : ''; my $with_include = $pgversion >= 110000; -my $hash_index_idx = 4; +my $hash_index_idx = 3; $hash_index_idx += 1 if $with_oids; $hash_index_idx += 2 if $with_include; +my ($desc, $d) = $pgversion >= 80300 ? ('DESC', 'D') : ('', 'A'); +my ($nulls_first, $nf) = $pgversion >= 80300 ? ('NULLS FIRST', 'first') : ('', 'last'); +my ($nulls_last, $nl) = $pgversion >= 80300 ? ('NULLS LAST', 'last') : ('', 'last'); + ## Create some tables with various indexes { local $SIG{__WARN__} = sub {}; @@ -937,10 +941,10 @@ $dbh->do("CREATE TABLE $table1 (a INT, b INT NOT NULL, c INT NOT NULL, ". 'CONSTRAINT dbd_pg_test1_pk PRIMARY KEY (a))'); $dbh->do("ALTER TABLE $table1 ADD CONSTRAINT dbd_pg_test1_uc1 UNIQUE (b)"); - $dbh->do("CREATE UNIQUE INDEX dbd_pg_test1_index_c ON $table1(c)"); + $dbh->do("CREATE UNIQUE INDEX dbd_pg_test1_index_c ON $table1(c $nulls_first)"); $dbh->do("CREATE TABLE $table2 (a INT, b INT, c INT, PRIMARY KEY(a,b), UNIQUE(b,c))"); - $dbh->do("CREATE INDEX dbd_pg_test2_expr ON $table2((a+b),c)"); + $dbh->do("CREATE INDEX dbd_pg_test2_expr ON $table2((a+b) $desc, c $desc $nulls_last)"); $dbh->do("CREATE TABLE $table3 (a INT, b INT, c INT, PRIMARY KEY(a)) $with_oids"); $dbh->do("CREATE UNIQUE INDEX dbd_pg_test3_index_b ON $table3(b)"); @@ -954,54 +958,54 @@ my $correct_stats = { one => [ - [ $dbh->{pg_db}, $schema, $table1, undef, undef, undef, 'table', undef, undef, undef, '0', '0', undef, undef, undef ], - [ $dbh->{pg_db}, $schema, $table1, '0', undef, 'dbd_pg_test1_index_c', 'btree', 1, 'c', 'A', '0', '1', undef, 'c', '1' ], - [ $dbh->{pg_db}, $schema, $table1, '0', undef, 'dbd_pg_test1_pk', 'btree', 1, 'a', 'A', '0', '1', undef, 'a', '1' ], - [ $dbh->{pg_db}, $schema, $table1, '0', undef, 'dbd_pg_test1_uc1', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1' ], + [ $dbh->{pg_db}, $schema, $table1, '0', undef, 'dbd_pg_test1_index_c', 'btree', 1, 'c', 'A', '0', '1', undef, 'c', '1', $nf ], + [ $dbh->{pg_db}, $schema, $table1, '0', undef, 'dbd_pg_test1_pk', 'btree', 1, 'a', 'A', '0', '1', undef, 'a', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table1, '0', undef, 'dbd_pg_test1_uc1', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table1, undef, undef, undef, 'table', undef, undef, undef, '0', '0', undef, undef, undef, undef ], ], two => [ - [ $dbh->{pg_db}, $schema, $table2, undef, undef, undef, 'table', undef, undef, undef, '0', '0', undef, undef, undef ], - [ $dbh->{pg_db}, $schema, $table2, '0', undef, 'dbd_pg_test2_b_key', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1' ], - [ $dbh->{pg_db}, $schema, $table2, '0', undef, 'dbd_pg_test2_b_key', 'btree', 2, 'c', 'A', '0', '1', undef, 'c', '1' ], - [ $dbh->{pg_db}, $schema, $table2, '0', undef, 'dbd_pg_test2_pkey', 'btree', 1, 'a', 'A', '0', '1', undef, 'a', '1' ], - [ $dbh->{pg_db}, $schema, $table2, '0', undef, 'dbd_pg_test2_pkey', 'btree', 2, 'b', 'A', '0', '1', undef, 'b', '1' ], - [ $dbh->{pg_db}, $schema, $table2, '1', undef, 'dbd_pg_test2_expr', 'btree', 1, undef, 'A', '0', '1', undef, '(a + b)', '1' ], - [ $dbh->{pg_db}, $schema, $table2, '1', undef, 'dbd_pg_test2_expr', 'btree', 2, 'c', 'A', '0', '1', undef, 'c', '1' ], + [ $dbh->{pg_db}, $schema, $table2, '0', undef, 'dbd_pg_test2_b_key', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table2, '0', undef, 'dbd_pg_test2_b_key', 'btree', 2, 'c', 'A', '0', '1', undef, 'c', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table2, '0', undef, 'dbd_pg_test2_pkey', 'btree', 1, 'a', 'A', '0', '1', undef, 'a', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table2, '0', undef, 'dbd_pg_test2_pkey', 'btree', 2, 'b', 'A', '0', '1', undef, 'b', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table2, '1', undef, 'dbd_pg_test2_expr', 'btree', 1, undef, $d, '0', '1', undef, '(a + b)', '1', $nf ], + [ $dbh->{pg_db}, $schema, $table2, '1', undef, 'dbd_pg_test2_expr', 'btree', 2, 'c', $d, '0', '1', undef, 'c', '1', $nl ], + [ $dbh->{pg_db}, $schema, $table2, undef, undef, undef, 'table', undef, undef, undef, '0', '0', undef, undef, undef, undef ], ], three => [ - [ $dbh->{pg_db}, $schema, $table3, undef, undef, undef, 'table', undef, undef, undef, '0', '0', undef, undef, undef ], ($with_include ? ( - [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_incl', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1' ], - [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_incl', 'btree', 2, 'c', 'A', '0', '1', undef, 'c', '0' ], + [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_incl', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_incl', 'btree', 2, 'c', undef, '0', '1', undef, 'c', '0', undef ], ) :()), - [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_index_b', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1' ], - [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_pkey', 'btree', 1, 'a', 'A', '0', '1', undef, 'a', '1' ], - [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_pred', 'btree', 1, 'c', 'A', '0', '1', '((c > 0) AND (c < 45))', 'c', '1' ], - ($with_oids ? [ $dbh->{pg_db}, $schema, $table3, '1', undef, 'dbd_pg_test3_oid', 'btree', 1, 'oid', 'A', '0', '1', undef, 'oid', '1' ] : ()), - [ $dbh->{pg_db}, $schema, $table3, '1', undef, 'dbd_pg_test3_index_c', 'hashed', 1, 'c', 'A', '0', '4', undef, 'c', '1' ], + [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_index_b', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_pkey', 'btree', 1, 'a', 'A', '0', '1', undef, 'a', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_pred', 'btree', 1, 'c', 'A', '0', '1', '((c > 0) AND (c < 45))', 'c', '1', 'last' ], + ($with_oids ? [ $dbh->{pg_db}, $schema, $table3, '1', undef, 'dbd_pg_test3_oid', 'btree', 1, 'oid', 'A', '0', '1', undef, 'oid', '1', 'last' ] : ()), + [ $dbh->{pg_db}, $schema, $table3, '1', undef, 'dbd_pg_test3_index_c', 'hashed', 1, 'c', undef, '0', '4', undef, 'c', '1', undef ], + [ $dbh->{pg_db}, $schema, $table3, undef, undef, undef, 'table', undef, undef, undef, '0', '0', undef, undef, undef, undef ], ], three_uo => [ ($with_include ? ( - [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_incl', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1' ], - [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_incl', 'btree', 2, 'c', 'A', '0', '1', undef, 'c', '0' ], + [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_incl', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_incl', 'btree', 2, 'c', undef, '0', '1', undef, 'c', '0', undef ], ) :()), - [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_index_b', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1' ], - [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_pkey', 'btree', 1, 'a', 'A', '0', '1', undef, 'a', '1' ], - [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_pred', 'btree', 1, 'c', 'A', '0', '1', '((c > 0) AND (c < 45))', 'c', '1' ], + [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_index_b', 'btree', 1, 'b', 'A', '0', '1', undef, 'b', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_pkey', 'btree', 1, 'a', 'A', '0', '1', undef, 'a', '1', 'last' ], + [ $dbh->{pg_db}, $schema, $table3, '0', undef, 'dbd_pg_test3_pred', 'btree', 1, 'c', 'A', '0', '1', '((c > 0) AND (c < 45))', 'c', '1', 'last' ], ], }; my @stats_columns = qw( TABLE_CAT TABLE_SCHEM TABLE_NAME NON_UNIQUE INDEX_QUALIFIER INDEX_NAME TYPE ORDINAL_POSITION COLUMN_NAME ASC_OR_DESC CARDINALITY PAGES FILTER_CONDITION - pg_expression pg_is_key_column + pg_expression pg_is_key_column pg_null_ordering ); ## Make some per-version tweaks ## 8.5 changed the way foreign key names are generated if ($pgversion >= 80500) { - $correct_stats->{two}[1][5] = $correct_stats->{two}[2][5] = 'dbd_pg_test2_b_c_key'; + $correct_stats->{two}[0][5] = $correct_stats->{two}[1][5] = 'dbd_pg_test2_b_c_key'; } my $stats; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/t/03smethod.t new/DBD-Pg-3.12.0/t/03smethod.t --- old/DBD-Pg-3.11.1/t/03smethod.t 2020-04-17 20:15:05.000000000 +0200 +++ new/DBD-Pg-3.12.0/t/03smethod.t 2020-05-05 16:54:24.000000000 +0200 @@ -701,7 +701,7 @@ SKIP: { if ($^O =~ /Win/) { - skip ('Cannot test POSIX signalling on Windows', 1); + skip ('Cannot test POSIX signaling on Windows', 1); } $dbh->do('INSERT INTO dbd_pg_test (id) VALUES (?)',undef,1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.11.1/t/04misc.t new/DBD-Pg-3.12.0/t/04misc.t --- old/DBD-Pg-3.11.1/t/04misc.t 2020-04-17 20:15:05.000000000 +0200 +++ new/DBD-Pg-3.12.0/t/04misc.t 2020-05-05 20:32:09.000000000 +0200 @@ -528,7 +528,8 @@ # PostgreSQL 8.1 fails with "ERROR: stack depth limit exceeded" # with the default value of 2048 -$dbh->do('set max_stack_depth = 4096'); +my $newdepth = $^O =~ /Win32/ ? 3000 : 4096; +$dbh->do("set max_stack_depth = $newdepth"); ## Check for problems with insane number of placeholders for my $ph (1..13) { my $total = 2**$ph;
