Hello community, here is the log from the commit of package perl-DBD-Pg for openSUSE:Factory checked in at 2014-05-16 18:12:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-DBD-Pg (Old) and /work/SRC/openSUSE:Factory/.perl-DBD-Pg.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-DBD-Pg" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-DBD-Pg/perl-DBD-Pg.changes 2014-04-09 13:15:18.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-DBD-Pg.new/perl-DBD-Pg.changes 2014-05-16 18:12:04.000000000 +0200 @@ -1,0 +2,18 @@ +Fri May 16 09:01:57 UTC 2014 - [email protected] + +- update to version 3.2.0 from 3.1.1 + Changes from upstream: + - Add new attribute pg_placeholder_nocolons to turn off all parsing of + colons into placeholders. + [Graham Ollis] (CPAN bug #95173) + + - Fix incorrect skip count for HandleSetErr + [Greg Sabino Mullane] (CPAN bug #94841) + + - Don't attempt to use the POSIX signalling stuff if the OS is Win + [Greg Sabino Mullane] (CPAN bug ##94841) + + - Fix missing check for PGINITDB in the test suite. + [Nicholas Clark] + +------------------------------------------------------------------- Old: ---- DBD-Pg-3.1.1.tar.gz New: ---- DBD-Pg-3.2.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-DBD-Pg.spec ++++++ --- /var/tmp/diff_new_pack.HgFNcn/_old 2014-05-16 18:12:04.000000000 +0200 +++ /var/tmp/diff_new_pack.HgFNcn/_new 2014-05-16 18:12:04.000000000 +0200 @@ -21,7 +21,7 @@ Summary: PostgreSQL database driver for the DBI module License: GPL-1.0+ or Artistic-1.0 Group: Development/Libraries/Perl -Version: 3.1.1 +Version: 3.2.0 Release: 0 Url: http://search.cpan.org/dist/DBD-Pg/ Source: http://www.cpan.org/authors/id/T/TU/TURNSTEP/DBD-Pg-%{version}.tar.gz ++++++ DBD-Pg-3.1.1.tar.gz -> DBD-Pg-3.2.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/Changes new/DBD-Pg-3.2.0/Changes --- old/DBD-Pg-3.1.1/Changes 2014-04-06 15:14:12.000000000 +0200 +++ new/DBD-Pg-3.2.0/Changes 2014-05-15 19:16:57.000000000 +0200 @@ -1,6 +1,22 @@ 'GSM' is Greg Sabino Mullane, [email protected] +Version 3.2.0 Released May 15, 2014 (git commit 897974c2865259bb9786d8b0989f8e42db0a0d79) + + - Add new attribute pg_placeholder_nocolons to turn off all parsing of + colons into placeholders. + [Graham Ollis] (CPAN bug #95173) + + - Fix incorrect skip count for HandleSetErr + [Greg Sabino Mullane] (CPAN bug #94841) + + - Don't attempt to use the POSIX signalling stuff if the OS is Win + [Greg Sabino Mullane] (CPAN bug ##94841) + + - Fix missing check for PGINITDB in the test suite. + [Nicholas Clark] + + Version 3.1.1 Released April 6, 2014 (git commit d337f93133e67267d54b65dc22a23f06e6883ad0) - Minor adjustments so tests pass in varying locales. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/META.yml new/DBD-Pg-3.2.0/META.yml --- old/DBD-Pg-3.1.1/META.yml 2014-04-06 15:11:14.000000000 +0200 +++ new/DBD-Pg-3.2.0/META.yml 2014-05-09 00:00:19.000000000 +0200 @@ -1,6 +1,6 @@ --- #YAML:1.0 name : DBD-Pg -version : 3.1.1 +version : 3.2.0 abstract : DBI PostgreSQL interface author: - Greg Sabino Mullane <[email protected]> @@ -30,10 +30,10 @@ provides: DBD::Pg: file : Pg.pm - version : 3.1.1 + version : 3.2.0 Bundle::DBD::Pg: file : lib/Bundle/DBD/Pg.pm - version : 3.1.1 + version : 3.2.0 keywords: - Postgres diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/Makefile.PL new/DBD-Pg-3.2.0/Makefile.PL --- old/DBD-Pg-3.1.1/Makefile.PL 2014-04-06 15:11:31.000000000 +0200 +++ new/DBD-Pg-3.2.0/Makefile.PL 2014-05-09 00:00:31.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.1.1'; +my $VERSION = '3.2.0'; ## App::Info is stored inside t/lib ## Create a proper path so we can use it below @@ -303,7 +303,7 @@ $string .= <<'MAKE_SPLINT'; -## This must be version 3.1.2 or better: earlier versions have many +## This must be version 3.2.0 or better: earlier versions have many ## problems parsing the DBI header files SPLINT = splint diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/Pg.pm new/DBD-Pg-3.2.0/Pg.pm --- old/DBD-Pg-3.1.1/Pg.pm 2014-04-06 15:11:40.000000000 +0200 +++ new/DBD-Pg-3.2.0/Pg.pm 2014-05-09 00:00:38.000000000 +0200 @@ -16,7 +16,7 @@ { package DBD::Pg; - use version; our $VERSION = qv('3.1.1'); + use version; our $VERSION = qv('3.2.0'); use DBI (); use DynaLoader (); @@ -1679,6 +1679,7 @@ pg_pass => undef, pg_pid => undef, pg_placeholder_dollaronly => undef, + pg_placeholder_nocolons => undef, pg_port => undef, pg_prepare_now => undef, pg_protocol => undef, @@ -1736,6 +1737,7 @@ pg_cmd_status => undef, pg_oid_status => undef, pg_placeholder_dollaronly => undef, + pg_placeholder_nocolons => undef, pg_prepare_name => undef, pg_prepare_now => undef, pg_segments => undef, @@ -1776,7 +1778,7 @@ =head1 VERSION -This documents version 3.1.1 of the DBD::Pg module +This documents version 3.2.0 of the DBD::Pg module =head1 DESCRIPTION @@ -2604,6 +2606,20 @@ {pg_placeholder_dollaronly => 1}); $sth->execute('segname'); +If your queries use array slices but you still want to use question marks as +placeholders, you can tell DBD::Pg to ignore just colon placeholders by setting +the L</pg_placeholder_nocolons> attribute in the same way. Examples: + + $dbh->{pg_placeholder_nocolons} = 1; + $sth = $dbh->prepare(q{SELECT array[1:2] FROM mytable WHERE id = ?}); + $sth->execute(1); + +Again, you may set it param time as well: + + $sth = $dbh->prepare(q{SELECT array[1:2] FROM mytable WHERE id = ?}. + {pg_placeholder_nocolons => 1}); + $sth->execute(1); + =head3 B<prepare_cached> $sth = $dbh->prepare_cached($statement, \%attr); @@ -3203,6 +3219,12 @@ are not treated as L<placeholders|/Placeholders>. Useful for statements that contain unquoted question marks, such as geometric operators. +=head3 B<pg_placeholder_nocolons> (boolean) + +DBD::Pg specific attribute. Defaults to false. When true, colons inside of statements +are not treated as L<placeholders|/Placeholders>. Useful for statements that contain an +array slice. + =head3 B<pg_enable_utf8> (integer) DBD::Pg specific attribute. The behavior of DBD::Pg with regards to this flag has @@ -3870,6 +3892,12 @@ being prepared are not treated as placeholders. Useful for statements that contain unquoted question marks, such as geometric operators. +=head3 B<pg_placeholder_nocolons> (boolean) + +DBD::Pg specific attribute. Defaults to off. When true, colons inside of statements +are not treated as L<placeholders|/Placeholders>. Useful for statements that contain an +array slice. + =head3 B<pg_async> (integer) DBD::Pg specific attribute. Indicates the current behavior for asynchronous queries. See the section diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/README new/DBD-Pg-3.2.0/README --- old/DBD-Pg-3.1.1/README 2014-04-06 15:11:19.000000000 +0200 +++ new/DBD-Pg-3.2.0/README 2014-05-09 00:00:23.000000000 +0200 @@ -5,7 +5,7 @@ DESCRIPTION: ------------ -This is version 3.1.1 of DBD::Pg, the Perl interface to Postgres using DBI. +This is version 3.2.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.1.1/SIGNATURE new/DBD-Pg-3.2.0/SIGNATURE --- old/DBD-Pg-3.1.1/SIGNATURE 2014-04-06 15:14:18.000000000 +0200 +++ new/DBD-Pg-3.2.0/SIGNATURE 2014-05-15 19:18:05.000000000 +0200 @@ -15,43 +15,43 @@ Hash: RIPEMD160 SHA1 6f4143600430e0bc949c17b05ac34844e5fb3ee4 .perlcriticrc -SHA1 a0fded098274e0e7874a3f658d1a3b7eb6dd3fa4 Changes +SHA1 26676b4eade88496081f601219fb8e7ad68099bd Changes SHA1 21bc5f3c797d4d5b72285198ffeb1e4e1f0a2902 LICENSES/artistic.txt SHA1 06877624ea5c77efe3b7e39b0f909eda6e25a4ec LICENSES/gpl-2.0.txt SHA1 9c2b33069c9ceb7cd57ea0aeb7b8de144ab75672 MANIFEST SHA1 8d2857ee9a6326c08507d8552f86709dd068fbe5 MANIFEST.SKIP -SHA1 c5e62c6346bf78aa662e61af3ab3294f96ddf265 META.yml -SHA1 1ff5b59d2ec8e9be3b83c725a9edb102de4b033c Makefile.PL +SHA1 f1d2c44cc3da70ca53f93135d0d132443ef0a7c8 META.yml +SHA1 0fb64fb841552ec2e848475c9f8bfef3e3c1efd0 Makefile.PL SHA1 92b6c5da08942e820f090ee1adb4e55c1f46fe8c Pg.h -SHA1 f8ddef88bb344a536178ca58f161607e6d7ae1ea Pg.pm +SHA1 b0e38dd015de6b00db80f48a8e0fc2220609d79d Pg.pm SHA1 27ff80390a0518b5d24dd15b90b8cdd7710d76dc Pg.xs -SHA1 0fd29ac2a3601b13ad5566253b7664fc99e45087 README +SHA1 30d7e2bdae67a937e6f7be1ad75a1d06d201fc69 README SHA1 34036e0b0dc15d899f561e8177227661eaaef2f1 README.dev SHA1 7e213bf90f513595b59c0a2c4ef94fea1592efcf README.win32 SHA1 3aac8fa93676046f9fa31d8fd05914bf638b6c1f TODO -SHA1 843e1fe7942a17f4d185c14936fea9008ea49dba dbdimp.c -SHA1 07640e7e761d0aca573f11c777294a9c0576c25c dbdimp.h +SHA1 9e5cbc1037d0b3707a76489870ac81caffacf781 dbdimp.c +SHA1 9cb68abb0de526d0a9c58d52d2b6868642d50cec dbdimp.h SHA1 6c33bcf138e577722283bef02fceb8cbce4d100d dbivport.h -SHA1 5a44ec0cc890ecee7f8e4de8066af43c0f30ad10 lib/Bundle/DBD/Pg.pm +SHA1 aeb6d457bbe7b29a9856131b6d831884f44b15e9 lib/Bundle/DBD/Pg.pm SHA1 7e97b01e2facd3e71a79d400979357e609cc922c quote.c SHA1 7ccff1056809e35bcc1a3ff4f5a3d337f207681f quote.h SHA1 93aa7e8cae0a361d1e6163dea0281ebff41f3c5f t/00_signature.t SHA1 4691376dd83eef11b59ee6b1bb4ce2eb951e1920 t/00basic.t SHA1 1f50adea4f2c7a5110eca34dc8b6d5dc9d4121ed t/01connect.t SHA1 42b566f777c15a3d07e41d4bca55be435349376c t/01constants.t -SHA1 eebcef07f13442996ab8dfd033d315f3eb588cae t/02attribs.t +SHA1 a4d444f64951fc1eadd1cba8291e366d13359d81 t/02attribs.t SHA1 664fb661b7f70a32468f801471f9dd413c8df25a t/03dbmethod.t -SHA1 57cc8220ca257509b5ece583602d88111c0b38f0 t/03smethod.t +SHA1 4e16959f7f2e68667a42c86c3d35e8d317034b23 t/03smethod.t SHA1 dd47bd1ac55072177a57f856daca98904939112c t/04misc.t SHA1 9113f062bf144a5768e9e4e98a0f140f498caee1 t/06bytea.t SHA1 c4c43b2229411c3850de0a9cb9bae8e5ccc7d822 t/07copy.t SHA1 e6fe3d9c739d31f344c4a56382004a97202e4d51 t/08async.t SHA1 3ead013fa8268caf62b6401a00969d70d0596d06 t/09arrays.t -SHA1 330b60d4794fee82c64b4e2876dcb43f065a8edc t/12placeholders.t +SHA1 9eaaff8382eaaaed376ee978cf19fa6028ee3c68 t/12placeholders.t SHA1 81558ca5c783ea6792fd103444a04df615a8d127 t/20savepoints.t SHA1 e27c7167fdca6072b68f7b0b465504b1de5f27bc t/30unicode.t SHA1 b1e1d98917296def69afa730d963a3d16c23def1 t/99cleanup.t -SHA1 c058b306c90de0d6b2830b9a517ac7f1a65ebe60 t/dbdpg_test_setup.pl +SHA1 af0126653ca2942b251cf273a25d1a1768cac33e t/dbdpg_test_setup.pl SHA1 0e196509e83b3ca603478d994a0837edd51b841d t/lib/App/Info.pm SHA1 e02b0b5206c37280f9259e6a02839cbfc10be53f t/lib/App/Info/Handler.pm SHA1 cc5d256a57f1fe0ddc587685a0cd64f812bb1ce9 t/lib/App/Info/Handler/Print.pm @@ -66,7 +66,7 @@ SHA1 f07cd5ecaeb854c81ceb9206364979cf607e6546 win32.mak -----BEGIN PGP SIGNATURE----- -iEYEAREDAAYFAlNBUyoACgkQvJuQZxSWSshRYwCg8dQpAlnHHQSQujX2nLWSxDMX -nwgAnAsrAX/om2XuLcFfh5CiRIaxSFOG -=8GAU +iEYEAREDAAYFAlN09s0ACgkQvJuQZxSWSshf7QCgjWXLmEPCVWODpfmvPZUTE2RS +JEoAn0yH+r9pRrvg7p1IQe7n+0spR4JD +=pVp9 -----END PGP SIGNATURE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/dbdimp.c new/DBD-Pg-3.2.0/dbdimp.c --- old/DBD-Pg-3.1.1/dbdimp.c 2014-04-04 21:24:52.000000000 +0200 +++ new/DBD-Pg-3.2.0/dbdimp.c 2014-05-08 23:52:48.000000000 +0200 @@ -236,6 +236,7 @@ imp_dbh->prepare_now = DBDPG_FALSE; imp_dbh->done_begin = DBDPG_FALSE; imp_dbh->dollaronly = DBDPG_FALSE; + imp_dbh->nocolons = DBDPG_FALSE; imp_dbh->expand_array = DBDPG_TRUE; imp_dbh->txn_read_only = DBDPG_FALSE; imp_dbh->pid_number = getpid(); @@ -791,6 +792,12 @@ retsv = newSViv((IV)imp_dbh->switch_prepared); break; + case 23: /* pg_placeholder_nocolons */ + + if (strEQ("pg_placeholder_nocolons", key)) + retsv = newSViv((IV)imp_dbh->nocolons); + break; + case 25: /* pg_placeholder_dollaronly */ if (strEQ("pg_placeholder_dollaronly", key)) @@ -954,6 +961,14 @@ } break; + case 23: /* pg_placeholder_nocolons */ + + if (strEQ("pg_placeholder_nocolons", key)) { + imp_dbh->nocolons = newval ? DBDPG_TRUE : DBDPG_FALSE; + retval = 1; + } + break; + case 25: /* pg_placeholder_dollaronly */ if (strEQ("pg_placeholder_dollaronly", key)) { @@ -1113,6 +1128,12 @@ retsv = newSViv((IV)imp_sth->switch_prepared); break; + case 23: /* pg_placeholder_nocolons */ + + if (strEQ("pg_placeholder_nocolons", key)) + retsv = newSViv((IV)imp_sth->nocolons); + break; + case 25: /* pg_placeholder_dollaronly */ if (strEQ("pg_placeholder_dollaronly", key)) @@ -1389,6 +1410,14 @@ } break; + case 23: /* pg_placeholder_nocolons */ + + if (strEQ("pg_placeholder_nocolons", key)) { + imp_sth->nocolons = SvTRUE(valuesv) ? DBDPG_TRUE : DBDPG_FALSE; + retval = 1; + } + break; + case 25: /* pg_placeholder_dollaronly */ if (strEQ("pg_placeholder_dollaronly", key)) { @@ -1549,6 +1578,7 @@ imp_sth->switch_prepared = imp_dbh->switch_prepared; imp_sth->prepare_now = imp_dbh->prepare_now; imp_sth->dollaronly = imp_dbh->dollaronly; + imp_sth->nocolons = imp_dbh->nocolons; /* Parse and set any attributes passed in */ if (attribs) { @@ -1565,6 +1595,9 @@ if ((svp = hv_fetch((HV*)SvRV(attribs),"pg_placeholder_dollaronly", 25, 0)) != NULL) { imp_sth->dollaronly = SvTRUE(*svp) ? DBDPG_TRUE : DBDPG_FALSE; } + if ((svp = hv_fetch((HV*)SvRV(attribs),"pg_placeholder_nocolons", 23, 0)) != NULL) { + imp_sth->nocolons = SvTRUE(*svp) ? DBDPG_TRUE : DBDPG_FALSE; + } if ((svp = hv_fetch((HV*)SvRV(attribs),"pg_async", 8, 0)) != NULL) { imp_sth->async_flag = (int)SvIV(*svp); } @@ -1950,7 +1983,7 @@ placeholder_type = 1; } /* Colon style, but skip two colons in a row (e.g. myval::float) */ - else if (':' == ch) { + else if (':' == ch && ! imp_sth->nocolons) { if (':' == *statement) { /* Might as well skip _all_ consecutive colons */ while(':' == *statement) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/dbdimp.h new/DBD-Pg-3.2.0/dbdimp.h --- old/DBD-Pg-3.1.1/dbdimp.h 2014-03-06 18:07:42.000000000 +0100 +++ new/DBD-Pg-3.2.0/dbdimp.h 2014-05-08 23:52:48.000000000 +0200 @@ -36,6 +36,7 @@ bool prepare_now; /* force immediate prepares, even with placeholders. Set by user, default is 0 */ bool done_begin; /* have we done a begin? (e.g. are we in a transaction?) */ bool dollaronly; /* only consider $1, $2 ... as valid placeholders */ + bool nocolons; /* do not consider :1, :2 ... as valid placeholders */ bool expand_array; /* transform arrays from the db into Perl arrays? Default is 1 */ bool txn_read_only; /* are we in read-only mode? Set with $dbh->{ReadOnly} */ @@ -112,6 +113,7 @@ bool has_default; /* does it have one or more 'DEFAULT' values? */ bool has_current; /* does it have one or more 'DEFAULT' values? */ bool dollaronly; /* Only use $1 as placeholders, allow all else */ + bool nocolons; /* do not consider :1, :2 ... as valid placeholders */ bool use_inout; /* Any placeholders using inout? */ bool all_bound; /* Have all placeholders been bound? */ }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/lib/Bundle/DBD/Pg.pm new/DBD-Pg-3.2.0/lib/Bundle/DBD/Pg.pm --- old/DBD-Pg-3.1.1/lib/Bundle/DBD/Pg.pm 2014-04-06 15:11:00.000000000 +0200 +++ new/DBD-Pg-3.2.0/lib/Bundle/DBD/Pg.pm 2014-05-09 00:00:08.000000000 +0200 @@ -4,7 +4,7 @@ use strict; use warnings; -$VERSION = '3.1.1'; +$VERSION = '3.2.0'; 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/t/02attribs.t new/DBD-Pg-3.2.0/t/02attribs.t --- old/DBD-Pg-3.1.1/t/02attribs.t 2014-04-06 15:10:37.000000000 +0200 +++ new/DBD-Pg-3.2.0/t/02attribs.t 2014-04-18 21:51:38.000000000 +0200 @@ -1168,7 +1168,7 @@ skip (q{Cannot test "HandleError" attribute because client_min_messages is set to 'error'}, 2); } SKIP: { - skip (q{Cannot test "HandleSetErr" attribute because client_min_messages is set to 'error'}, 4); + skip (q{Cannot test "HandleSetErr" attribute because client_min_messages is set to 'error'}, 3); } } else { @@ -1541,12 +1541,12 @@ is ($attrib, '', $t); SKIP: { - skip ('Cannot test database handle "AutoInactiveDestroy" on a non-forking system', 8) + skip ('Cannot test database handle "AutoInactiveDestroy" on a non-forking system', 9) if $^O =~ /Win/; require Test::Simple; - skip ('Test::Simple version 0.47 or better required for testing of attribute "AutoInactiveDestroy"', 8) + skip ('Test::Simple version 0.47 or better required for testing of attribute "AutoInactiveDestroy"', 9) if $Test::Simple::VERSION < 0.47; # Test of forking. Hang on to your hats @@ -1600,7 +1600,7 @@ is ($state, '08000', $t); $t=qq{pg_ping gives an error code of -2 after the child has exited ("AutoInactiveDestroy" = $destroy)}; - is ( $dbh->pg_ping(), -2,$t); + is ( $dbh->pg_ping(), -2, $t); ok ($dbh->disconnect(), 'Disconnect from database'); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/t/03smethod.t new/DBD-Pg-3.2.0/t/03smethod.t --- old/DBD-Pg-3.1.1/t/03smethod.t 2014-03-06 18:07:42.000000000 +0100 +++ new/DBD-Pg-3.2.0/t/03smethod.t 2014-04-18 20:39:22.000000000 +0200 @@ -706,6 +706,10 @@ skip ('Not testing cancel 7.4-compiled servers', 1); } + if ($^O =~ /Win/) { + skip ('Cannot test POSIX signalling on Windows', 1); + } + $dbh->do('INSERT INTO dbd_pg_test (id) VALUES (?)',undef,1); $dbh->commit; $dbh->do('SELECT * FROM dbd_pg_test WHERE id = ? FOR UPDATE',undef,1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/t/12placeholders.t new/DBD-Pg-3.2.0/t/12placeholders.t --- old/DBD-Pg-3.1.1/t/12placeholders.t 2014-04-04 16:53:28.000000000 +0200 +++ new/DBD-Pg-3.2.0/t/12placeholders.t 2014-05-02 16:57:37.000000000 +0200 @@ -17,7 +17,7 @@ if (! $dbh) { plan skip_all => 'Connection to database failed, cannot continue testing'; } -plan tests => 243; +plan tests => 250; my $t='Connect to database for placeholder testing'; isnt ($dbh, undef, $t); @@ -194,7 +194,7 @@ eval { $dbh->do('DROP TABLE dbd_pg_test_geom'); }; $dbh->commit(); -$SQL = 'CREATE TABLE dbd_pg_test_geom ('; +$SQL = 'CREATE TABLE dbd_pg_test_geom ( id INT, argh TEXT[], '; for my $type (@geotypes) { $SQL .= "x$type $type,"; } @@ -465,6 +465,7 @@ $dbh->do(q{SET search_path TO ?}, undef, 'pg_catalog'); }; is ($@, q{}, $t); +$dbh->rollback(); $t='Calling do() with DML placeholder works'; $dbh->commit(); @@ -492,10 +493,9 @@ $sth->execute('pg_catalog'); }; is ($@, q{}, $t); -$dbh->do(q{SET search_path TO DEFAULT}); +$dbh->rollback(); $t='Prepare/execute does not allow geometric operators'; -$dbh->commit(); eval { $sth = $dbh->prepare(q{SELECT ?- lseg '(1,0),(1,1)'}); $sth->execute(); @@ -552,6 +552,58 @@ }; like ($@, qr{unbound placeholder}, $t); +$t=q{Value of placeholder_nocolons defaults to 0}; +is ($dbh->{pg_placeholder_nocolons}, 0, $t); + +$t='Without placeholder_nocolons, queries with array slices fail'; +$SQL = q{SELECT argh[1:2] FROM dbd_pg_test_geom WHERE id = ?}; +eval { + $sth = $dbh->prepare($SQL); + $sth->execute(1); + $sth->finish(); +}; +like ($@, qr{Cannot mix placeholder styles}, $t); + +$t='Use of statement level placeholder_nocolons allows use of ? placeholders while ignoring :'; +eval { + $sth = $dbh->prepare($SQL, {pg_placeholder_nocolons => 1}); + $sth->execute(1); + $sth->finish(); +}; +is ($@, q{}, $t); + +$t='Use of database level placeholder_nocolons allows use of ? placeholders while ignoring :'; +$dbh->{pg_placeholder_nocolons} = 1; +eval { + $sth = $dbh->prepare($SQL); + $sth->execute(1); + $sth->finish(); +}; +is ($@, q{}, $t); + +$t=q{Value of placeholder_nocolons can be retrieved}; +is ($dbh->{pg_placeholder_nocolons}, 1, $t); + +$t='Use of statement level placeholder_nocolons allows use of $ placeholders while ignoring :'; +$dbh->{pg_placeholder_nocolons} = 0; +$SQL = q{SELECT argh[1:2] FROM dbd_pg_test_geom WHERE id = $1}; +eval { + $sth = $dbh->prepare($SQL, {pg_placeholder_nocolons => 1}); + $sth->execute(1); + $sth->finish(); +}; +is ($@, q{}, $t); + +$t='Use of database level placeholder_nocolons allows use of $ placeholders while ignoring :'; +$dbh->{pg_placeholder_nocolons} = 1; +eval { + $sth = $dbh->prepare($SQL); + $sth->execute(1); + $sth->finish(); +}; +is ($@, q{}, $t); +$dbh->{pg_placeholder_nocolons} = 0; + $t='Prepare works with identical named placeholders'; eval { $sth = $dbh->prepare(q{SELECT :row, :row, :row, :yourboat}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-Pg-3.1.1/t/dbdpg_test_setup.pl new/DBD-Pg-3.2.0/t/dbdpg_test_setup.pl --- old/DBD-Pg-3.1.1/t/dbdpg_test_setup.pl 2014-04-06 15:05:25.000000000 +0200 +++ new/DBD-Pg-3.2.0/t/dbdpg_test_setup.pl 2014-05-15 17:34:09.000000000 +0200 @@ -264,7 +264,7 @@ $helpconnect = 16; ## Use the initdb found by App::Info - $initdb = $ENV{DBDPG_INITDB} || $ENV{DBDPG_INITDB} || ''; + $initdb = $ENV{DBDPG_INITDB} || $ENV{PGINITDB} || ''; if (!$initdb or ! -e $initdb) { $initdb = 'initdb'; } -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
