Hello community, here is the log from the commit of package perl-DBI for openSUSE:Factory checked in at 2018-01-09 14:34:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-DBI (Old) and /work/SRC/openSUSE:Factory/.perl-DBI.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-DBI" Tue Jan 9 14:34:48 2018 rev:44 rq:561822 version:1.639 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-DBI/perl-DBI.changes 2017-09-04 12:18:36.196986480 +0200 +++ /work/SRC/openSUSE:Factory/.perl-DBI.new/perl-DBI.changes 2018-01-09 14:34:49.219497618 +0100 @@ -1,0 +2,6 @@ +Fri Dec 29 06:13:44 UTC 2017 - [email protected] + +- updated to 1.639 + see /usr/share/doc/packages/perl-DBI/Changes + +------------------------------------------------------------------- Old: ---- DBI-1.637.tar.gz New: ---- DBI-1.639.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-DBI.spec ++++++ --- /var/tmp/diff_new_pack.wiKadr/_old 2018-01-09 14:34:49.755472475 +0100 +++ /var/tmp/diff_new_pack.wiKadr/_new 2018-01-09 14:34:49.755472475 +0100 @@ -17,7 +17,7 @@ Name: perl-DBI -Version: 1.637 +Version: 1.639 Release: 0 %define cpan_name DBI Summary: Database independent interface for Perl @@ -30,7 +30,9 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros +BuildRequires: perl(Storable) >= 2.16 BuildRequires: perl(Test::Simple) >= 0.90 +Requires: perl(Storable) >= 2.16 %{perl_requires} %description ++++++ DBI-1.637.tar.gz -> DBI-1.639.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/Changes new/DBI-1.639/Changes --- old/DBI-1.637/Changes 2017-08-14 00:02:28.000000000 +0200 +++ new/DBI-1.639/Changes 2017-12-28 15:17:04.000000000 +0100 @@ -6,7 +6,20 @@ =cut -=head2 Changes in DBI 1.637 - ... +=head2 Changes in DBI 1.638 - ... + + Fix UTF-8 support for warn/croak calls within DBI internals, + thanks to pali #53 + Fix dependency on Storable for perl older than 5.8.9, + thanks to H.Merijn Brand. + + Add DBD::Mem driver, a pure-perl in-memory driver using DBI::DBD::SqlEngine, + thanks to Jens Rehsack #42 + + Corrected missing semicolon in example in documentation, + thanks to pali #55 + +=head2 Changes in DBI 1.637 - 16th August 2017 Fix use of externally controlled format string (CWE-134) thanks to pali #44 This could cause a crash if, for example, a db error contained a %. @@ -15,6 +28,7 @@ Fix tests for perl without dot in @INC RT#120443 Fix loss of error message on parent handle, thanks to charsbar #34 Fix disappearing $_ inside callbacks, thanks to robschaber #47 + Fix dependency on Storable for perl older than 5.8.9 Allow objects to be used as passwords without throwing an error, thanks to demerphq #40 Allow $sth NAME_* attributes to be set from Perl code, re #45 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/DBI.pm new/DBI-1.639/DBI.pm --- old/DBI-1.637/DBI.pm 2017-08-14 10:04:12.000000000 +0200 +++ new/DBI-1.639/DBI.pm 2017-12-28 15:33:38.000000000 +0100 @@ -11,7 +11,7 @@ require 5.008_001; BEGIN { -our $XS_VERSION = our $VERSION = "1.637"; # ==> ALSO update the version in the pod text below! +our $XS_VERSION = our $VERSION = "1.639"; # ==> ALSO update the version in the pod text below! $VERSION = eval $VERSION; } @@ -143,7 +143,7 @@ =head2 NOTES -This is the DBI specification that corresponds to DBI version 1.637 +This is the DBI specification that corresponds to DBI version 1.639 (see L<DBI::Changes> for details). The DBI is evolving at a steady pace, so it's good to check that @@ -338,6 +338,7 @@ ing_ => { class => 'DBD::Ingres', }, ix_ => { class => 'DBD::Informix', }, jdbc_ => { class => 'DBD::JDBC', }, + mem_ => { class => 'DBD::Mem', }, mo_ => { class => 'DBD::MO', }, monetdb_ => { class => 'DBD::monetdb', }, msql_ => { class => 'DBD::mSQL', }, @@ -7266,7 +7267,7 @@ # but do it in an eval{} as it may also fail eval { $dbh->rollback }; # add other application on-error-clean-up code here - } + }; If the C<RaiseError> attribute is not set, then DBI calls would need to be manually checked for errors, typically like this: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/DBI.xs new/DBI-1.639/DBI.xs --- old/DBI-1.637/DBI.xs 2017-08-13 22:48:19.000000000 +0200 +++ new/DBI-1.639/DBI.xs 2017-12-28 15:10:30.000000000 +0100 @@ -85,10 +85,10 @@ #endif #ifndef warn_sv -static void warn_sv(SV *sv) { dTHX; warn("%s", SvPV_nolen(sv)); } +static void warn_sv(SV *sv) { dTHX; warn("%" SVf, SVfARG(sv)); } #endif #ifndef croak_sv -static void croak_sv(SV *sv) { dTHX; croak("%s", SvPV_nolen(sv)); } +static void croak_sv(SV *sv) { dTHX; sv_setsv(ERRSV, sv); croak(NULL); } #endif /* types of method name */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/MANIFEST new/DBI-1.639/MANIFEST --- old/DBI-1.637/MANIFEST 2017-08-16 10:45:44.000000000 +0200 +++ new/DBI-1.639/MANIFEST 2017-12-28 15:36:35.000000000 +0100 @@ -39,6 +39,7 @@ lib/DBD/Gofer/Transport/null.pm DBD::Gofer transport that executes in same process (for testing) lib/DBD/Gofer/Transport/pipeone.pm DBD::Gofer transport to new subprocess for each request lib/DBD/Gofer/Transport/stream.pm DBD::Gofer transport for ssh etc +lib/DBD/Mem.pm A pure-perl in-memory driver using DBI::DBD::SqlEngine lib/DBD/NullP.pm An empty example Driver module lib/DBD/Proxy.pm Proxy driver lib/DBD/Sponge.pm A driver for fake cursors (precached data) @@ -103,6 +104,7 @@ t/51dbm_file.t extended DBD::File tests (through DBD::DBM) t/52dbm_complex.t Complex DBD::DBM tests with SQL::Statement t/53sqlengine_adv.t +t/54_dbd_mem.t t/60preparse.t t/65transact.t t/70callbacks.t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/META.json new/DBI-1.639/META.json --- old/DBI-1.637/META.json 2017-08-16 10:45:44.000000000 +0200 +++ new/DBI-1.639/META.json 2017-12-28 15:36:35.000000000 +0100 @@ -4,7 +4,7 @@ "Tim Bunce ([email protected])" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.150005", + "generated_by" : "ExtUtils::MakeMaker version 7.1002, CPAN::Meta::Converter version 2.150005", "license" : [ "perl_5" ], @@ -42,6 +42,7 @@ "SQL::Statement" : "1.33" }, "requires" : { + "Storable" : "2.16", "perl" : "5.008" } } @@ -58,8 +59,8 @@ "x_IRC" : "irc://irc.perl.org/#dbi", "x_MailingList" : "mailto:[email protected]" }, - "version" : "1.637", - "x_serialization_backend" : "JSON::PP version 2.27203", + "version" : "1.639", + "x_serialization_backend" : "JSON::PP version 2.27300_01", "x_suggests" : { "Clone" : 0.34, "DB_File" : 0, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/META.yml new/DBI-1.639/META.yml --- old/DBI-1.637/META.yml 2017-08-16 10:45:44.000000000 +0200 +++ new/DBI-1.639/META.yml 2017-12-28 15:36:35.000000000 +0100 @@ -16,7 +16,7 @@ DBD::RAM: '0.072' SQL::Statement: '1.33' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.150005' +generated_by: 'ExtUtils::MakeMaker version 7.1002, CPAN::Meta::Converter version 2.150005' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -27,6 +27,7 @@ - t - inc requires: + Storable: '2.16' perl: '5.008' resources: IRC: irc://irc.perl.org/#dbi @@ -34,8 +35,8 @@ homepage: http://dbi.perl.org/ license: http://dev.perl.org/licenses/ repository: https://github.com/perl5-dbi/dbi -version: '1.637' -x_serialization_backend: 'CPAN::Meta::YAML version 0.012' +version: '1.639' +x_serialization_backend: 'CPAN::Meta::YAML version 0.018' x_suggests: Clone: 0.34 DB_File: 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/Makefile.PL new/DBI-1.639/Makefile.PL --- old/DBI-1.637/Makefile.PL 2014-09-21 13:17:47.000000000 +0200 +++ new/DBI-1.639/Makefile.PL 2017-12-28 14:46:12.000000000 +0100 @@ -76,6 +76,7 @@ }, }, PREREQ_PM => { + 'Storable' => 2.16, ( $^O eq 'MSWin32' ? ( 'File::Spec' => 3.31, ) : () ), }, CONFLICTS => { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/lib/DBD/Mem.pm new/DBI-1.639/lib/DBD/Mem.pm --- old/DBI-1.637/lib/DBD/Mem.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/DBI-1.639/lib/DBD/Mem.pm 2017-12-28 14:58:15.000000000 +0100 @@ -0,0 +1,376 @@ +# -*- perl -*- +# +# DBD::Mem - A DBI driver for in-memory tables +# +# This module is currently maintained by +# +# Jens Rehsack +# +# Copyright (C) 2016,2017 by Jens Rehsack +# +# All rights reserved. +# +# You may distribute this module under the terms of either the GNU +# General Public License or the Artistic License, as specified in +# the Perl README file. + +require 5.008; +use strict; + +################# +package DBD::Mem; +################# +use base qw( DBI::DBD::SqlEngine ); +use vars qw($VERSION $ATTRIBUTION $drh); +$VERSION = '0.001'; +$ATTRIBUTION = 'DBD::Mem by Jens Rehsack'; + +# no need to have driver() unless you need private methods +# +sub driver ($;$) +{ + my ( $class, $attr ) = @_; + return $drh if ($drh); + + # do the real work in DBI::DBD::SqlEngine + # + $attr->{Attribution} = 'DBD::Mem by Jens Rehsack'; + $drh = $class->SUPER::driver($attr); + + return $drh; +} + +sub CLONE +{ + undef $drh; +} + +##################### +package DBD::Mem::dr; +##################### +$DBD::Mem::dr::imp_data_size = 0; +@DBD::Mem::dr::ISA = qw(DBI::DBD::SqlEngine::dr); + +# you could put some :dr private methods here + +# you may need to over-ride some DBI::DBD::SqlEngine::dr methods here +# but you can probably get away with just letting it do the work +# in most cases + +##################### +package DBD::Mem::db; +##################### +$DBD::Mem::db::imp_data_size = 0; +@DBD::Mem::db::ISA = qw(DBI::DBD::SqlEngine::db); + +use Carp qw/carp/; + +sub set_versions +{ + my $this = $_[0]; + $this->{mem_version} = $DBD::Mem::VERSION; + return $this->SUPER::set_versions(); +} + +sub init_valid_attributes +{ + my $dbh = shift; + + # define valid private attributes + # + # attempts to set non-valid attrs in connect() or + # with $dbh->{attr} will throw errors + # + # the attrs here *must* start with mem_ or foo_ + # + # see the STORE methods below for how to check these attrs + # + $dbh->{mem_valid_attrs} = { + mem_version => 1, # verbose DBD::Mem version + mem_valid_attrs => 1, # DBD::Mem::db valid attrs + mem_readonly_attrs => 1, # DBD::Mem::db r/o attrs + mem_meta => 1, # DBD::Mem public access for f_meta + mem_tables => 1, # DBD::Mem public access for f_meta + }; + $dbh->{mem_readonly_attrs} = { + mem_version => 1, # verbose DBD::Mem version + mem_valid_attrs => 1, # DBD::Mem::db valid attrs + mem_readonly_attrs => 1, # DBD::Mem::db r/o attrs + mem_meta => 1, # DBD::Mem public access for f_meta + }; + + $dbh->{mem_meta} = "mem_tables"; + + return $dbh->SUPER::init_valid_attributes(); +} + +sub get_mem_versions +{ + my ( $dbh, $table ) = @_; + $table ||= ''; + + my $meta; + my $class = $dbh->{ImplementorClass}; + $class =~ s/::db$/::Table/; + $table and ( undef, $meta ) = $class->get_table_meta( $dbh, $table, 1 ); + $meta or ( $meta = {} and $class->bootstrap_table_meta( $dbh, $meta, $table ) ); + + return sprintf( "%s using %s", $dbh->{mem_version}, $AnyData2::VERSION ); +} + +package DBD::Mem::st; + +use strict; +use warnings; + +our $imp_data_size = 0; +our @ISA = qw(DBI::DBD::SqlEngine::st); + +############################ +package DBD::Mem::Statement; +############################ + +@DBD::Mem::Statement::ISA = qw(DBI::DBD::SqlEngine::Statement); + + +sub open_table ($$$$$) +{ + my ( $self, $data, $table, $createMode, $lockMode ) = @_; + + my $class = ref $self; + $class =~ s/::Statement/::Table/; + + my $flags = { + createMode => $createMode, + lockMode => $lockMode, + }; + if( defined( $data->{Database}->{mem_table_data}->{$table} ) && $data->{Database}->{mem_table_data}->{$table}) + { + my $t = $data->{Database}->{mem_tables}->{$table}; + $t->seek( $data, 0, 0 ); + return $t; + } + + return $self->SUPER::open_table($data, $table, $createMode, $lockMode); +} + +# ====== DataSource ============================================================ + +package DBD::Mem::DataSource; + +use strict; +use warnings; + +use Carp; + +@DBD::Mem::DataSource::ISA = "DBI::DBD::SqlEngine::DataSource"; + +sub complete_table_name ($$;$) +{ + my ( $self, $meta, $table, $respect_case ) = @_; + $table; +} + +sub open_data ($) +{ + my ( $self, $meta, $attrs, $flags ) = @_; + defined $meta->{data_tbl} or $meta->{data_tbl} = []; +} + +######################## +package DBD::Mem::Table; +######################## + +# shamelessly stolen from SQL::Statement::RAM + +use Carp qw/croak/; + +@DBD::Mem::Table::ISA = qw(DBI::DBD::SqlEngine::Table); + +use Carp qw(croak); + +sub new +{ + #my ( $class, $tname, $col_names, $data_tbl ) = @_; + my ( $class, $data, $attrs, $flags ) = @_; + my $self = $class->SUPER::new($data, $attrs, $flags); + + my $meta = $self->{meta}; + $self->{records} = $meta->{data_tbl}; + $self->{index} = 0; + + $self; +} + +sub bootstrap_table_meta +{ + my ( $self, $dbh, $meta, $table ) = @_; + + defined $meta->{sql_data_source} or $meta->{sql_data_source} = "DBD::Mem::DataSource"; + + $meta; +} + +sub fetch_row +{ + my ( $self, $data ) = @_; + + return $self->{row} = + ( $self->{records} and ( $self->{index} < scalar( @{ $self->{records} } ) ) ) + ? [ @{ $self->{records}->[ $self->{index}++ ] } ] + : undef; +} + +sub push_row +{ + my ( $self, $data, $fields ) = @_; + my $currentRow = $self->{index}; + $self->{index} = $currentRow + 1; + $self->{records}->[$currentRow] = $fields; + return 1; +} + +sub truncate +{ + my $self = shift; + return splice @{ $self->{records} }, $self->{index}, 1; +} + +sub push_names +{ + my ( $self, $data, $names ) = @_; + my $meta = $self->{meta}; + $meta->{col_names} = $self->{col_names} = $names; + $self->{org_col_names} = [ @{$names} ]; + $self->{col_nums} = {}; + $self->{col_nums}{ $names->[$_] } = $_ for ( 0 .. scalar @$names - 1 ); +} + +sub drop ($) +{ + my ($self, $data) = @_; + delete $data->{Database}{sql_meta}{$self->{table}}; + return 1; +} # drop + +sub seek +{ + my ( $self, $data, $pos, $whence ) = @_; + return unless defined $self->{records}; + + my ($currentRow) = $self->{index}; + if ( $whence == 0 ) + { + $currentRow = $pos; + } + elsif ( $whence == 1 ) + { + $currentRow += $pos; + } + elsif ( $whence == 2 ) + { + $currentRow = @{ $self->{records} } + $pos; + } + else + { + croak $self . "->seek: Illegal whence argument ($whence)"; + } + + $currentRow < 0 and + croak "Illegal row number: $currentRow"; + $self->{index} = $currentRow; +} + +1; + +=head1 NAME + +DBD::Mem - a DBI driver for Mem & MLMem files + +=head1 SYNOPSIS + + use DBI; + $dbh = DBI->connect('dbi:Mem:', undef, undef, {}); + $dbh = DBI->connect('dbi:Mem:', undef, undef, {RaiseError => 1}); + + # or + $dbh = DBI->connect('dbi:Mem:'); + $dbh = DBI->connect('DBI:Mem(RaiseError=1):'); + +and other variations on connect() as shown in the L<DBI> docs and +<DBI::DBD::SqlEngine metadata|DBI::DBD::SqlEngine/Metadata>. + +Use standard DBI prepare, execute, fetch, placeholders, etc., +see L<QUICK START> for an example. + +=head1 DESCRIPTION + +DBD::Mem is a database management system that works right out of the box. +If you have a standard installation of Perl and DBI you can begin creating, +accessing, and modifying simple database tables without any further modules. +You can add other modules (e.g., SQL::Statement) for improved functionality. + +DBD::Mem doesn't store any data persistently - all data has the lifetime of +the instantiated C<$dbh>. The main reason to use DBD::Mem is to use extended +features of L<SQL::Statement> where temporary tables are required. One can +use DBD::Mem to simulate C<VIEWS> or sub-queries. + +Bundling C<DBD::Mem> with L<DBI> will allow us further compatibility checks +of L<DBI::DBD::SqlEngine> beyond the capabilities of L<DBD::File> and +L<DBD::DBM>. This will ensure DBI provided basis for drivers like +L<DBD::AnyData2> or L<DBD::Amazon> are better prepared and tested for +not-file based backends. + +=head2 Metadata + +There're no new meta data introduced by C<DBD::Mem>. See +L<DBI::DBD::SqlEngine/Metadata> for full description. + +=head1 GETTING HELP, MAKING SUGGESTIONS, AND REPORTING BUGS + +If you need help installing or using DBD::Mem, please write to the DBI +users mailing list at L<mailto:[email protected]> or to the +comp.lang.perl.modules newsgroup on usenet. I cannot always answer +every question quickly but there are many on the mailing list or in +the newsgroup who can. + +DBD developers for DBD's which rely on DBI::DBD::SqlEngine or DBD::Mem or +use one of them as an example are suggested to join the DBI developers +mailing list at L<mailto:[email protected]> and strongly encouraged to join our +IRC channel at L<irc://irc.perl.org/dbi>. + +If you have suggestions, ideas for improvements, or bugs to report, please +report a bug as described in DBI. Do not mail any of the authors directly, +you might not get an answer. + +When reporting bugs, please send the output of C<< $dbh->mem_versions($table) >> +for a table that exhibits the bug and as small a sample as you can make of +the code that produces the bug. And of course, patches are welcome, too +:-). + +If you need enhancements quickly, you can get commercial support as +described at L<http://dbi.perl.org/support/> or you can contact Jens Rehsack +at [email protected] for commercial support. + +=head1 AUTHOR AND COPYRIGHT + +This module is written by Jens Rehsack < rehsack AT cpan.org >. + + Copyright (c) 2016- by Jens Rehsack, all rights reserved. + +You may freely distribute and/or modify this module under the terms of +either the GNU General Public License (GPL) or the Artistic License, as +specified in the Perl README file. + +=head1 SEE ALSO + +L<DBI> for the Database interface of the Perl Programming Language. + +L<SQL::Statement> and L<DBI::SQL::Nano> for the available SQL engines. + +L<SQL::Statement::RAM> where the implementation is shamelessly stolen from +to allow DBI bundled Pure-Perl drivers increase the test coverage. + +L<DBD::SQLite> using C<dbname=:memory:> for an incredible fast in-memory database engine. + +=cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/t/48dbi_dbd_sqlengine.t new/DBI-1.639/t/48dbi_dbd_sqlengine.t --- old/DBI-1.637/t/48dbi_dbd_sqlengine.t 2013-05-15 11:52:20.000000000 +0200 +++ new/DBI-1.639/t/48dbi_dbd_sqlengine.t 2017-12-28 14:58:15.000000000 +0100 @@ -24,13 +24,13 @@ for my $sql ( split "\n", <<"" ) CREATE TABLE foo (id INT, foo TEXT) CREATE TABLE bar (id INT, baz TEXT) - INSERT INTO foo VALUES (1, "Hello world") - INSERT INTO bar VALUES (1, "Bugfixes welcome") - INSERT bar VALUES (2, "Bug reports, too") + INSERT INTO foo VALUES (1, 'Hello world') + INSERT INTO bar VALUES (1, 'Bugfixes welcome') + INSERT bar VALUES (2, 'Bug reports, too') SELECT foo FROM foo where ID=1 - UPDATE bar SET id=5 WHERE baz="Bugfixes welcome" + UPDATE bar SET id=5 WHERE baz='Bugfixes welcome' DELETE FROM foo - DELETE FROM bar WHERE baz="Bugfixes welcome" + DELETE FROM bar WHERE baz='Bugfixes welcome' { my $sth; @@ -42,7 +42,7 @@ for my $line ( split "\n", <<"" ) Junk -- Junk CREATE foo (id INT, foo TEXT) -- missing table - INSERT INTO bar (1, "Bugfixes welcome") -- missing "VALUES" + INSERT INTO bar (1, 'Bugfixes welcome') -- missing "VALUES" UPDATE bar id=5 WHERE baz="Bugfixes welcome" -- missing "SET" DELETE * FROM foo -- waste between "DELETE" and "FROM" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/t/54_dbd_mem.t new/DBI-1.639/t/54_dbd_mem.t --- old/DBI-1.637/t/54_dbd_mem.t 1970-01-01 01:00:00.000000000 +0100 +++ new/DBI-1.639/t/54_dbd_mem.t 2017-12-28 14:58:15.000000000 +0100 @@ -0,0 +1,41 @@ +#!perl -w +$|=1; + +use strict; + +use Cwd; +use File::Path; +use File::Spec; +use Test::More; + +my $using_dbd_gofer = ($ENV{DBI_AUTOPROXY}||"") =~ /^dbi:Gofer.*transport=/i; +$using_dbd_gofer and plan skip_all => "modifying meta data doesn't work with Gofer-AutoProxy"; + +my $tbl; +BEGIN { $tbl = "db_". $$ . "_" }; +#END { $tbl and unlink glob "${tbl}*" } + +use_ok ("DBI"); +use_ok ("DBD::Mem"); + +my $dbh = DBI->connect( "DBI:Mem:", undef, undef, { PrintError => 0, RaiseError => 0, } ); # Can't use DBI::DBD::SqlEngine direct + +for my $sql ( split "\n", <<"" ) + CREATE TABLE foo (id INT, foo TEXT) + CREATE TABLE bar (id INT, baz TEXT) + INSERT INTO foo VALUES (1, 'Hello world') + INSERT INTO bar VALUES (1, 'Bugfixes welcome') + INSERT bar VALUES (2, 'Bug reports, too') + SELECT foo FROM foo where ID=1 + UPDATE bar SET id=5 WHERE baz='Bugfixes welcome' + DELETE FROM foo + DELETE FROM bar WHERE baz='Bugfixes welcome' + +{ + my $done; + $sql =~ s/^\s+//; + eval { $done = $dbh->do( $sql ); }; + ok( $done, "executed '$sql'" ) or diag $dbh->errstr; +} + +done_testing (); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBI-1.637/t/91_store_warning.t new/DBI-1.639/t/91_store_warning.t --- old/DBI-1.637/t/91_store_warning.t 2016-04-23 13:49:28.000000000 +0200 +++ new/DBI-1.639/t/91_store_warning.t 2017-12-28 15:10:30.000000000 +0100 @@ -30,11 +30,8 @@ $dbh->set_err(undef, undef); undef $warning; -SKIP: { - skip "Perl version $] too old for unicode test", 2 unless $] >= 5.014; - $dbh->set_err("0", "warning \N{U+263A} smiley face"); - like $warning, qr/^DBD::\w+::db set_err warning: warning \N{U+263A} smiley face/, "Warning recorded by store" - or warn DBI::data_string_desc($warning); -} +$dbh->set_err("0", "warning \N{U+263A} smiley face"); +like $warning, qr/^DBD::\w+::db set_err warning: warning \N{U+263A} smiley face/, "Warning recorded by store" + or warn DBI::data_string_desc($warning); done_testing;
