Hello community, here is the log from the commit of package perl-Mojo-SQLite for openSUSE:Factory checked in at 2018-07-31 15:56:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Mojo-SQLite (Old) and /work/SRC/openSUSE:Factory/.perl-Mojo-SQLite.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mojo-SQLite" Tue Jul 31 15:56:50 2018 rev:7 rq:624677 version:3.001 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Mojo-SQLite/perl-Mojo-SQLite.changes 2017-07-21 22:50:40.377947910 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Mojo-SQLite.new/perl-Mojo-SQLite.changes 2018-07-31 15:57:15.063327993 +0200 @@ -1,0 +2,6 @@ +Sun Jul 22 05:37:08 UTC 2018 - [email protected] + +- updated to 3.001 + see /usr/share/doc/packages/perl-Mojo-SQLite/Changes + +------------------------------------------------------------------- Old: ---- Mojo-SQLite-3.000.tar.gz New: ---- Mojo-SQLite-3.001.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Mojo-SQLite.spec ++++++ --- /var/tmp/diff_new_pack.52lM0e/_old 2018-07-31 15:57:15.583328873 +0200 +++ /var/tmp/diff_new_pack.52lM0e/_new 2018-07-31 15:57:15.583328873 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Mojo-SQLite # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: perl-Mojo-SQLite -Version: 3.000 +Version: 3.001 Release: 0 %define cpan_name Mojo-SQLite Summary: Tiny Mojolicious Wrapper for Sqlite @@ -30,7 +30,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros -BuildRequires: perl(DBD::SQLite) >= 1.50 +BuildRequires: perl(DBD::SQLite) >= 1.54 BuildRequires: perl(DBI) >= 1.627 BuildRequires: perl(Module::Build::Tiny) >= 0.034 BuildRequires: perl(Module::Metadata) @@ -40,7 +40,7 @@ BuildRequires: perl(URI) >= 1.69 BuildRequires: perl(URI::db) >= 0.15 BuildRequires: perl(URI::file) >= 4.21 -Requires: perl(DBD::SQLite) >= 1.50 +Requires: perl(DBD::SQLite) >= 1.54 Requires: perl(DBI) >= 1.627 Requires: perl(Mojolicious) >= 7.32 Requires: perl(SQL::Abstract) >= 1.81 @@ -56,71 +56,6 @@ to offer, generate CRUD queries from data structures, and manage your database schema with migrations. -Database and statement handles are cached automatically, so they can be -reused transparently to increase performance. And you can handle connection -timeouts gracefully by holding on to them only for short amounts of time. - - use Mojolicious::Lite; - use Mojo::SQLite; - - helper sqlite => sub { state $sql = Mojo::SQLite->new('sqlite:test.db') }; - - get '/' => sub { - my $c = shift; - my $db = $c->sqlite->db; - $c->render(json => $db->query('select datetime("now","localtime") as now')->hash); - }; - - app->start; - -In this example application, we create a 'sqlite' helper to store a -Mojo::SQLite object. Our action calls that helper and uses the method -Mojo::SQLite/"db" to dequeue a Mojo::SQLite::Database object from the -connection pool. Then we use the method Mojo::SQLite::Database/"query" to -execute an at http://www.postgresql.org/docs/current/static/sql.html -statement, which returns a Mojo::SQLite::Results object. And finally we -call the method Mojo::SQLite::Results/"hash" to retrieve the first row as a -hash reference. - -All I/O and queries are performed synchronously. However, the "Write-Ahead -Log" journal is enabled for all connections, allowing multiple processes to -read and write concurrently to the same database file (but only one can -write at a time). You can prevent this mode from being enabled by passing -the option 'no_wal', but note that this is incompatible with SQLite -databases that have already had WAL mode enabled. See -http://sqlite.org/wal.html and DBD::SQLite/"journal_mode" for more -information. - - # Performed concurrently - my $pid = fork || die $!; - say $sql->db->query('select datetime("now","localtime") as time')->hash->{time}; - exit unless $pid; - -All cached database handles will be reset automatically if a new process -has been forked, this allows multiple processes to share the same -Mojo::SQLite object safely. - -Any database errors will throw an exception as 'RaiseError' is -automatically enabled, so use 'eval' or Try::Tiny to catch them. This makes -transactions with Mojo::SQLite::Database/"begin" easy. - -While passing a file path of ':memory:' (or a custom "dsn" with -'mode=memory') will create a temporary database, in-memory databases cannot -be shared between connections, so subsequent calls to "db" may return -connections to completely different databases. For a temporary database -that can be shared between connections and processes, pass a file path of -':temp:' to store the database in a temporary directory (this is the -default), or consider constructing a temporary directory yourself with -File::Temp if you need to reuse the filename. A temporary directory allows -SQLite to create at https://www.sqlite.org/tempfiles.html safely. - - use File::Spec::Functions 'catfile'; - use File::Temp; - use Mojo::SQLite; - my $tempdir = File::Temp->newdir; # Deleted when object goes out of scope - my $tempfile = catfile $tempdir, 'test.db'; - my $sql = Mojo::SQLite->new->from_filename($tempfile); - %prep %setup -q -n %{cpan_name}-%{version} find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644 ++++++ Mojo-SQLite-3.000.tar.gz -> Mojo-SQLite-3.001.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/Build.PL new/Mojo-SQLite-3.001/Build.PL --- old/Mojo-SQLite-3.000/Build.PL 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/Build.PL 2018-07-21 02:25:14.000000000 +0200 @@ -68,7 +68,7 @@ } - # This section was automatically generated by Dist::Zilla::Plugin::ModuleBuild v6.009. + # This section was automatically generated by Dist::Zilla::Plugin::ModuleBuild v6.012. use strict; use warnings; @@ -84,13 +84,13 @@ "Dan Book <dbook\@cpan.org>" ], "dist_name" => "Mojo-SQLite", - "dist_version" => "3.000", + "dist_version" => "3.001", "license" => "artistic_2", "module_name" => "Mojo::SQLite", "recursive_test_files" => 1, "requires" => { "Carp" => 0, - "DBD::SQLite" => "1.50", + "DBD::SQLite" => "1.54", "DBI" => "1.627", "File::Spec::Functions" => 0, "File::Temp" => 0, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/CONTRIBUTING.md new/Mojo-SQLite-3.001/CONTRIBUTING.md --- old/Mojo-SQLite-3.000/CONTRIBUTING.md 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/CONTRIBUTING.md 2018-07-21 02:25:14.000000000 +0200 @@ -72,6 +72,11 @@ $ dzil listdeps --missing --develop | cpanm +You can instead combine these two steps into one command by installing +Dist::Zilla::App::Command::installdeps then running: + + $ dzil installdeps + Once everything is installed, here are some dzil commands you might try: $ dzil build @@ -100,6 +105,6 @@ # CREDITS This file was adapted from an initial `CONTRIBUTING.mkdn` file from David -Golden under the terms of the Apache 2 license, with inspiration from the +Golden under the terms of the [CC0](https://creativecommons.org/share-your-work/public-domain/cc0/), with inspiration from the contributing documents from [Dist::Zilla::Plugin::Author::KENTNL::CONTRIBUTING](https://metacpan.org/pod/Dist::Zilla::Plugin::Author::KENTNL::CONTRIBUTING) and [Dist::Zilla::PluginBundle::Author::ETHER](https://metacpan.org/pod/Dist::Zilla::PluginBundle::Author::ETHER). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/Changes new/Mojo-SQLite-3.001/Changes --- old/Mojo-SQLite-3.000/Changes 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/Changes 2018-07-21 02:25:14.000000000 +0200 @@ -1,3 +1,9 @@ +3.001 2018-07-20 20:25:12 EDT + - Increase DBD::SQLite dependency to 1.54 for FTS5 support. + - Add db attribute to Mojo::SQLite::Results and use it to prevent connections + from being cached for reuse while results are active. + - Add sql_for method to Mojo::SQLite::Migrations. + 3.000 2017-07-20 01:16:50 EDT - Changed default for max_connections attribute to 1. - Added support for sharing the database connection cache between multiple diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/INSTALL new/Mojo-SQLite-3.001/INSTALL --- old/Mojo-SQLite-3.000/INSTALL 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/INSTALL 2018-07-21 02:25:14.000000000 +0200 @@ -31,13 +31,27 @@ % ./Build install +Or the more portable variation: + + % perl Build.PL + % perl Build + % perl Build test + % perl Build install + If your perl is system-managed, you can create a local::lib in your home directory to install modules to. For details, see the local::lib documentation: https://metacpan.org/pod/local::lib + +The prerequisites of this distribution will also have to be installed manually. The +prerequisites are listed in one of the files: `MYMETA.yml` or `MYMETA.json` generated +by running the manual build process described above. + ## Documentation Mojo-SQLite documentation is available as POD. -You can run perldoc from a shell to read the documentation: +You can run `perldoc` from a shell to read the documentation: % perldoc Mojo::SQLite +For more information on installing Perl modules via CPAN, please see: +https://www.cpan.org/modules/INSTALL.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/MANIFEST new/Mojo-SQLite-3.001/MANIFEST --- old/Mojo-SQLite-3.000/MANIFEST 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/MANIFEST 2018-07-21 02:25:14.000000000 +0200 @@ -1,4 +1,4 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.009. +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. Build.PL CONTRIBUTING.md Changes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/META.json new/Mojo-SQLite-3.001/META.json --- old/Mojo-SQLite-3.000/META.json 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/META.json 2018-07-21 02:25:14.000000000 +0200 @@ -4,7 +4,7 @@ "Dan Book <[email protected]>" ], "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010", + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010", "license" : [ "artistic_2" ], @@ -39,7 +39,7 @@ "runtime" : { "requires" : { "Carp" : "0", - "DBD::SQLite" : "1.50", + "DBD::SQLite" : "1.54", "DBI" : "1.627", "File::Spec::Functions" : "0", "File::Temp" : "0", @@ -66,28 +66,28 @@ "provides" : { "Mojo::SQLite" : { "file" : "lib/Mojo/SQLite.pm", - "version" : "3.000" + "version" : "3.001" }, "Mojo::SQLite::Database" : { "file" : "lib/Mojo/SQLite/Database.pm", - "version" : "3.000" + "version" : "3.001" }, "Mojo::SQLite::Migrations" : { "file" : "lib/Mojo/SQLite/Migrations.pm", - "version" : "3.000" + "version" : "3.001" }, "Mojo::SQLite::PubSub" : { "file" : "lib/Mojo/SQLite/PubSub.pm", - "version" : "3.000", + "version" : "3.001", "x_deprecated" : 1 }, "Mojo::SQLite::Results" : { "file" : "lib/Mojo/SQLite/Results.pm", - "version" : "3.000" + "version" : "3.001" }, "Mojo::SQLite::Transaction" : { "file" : "lib/Mojo/SQLite/Transaction.pm", - "version" : "3.000" + "version" : "3.001" } }, "release_status" : "stable", @@ -103,16 +103,16 @@ }, "x_IRC" : "irc://irc.perl.org/#mojo" }, - "version" : "3.000", + "version" : "3.001", "x_Dist_Zilla" : { "perl" : { - "version" : "5.026000" + "version" : "5.028000" }, "plugins" : [ { "class" : "Dist::Zilla::Plugin::GithubMeta", "name" : "@Author::DBOOK/GithubMeta", - "version" : "0.54" + "version" : "0.58" }, { "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod", @@ -127,12 +127,12 @@ { "class" : "Dist::Zilla::Plugin::GenerateFile", "name" : "@Author::DBOOK/Generate_Contrib", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MetaConfig", "name" : "@Author::DBOOK/MetaConfig", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MetaProvides::Package", @@ -142,7 +142,7 @@ { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : "@Author::DBOOK/MetaProvides::Package/AUTOVIV/:InstallModulesPM", - "version" : "6.009" + "version" : "6.012" } ], "include_underscores" : 0 @@ -155,7 +155,7 @@ }, "Dist::Zilla::Role::ModuleMetadata" : { "Module::Metadata" : "1.000033", - "version" : "0.004" + "version" : "0.006" } }, "name" : "@Author::DBOOK/MetaProvides::Package", @@ -170,7 +170,7 @@ "class" : "Dist::Zilla::Plugin::Git::Contributors", "config" : { "Dist::Zilla::Plugin::Git::Contributors" : { - "git_version" : "2.9.4", + "git_version" : "2.14.4", "include_authors" : 0, "include_releaser" : 1, "order_by" : "name", @@ -178,22 +178,22 @@ } }, "name" : "@Author::DBOOK/Git::Contributors", - "version" : "0.030" + "version" : "0.034" }, { "class" : "Dist::Zilla::Plugin::MetaNoIndex", "name" : "@Author::DBOOK/MetaNoIndex", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MetaResources", "name" : "@Author::DBOOK/MetaResources", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::CheckChangesHasContent", "name" : "@Author::DBOOK/CheckChangesHasContent", - "version" : "0.010" + "version" : "0.011" }, { "class" : "Dist::Zilla::Plugin::Git::Check", @@ -211,12 +211,12 @@ "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { - "git_version" : "2.9.4", + "git_version" : "2.14.4", "repo_root" : "." } }, "name" : "@Author::DBOOK/Git::Check", - "version" : "2.042" + "version" : "2.045" }, { "class" : "Dist::Zilla::Plugin::RewriteVersion", @@ -232,12 +232,12 @@ } }, "name" : "@Author::DBOOK/RewriteVersion", - "version" : "0.015" + "version" : "0.018" }, { "class" : "Dist::Zilla::Plugin::NextRelease", "name" : "@Author::DBOOK/NextRelease", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::CopyFilesFromRelease", @@ -280,7 +280,7 @@ "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { - "git_version" : "2.9.4", + "git_version" : "2.14.4", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { @@ -288,7 +288,7 @@ } }, "name" : "@Author::DBOOK/Git::Commit", - "version" : "2.042" + "version" : "2.045" }, { "class" : "Dist::Zilla::Plugin::Git::Tag", @@ -297,12 +297,12 @@ "branch" : null, "changelog" : "Changes", "signed" : 0, - "tag" : "v3.000", + "tag" : "v3.001", "tag_format" : "v%v", "tag_message" : "v%v" }, "Dist::Zilla::Role::Git::Repo" : { - "git_version" : "2.9.4", + "git_version" : "2.14.4", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { @@ -310,7 +310,7 @@ } }, "name" : "@Author::DBOOK/Git::Tag", - "version" : "2.042" + "version" : "2.045" }, { "class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease", @@ -325,7 +325,7 @@ } }, "name" : "@Author::DBOOK/BumpVersionAfterRelease", - "version" : "0.015" + "version" : "0.018" }, { "class" : "Dist::Zilla::Plugin::Git::Commit", @@ -345,7 +345,7 @@ "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { - "git_version" : "2.9.4", + "git_version" : "2.14.4", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { @@ -353,7 +353,7 @@ } }, "name" : "@Author::DBOOK/Commit_Version_Bump", - "version" : "2.042" + "version" : "2.045" }, { "class" : "Dist::Zilla::Plugin::Git::Push", @@ -365,22 +365,22 @@ "remotes_must_exist" : 1 }, "Dist::Zilla::Role::Git::Repo" : { - "git_version" : "2.9.4", + "git_version" : "2.14.4", "repo_root" : "." } }, "name" : "@Author::DBOOK/Git::Push", - "version" : "2.042" + "version" : "2.045" }, { "class" : "Dist::Zilla::Plugin::PodSyntaxTests", "name" : "@Author::DBOOK/PodSyntaxTests", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::PodCoverageTests", "name" : "@Author::DBOOK/PodCoverageTests", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs", @@ -412,7 +412,7 @@ } }, "name" : "@Author::DBOOK/Git::GatherDir", - "version" : "2.042" + "version" : "2.045" }, { "class" : "Dist::Zilla::Plugin::Regenerate::AfterReleasers", @@ -433,27 +433,27 @@ { "class" : "Dist::Zilla::Plugin::PruneCruft", "name" : "@Author::DBOOK/PruneCruft", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::ManifestSkip", "name" : "@Author::DBOOK/ManifestSkip", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MetaYAML", "name" : "@Author::DBOOK/MetaYAML", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MetaJSON", "name" : "@Author::DBOOK/MetaJSON", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::License", "name" : "@Author::DBOOK/License", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod", @@ -468,17 +468,17 @@ { "class" : "Dist::Zilla::Plugin::ExecDir", "name" : "@Author::DBOOK/ExecDir", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::ShareDir", "name" : "@Author::DBOOK/ShareDir", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::ExecDir", "name" : "@Author::DBOOK/ScriptDir", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::ModuleBuildTiny::Fallback", @@ -494,7 +494,7 @@ } }, "name" : "ModuleBuild, via ModuleBuildTiny::Fallback", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::ModuleBuildTiny", @@ -528,27 +528,27 @@ { "class" : "Dist::Zilla::Plugin::InstallGuide", "name" : "@Author::DBOOK/InstallGuide", - "version" : "1.200007" + "version" : "1.200009" }, { "class" : "Dist::Zilla::Plugin::Manifest", "name" : "@Author::DBOOK/Manifest", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::TestRelease", "name" : "@Author::DBOOK/TestRelease", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::ConfirmRelease", "name" : "@Author::DBOOK/ConfirmRelease", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::UploadToCPAN", "name" : "@Author::DBOOK/UploadToCPAN", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Deprecated", @@ -566,57 +566,57 @@ { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":InstallModules", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":IncModules", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":TestFiles", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ExtraTestFiles", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ExecFiles", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":PerlExecFiles", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ShareFiles", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":MainModule", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":AllFiles", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":NoFiles", - "version" : "6.009" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : "@Author::DBOOK/MetaProvides::Package/AUTOVIV/:InstallModulesPM", - "version" : "6.009" + "version" : "6.012" } ], "zilla" : { @@ -624,13 +624,14 @@ "config" : { "is_trial" : 0 }, - "version" : "6.009" + "version" : "6.012" } }, "x_contributors" : [ "Dan Book <[email protected]>", "Dan Book <[email protected]>" ], - "x_serialization_backend" : "Cpanel::JSON::XS version 3.0233" + "x_generated_by_perl" : "v5.28.0", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.04" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/META.yml new/Mojo-SQLite-3.001/META.yml --- old/Mojo-SQLite-3.000/META.yml 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/META.yml 2018-07-21 02:25:14.000000000 +0200 @@ -9,7 +9,7 @@ configure_requires: Module::Build::Tiny: '0.034' dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010' +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010' license: artistic_2 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -26,26 +26,26 @@ provides: Mojo::SQLite: file: lib/Mojo/SQLite.pm - version: '3.000' + version: '3.001' Mojo::SQLite::Database: file: lib/Mojo/SQLite/Database.pm - version: '3.000' + version: '3.001' Mojo::SQLite::Migrations: file: lib/Mojo/SQLite/Migrations.pm - version: '3.000' + version: '3.001' Mojo::SQLite::PubSub: file: lib/Mojo/SQLite/PubSub.pm - version: '3.000' + version: '3.001' x_deprecated: 1 Mojo::SQLite::Results: file: lib/Mojo/SQLite/Results.pm - version: '3.000' + version: '3.001' Mojo::SQLite::Transaction: file: lib/Mojo/SQLite/Transaction.pm - version: '3.000' + version: '3.001' requires: Carp: '0' - DBD::SQLite: '1.50' + DBD::SQLite: '1.54' DBI: '1.627' File::Spec::Functions: '0' File::Temp: '0' @@ -61,15 +61,15 @@ bugtracker: https://github.com/Grinnz/Mojo-SQLite/issues homepage: https://github.com/Grinnz/Mojo-SQLite repository: https://github.com/Grinnz/Mojo-SQLite.git -version: '3.000' +version: '3.001' x_Dist_Zilla: perl: - version: '5.026000' + version: '5.028000' plugins: - class: Dist::Zilla::Plugin::GithubMeta name: '@Author::DBOOK/GithubMeta' - version: '0.54' + version: '0.58' - class: Dist::Zilla::Plugin::ReadmeAnyFromPod config: @@ -80,11 +80,11 @@ - class: Dist::Zilla::Plugin::GenerateFile name: '@Author::DBOOK/Generate_Contrib' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::MetaConfig name: '@Author::DBOOK/MetaConfig' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::MetaProvides::Package config: @@ -93,7 +93,7 @@ - class: Dist::Zilla::Plugin::FinderCode name: '@Author::DBOOK/MetaProvides::Package/AUTOVIV/:InstallModulesPM' - version: '6.009' + version: '6.012' include_underscores: 0 Dist::Zilla::Role::MetaProvider::Provider: $Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002004' @@ -102,7 +102,7 @@ meta_noindex: '1' Dist::Zilla::Role::ModuleMetadata: Module::Metadata: '1.000033' - version: '0.004' + version: '0.006' name: '@Author::DBOOK/MetaProvides::Package' version: '2.004003' - @@ -113,25 +113,25 @@ class: Dist::Zilla::Plugin::Git::Contributors config: Dist::Zilla::Plugin::Git::Contributors: - git_version: 2.9.4 + git_version: 2.14.4 include_authors: 0 include_releaser: 1 order_by: name paths: [] name: '@Author::DBOOK/Git::Contributors' - version: '0.030' + version: '0.034' - class: Dist::Zilla::Plugin::MetaNoIndex name: '@Author::DBOOK/MetaNoIndex' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::MetaResources name: '@Author::DBOOK/MetaResources' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::CheckChangesHasContent name: '@Author::DBOOK/CheckChangesHasContent' - version: '0.010' + version: '0.011' - class: Dist::Zilla::Plugin::Git::Check config: @@ -145,10 +145,10 @@ allow_dirty_match: [] changelog: Changes Dist::Zilla::Role::Git::Repo: - git_version: 2.9.4 + git_version: 2.14.4 repo_root: . name: '@Author::DBOOK/Git::Check' - version: '2.042' + version: '2.045' - class: Dist::Zilla::Plugin::RewriteVersion config: @@ -160,11 +160,11 @@ global: 0 skip_version_provider: 0 name: '@Author::DBOOK/RewriteVersion' - version: '0.015' + version: '0.018' - class: Dist::Zilla::Plugin::NextRelease name: '@Author::DBOOK/NextRelease' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::CopyFilesFromRelease config: @@ -198,12 +198,12 @@ allow_dirty_match: [] changelog: Changes Dist::Zilla::Role::Git::Repo: - git_version: 2.9.4 + git_version: 2.14.4 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@Author::DBOOK/Git::Commit' - version: '2.042' + version: '2.045' - class: Dist::Zilla::Plugin::Git::Tag config: @@ -211,16 +211,16 @@ branch: ~ changelog: Changes signed: 0 - tag: v3.000 + tag: v3.001 tag_format: v%v tag_message: v%v Dist::Zilla::Role::Git::Repo: - git_version: 2.9.4 + git_version: 2.14.4 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@Author::DBOOK/Git::Tag' - version: '2.042' + version: '2.045' - class: Dist::Zilla::Plugin::BumpVersionAfterRelease config: @@ -231,7 +231,7 @@ global: 0 munge_makefile_pl: 0 name: '@Author::DBOOK/BumpVersionAfterRelease' - version: '0.015' + version: '0.018' - class: Dist::Zilla::Plugin::Git::Commit config: @@ -246,12 +246,12 @@ - (?^:^(?:lib|script|bin)/) changelog: Changes Dist::Zilla::Role::Git::Repo: - git_version: 2.9.4 + git_version: 2.14.4 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@Author::DBOOK/Commit_Version_Bump' - version: '2.042' + version: '2.045' - class: Dist::Zilla::Plugin::Git::Push config: @@ -260,18 +260,18 @@ - origin remotes_must_exist: 1 Dist::Zilla::Role::Git::Repo: - git_version: 2.9.4 + git_version: 2.14.4 repo_root: . name: '@Author::DBOOK/Git::Push' - version: '2.042' + version: '2.045' - class: Dist::Zilla::Plugin::PodSyntaxTests name: '@Author::DBOOK/PodSyntaxTests' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::PodCoverageTests name: '@Author::DBOOK/PodCoverageTests' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::Test::ReportPrereqs name: '@Author::DBOOK/Test::ReportPrereqs' @@ -297,7 +297,7 @@ Dist::Zilla::Plugin::Git::GatherDir: include_untracked: 0 name: '@Author::DBOOK/Git::GatherDir' - version: '2.042' + version: '2.045' - class: Dist::Zilla::Plugin::Regenerate::AfterReleasers config: @@ -312,23 +312,23 @@ - class: Dist::Zilla::Plugin::PruneCruft name: '@Author::DBOOK/PruneCruft' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::ManifestSkip name: '@Author::DBOOK/ManifestSkip' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::MetaYAML name: '@Author::DBOOK/MetaYAML' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::MetaJSON name: '@Author::DBOOK/MetaJSON' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::License name: '@Author::DBOOK/License' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::ReadmeAnyFromPod config: @@ -339,15 +339,15 @@ - class: Dist::Zilla::Plugin::ExecDir name: '@Author::DBOOK/ExecDir' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::ShareDir name: '@Author::DBOOK/ShareDir' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::ExecDir name: '@Author::DBOOK/ScriptDir' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::ModuleBuildTiny::Fallback config: @@ -360,7 +360,7 @@ Dist::Zilla::Role::TestRunner: default_jobs: 1 name: 'ModuleBuild, via ModuleBuildTiny::Fallback' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::ModuleBuildTiny config: @@ -382,23 +382,23 @@ - class: Dist::Zilla::Plugin::InstallGuide name: '@Author::DBOOK/InstallGuide' - version: '1.200007' + version: '1.200009' - class: Dist::Zilla::Plugin::Manifest name: '@Author::DBOOK/Manifest' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::TestRelease name: '@Author::DBOOK/TestRelease' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::ConfirmRelease name: '@Author::DBOOK/ConfirmRelease' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::UploadToCPAN name: '@Author::DBOOK/UploadToCPAN' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::Deprecated config: @@ -411,53 +411,54 @@ - class: Dist::Zilla::Plugin::FinderCode name: ':InstallModules' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':IncModules' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':TestFiles' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':ExtraTestFiles' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':ExecFiles' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':PerlExecFiles' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':ShareFiles' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':MainModule' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':AllFiles' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':NoFiles' - version: '6.009' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: '@Author::DBOOK/MetaProvides::Package/AUTOVIV/:InstallModulesPM' - version: '6.009' + version: '6.012' zilla: class: Dist::Zilla::Dist::Builder config: is_trial: '0' - version: '6.009' + version: '6.012' x_contributors: - 'Dan Book <[email protected]>' - 'Dan Book <[email protected]>' -x_serialization_backend: 'YAML::Tiny version 1.70' +x_generated_by_perl: v5.28.0 +x_serialization_backend: 'YAML::Tiny version 1.73' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/README new/Mojo-SQLite-3.001/README --- old/Mojo-SQLite-3.000/README 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/README 2018-07-21 02:25:14.000000000 +0200 @@ -64,6 +64,8 @@ queries from data structures, and manage your database schema with migrations. +BASICS + Database and statement handles are cached automatically, so they can be reused transparently to increase performance. And you can handle connection timeouts gracefully by holding on to them only for short @@ -132,6 +134,17 @@ my $tempfile = catfile $tempdir, 'test.db'; my $sql = Mojo::SQLite->new->from_filename($tempfile); + SQL::Abstract::Pg can provide additional features to the SQL::Abstract + query methods in Mojo::SQLite::Database. The on_conflict and for + features are not applicable to SQLite queries. + + use SQL::Abstract::Pg; + my $sql = Mojo::SQLite->new(abstract => SQL::Abstract::Pg->new(name_sep => '.', quote_char => '"')); + $sql->db->select(['some_table', ['other_table', foo_id => 'id']], + ['foo', [bar => 'baz'], \q{datetime('now') as dt}], + {foo => 'value'}, + {order_by => 'foo', limit => 10, offset => 5, group_by => ['foo'], having => {baz => 'value'}}); + EXAMPLES This distribution also contains a well-structured example blog @@ -165,7 +178,8 @@ SQL::Abstract object used to generate CRUD queries for Mojo::SQLite::Database, defaults to setting name_sep to . and - quote_char to ". + quote_char to ". SQL::Abstract::Pg may be used to provide additional + features. # Generate WHERE clause and bind values my($stmt, @bind) = $sql->abstract->where({foo => 'bar', baz => 'yada'}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/cpanfile new/Mojo-SQLite-3.001/cpanfile --- old/Mojo-SQLite-3.000/cpanfile 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/cpanfile 2018-07-21 02:25:14.000000000 +0200 @@ -1,7 +1,7 @@ requires 'perl' => '5.010001'; requires 'Carp'; requires 'DBI' => '1.627'; -requires 'DBD::SQLite' => '1.50'; # for json support +requires 'DBD::SQLite' => '1.54'; # for JSON1 and FTS5 support requires 'File::Spec::Functions'; requires 'File::Temp'; requires 'Mojolicious' => '7.32'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/lib/Mojo/SQLite/Database.pm new/Mojo-SQLite-3.001/lib/Mojo/SQLite/Database.pm --- old/Mojo-SQLite-3.000/lib/Mojo/SQLite/Database.pm 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/lib/Mojo/SQLite/Database.pm 2018-07-21 02:25:14.000000000 +0200 @@ -10,7 +10,7 @@ use Mojo::Util 'monkey_patch'; use Scalar::Util 'weaken'; -our $VERSION = '3.000'; +our $VERSION = '3.001'; our @CARP_NOT = qw(Mojo::SQLite::Migrations); @@ -77,7 +77,7 @@ # query or with RaiseError disabled my $results; if (defined $sth) { - $results = $self->results_class->new(sth => $sth); + $results = $self->results_class->new(db => $self, sth => $sth); $results->{last_insert_id} = $dbh->{private_mojo_last_insert_id}; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/lib/Mojo/SQLite/Migrations.pm new/Mojo-SQLite-3.001/lib/Mojo/SQLite/Migrations.pm --- old/Mojo-SQLite-3.000/lib/Mojo/SQLite/Migrations.pm 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/lib/Mojo/SQLite/Migrations.pm 2018-07-21 02:25:14.000000000 +0200 @@ -8,7 +8,7 @@ use constant DEBUG => $ENV{MOJO_MIGRATIONS_DEBUG} || 0; -our $VERSION = '3.000'; +our $VERSION = '3.001'; has name => 'migrations'; has 'sqlite'; @@ -61,19 +61,7 @@ croak "Active version $active is greater than the latest version $latest" if $active > $latest; - # Up - my $query; - if ($active < $target) { - my @up = grep { $_ <= $target && $_ > $active } keys %$up; - $query = join '', @$up{sort { $a <=> $b } @up}; - } - - # Down - else { - my @down = grep { $_ > $target && $_ <= $active } keys %$down; - $query = join '', @$down{reverse sort { $a <=> $b } @down}; - } - + my $query = $self->sql_for($active, $target); warn "-- Migrate ($active -> $target)\n$query\n" if DEBUG; local $db->dbh->{sqlite_allow_multiple_statements} = 1; @@ -100,6 +88,21 @@ return $self; } +sub sql_for { + my ($self, $from, $to) = @_; + + # Up + my ($up, $down) = @{$self->{migrations}}{qw(up down)}; + if ($from < $to) { + my @up = grep { $_ <= $to && $_ > $from } keys %$up; + return join '', @$up{sort { $a <=> $b } @up}; + } + + # Down + my @down = grep { $_ > $to && $_ <= $from } keys %$down; + return join '', @$down{reverse sort { $a <=> $b } @down}; +} + sub _active { my ($self, $db, $create) = @_; @@ -246,6 +249,12 @@ # Reset database $migrations->migrate(0)->migrate; +=head2 sql_for + + my $sql = $migrations->sql_for(5, 10); + +Get SQL to migrate from one version to another, up or down. + =head1 DEBUGGING You can set the C<MOJO_MIGRATIONS_DEBUG> environment variable to get some diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/lib/Mojo/SQLite/PubSub.pm new/Mojo-SQLite-3.001/lib/Mojo/SQLite/PubSub.pm --- old/Mojo-SQLite-3.000/lib/Mojo/SQLite/PubSub.pm 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/lib/Mojo/SQLite/PubSub.pm 2018-07-21 02:25:14.000000000 +0200 @@ -3,7 +3,7 @@ use Mojo::Util 'deprecated'; -our $VERSION = '3.000'; +our $VERSION = '3.001'; deprecated 'Mojo::SQLite::PubSub is deprecated and should no longer be used'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/lib/Mojo/SQLite/Results.pm new/Mojo-SQLite-3.001/lib/Mojo/SQLite/Results.pm --- old/Mojo-SQLite-3.000/lib/Mojo/SQLite/Results.pm 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/lib/Mojo/SQLite/Results.pm 2018-07-21 02:25:14.000000000 +0200 @@ -5,9 +5,9 @@ use Mojo::JSON 'from_json'; use Mojo::Util 'tablify'; -our $VERSION = '3.000'; +our $VERSION = '3.001'; -has 'sth'; +has [qw(db sth)]; sub new { my $self = shift->SUPER::new(@_); @@ -89,6 +89,13 @@ L<Mojo::SQLite::Results> implements the following attributes. +=head2 db + + my $db = $results->db; + $results = $results->db(Mojo::SQLite::Database->new); + +L<Mojo::SQLite::Database> object these results belong to. + =head2 sth my $sth = $results->sth; @@ -129,7 +136,7 @@ containing array references. # Process all rows at once - say $results->arrays->reduce(sub { $a->[3] + $b->[3] }); + say $results->arrays->reduce(sub { $a + $b->[3] }, 0); =head2 columns @@ -180,7 +187,7 @@ containing hash references. # Process all rows at once - say $results->hashes->reduce(sub { $a->{money} + $b->{money} }); + say $results->hashes->reduce(sub { $a + $b->{money} }, 0); =head2 last_insert_id diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/lib/Mojo/SQLite/Transaction.pm new/Mojo-SQLite-3.001/lib/Mojo/SQLite/Transaction.pm --- old/Mojo-SQLite-3.000/lib/Mojo/SQLite/Transaction.pm 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/lib/Mojo/SQLite/Transaction.pm 2018-07-21 02:25:14.000000000 +0200 @@ -3,7 +3,7 @@ use Carp 'croak'; -our $VERSION = '3.000'; +our $VERSION = '3.001'; has 'db'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/lib/Mojo/SQLite.pm new/Mojo-SQLite-3.001/lib/Mojo/SQLite.pm --- old/Mojo-SQLite-3.000/lib/Mojo/SQLite.pm 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/lib/Mojo/SQLite.pm 2018-07-21 02:25:14.000000000 +0200 @@ -13,7 +13,7 @@ use URI; use URI::db; -our $VERSION = '3.000'; +our $VERSION = '3.001'; has abstract => sub { SQL::Abstract->new(name_sep => '.', quote_char => '"') }; has 'auto_migrate'; @@ -196,6 +196,8 @@ L<SQL features|http://sqlite.org/lang.html> SQLite has to offer, generate CRUD queries from data structures, and manage your database schema with migrations. +=head1 BASICS + Database and statement handles are cached automatically, so they can be reused transparently to increase performance. And you can handle connection timeouts gracefully by holding on to them only for short amounts of time. @@ -260,6 +262,17 @@ my $tempfile = catfile $tempdir, 'test.db'; my $sql = Mojo::SQLite->new->from_filename($tempfile); +L<SQL::Abstract::Pg> can provide additional features to the L<SQL::Abstract> +query methods in L<Mojo::SQLite::Database>. The C<on_conflict> and C<for> +features are not applicable to SQLite queries. + + use SQL::Abstract::Pg; + my $sql = Mojo::SQLite->new(abstract => SQL::Abstract::Pg->new(name_sep => '.', quote_char => '"')); + $sql->db->select(['some_table', ['other_table', foo_id => 'id']], + ['foo', [bar => 'baz'], \q{datetime('now') as dt}], + {foo => 'value'}, + {order_by => 'foo', limit => 10, offset => 5, group_by => ['foo'], having => {baz => 'value'}}); + =head1 EXAMPLES This distribution also contains a well-structured example @@ -292,7 +305,8 @@ L<SQL::Abstract> object used to generate CRUD queries for L<Mojo::SQLite::Database>, defaults to setting C<name_sep> to C<.> and -C<quote_char> to C<">. +C<quote_char> to C<">. L<SQL::Abstract::Pg> may be used to provide additional +features. # Generate WHERE clause and bind values my($stmt, @bind) = $sql->abstract->where({foo => 'bar', baz => 'yada'}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/t/00-report-prereqs.dd new/Mojo-SQLite-3.001/t/00-report-prereqs.dd --- old/Mojo-SQLite-3.000/t/00-report-prereqs.dd 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/t/00-report-prereqs.dd 2018-07-21 02:25:14.000000000 +0200 @@ -14,7 +14,7 @@ 'runtime' => { 'requires' => { 'Carp' => '0', - 'DBD::SQLite' => '1.50', + 'DBD::SQLite' => '1.54', 'DBI' => '1.627', 'File::Spec::Functions' => '0', 'File::Temp' => '0', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/t/database.t new/Mojo-SQLite-3.001/t/database.t --- old/Mojo-SQLite-3.000/t/database.t 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/t/database.t 2018-07-21 02:25:14.000000000 +0200 @@ -20,16 +20,19 @@ # Non-blocking select { my ($fail, $result); + my $same; my $db = $sql->db; $db->query( 'select 1 as one, 2 as two, 3 as three' => sub { my ($db, $err, $results) = @_; $fail = $err; $result = $results->hash; + $same = $db->dbh eq $results->db->dbh; Mojo::IOLoop->stop; } ); Mojo::IOLoop->start; + ok $same, 'same database handles'; ok !$fail, 'no error'; is_deeply $result, {one => 1, two => 2, three => 3}, 'right structure'; } @@ -123,6 +126,22 @@ is $db->query('select 3 as three')->sth, $sth, 'same statement handle'; } +# Connection reuse +{ + my $db = $sql->db; + my $dbh = $db->dbh; + my $results = $db->query('select 1'); + undef $db; + my $db2 = $sql->db; + isnt $db2->dbh, $dbh, 'new database handle'; + undef $results; + my $db3 = $sql->db; + is $db3->dbh, $dbh, 'same database handle'; + $results = $db3->query('select 2'); + is $results->db->dbh, $dbh, 'same database handle'; + is $results->array->[0], 2, 'right result'; +} + # Bind types { my $db = $sql->db; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojo-SQLite-3.000/t/migrations.t new/Mojo-SQLite-3.001/t/migrations.t --- old/Mojo-SQLite-3.000/t/migrations.t 2017-07-20 07:16:52.000000000 +0200 +++ new/Mojo-SQLite-3.001/t/migrations.t 2018-07-21 02:25:14.000000000 +0200 @@ -123,6 +123,22 @@ is_deeply $sql3->db->query('select * from migration_test_six')->hashes, [], 'right structure'; is $sql3->migrations->migrate(0)->active, 0, 'active version is 0'; +is $sql3->migrations->sql_for(0, 5), <<EOF, 'right SQL'; +-- 5 up +create table if not exists migration_test_six (foo text); +EOF +is $sql3->migrations->sql_for(6, 0), <<EOF, 'right SQL'; +-- 6 down +delete from migration_test_six; +-- 5 down +drop table if exists migration_test_six; +EOF +is $sql3->migrations->sql_for(6, 5), <<EOF, 'right SQL'; +-- 6 down +delete from migration_test_six; +EOF +is $sql3->migrations->sql_for(6, 6), '', 'right SQL'; +is $sql3->migrations->sql_for(2, 3), '', 'right SQL'; # Migrate automatically with shared connection cache my $sql4 = Mojo::SQLite->new->from_filename($tempfile);
