PSARC/2016/071 DBD::SQLite perl module integration to Solaris
authorVladimir Marek <Vladimir.Marek@oracle.com>
Fri, 19 Feb 2016 22:48:29 +0100
changeset 5479 7146b76b602e
parent 5478 2b166911e3bb
child 5480 c8882ac2a393
PSARC/2016/071 DBD::SQLite perl module integration to Solaris 21769557 provide DBD::SQLite for Solaris
components/perl_modules/dbd-sqlite/DBD-SQLite-PERLVER.p5m
components/perl_modules/dbd-sqlite/DBD-SQLite.license.template
components/perl_modules/dbd-sqlite/Makefile
components/perl_modules/dbd-sqlite/TESTING
components/perl_modules/dbd-sqlite/patches/01_enable_shared_build.patch
components/perl_modules/dbd-sqlite/patches/02_no_column_metadata.patch
components/perl_modules/dbd-sqlite/patches/03_fix_test.patch
components/perl_modules/dbd-sqlite/test/results-all.master
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/perl_modules/dbd-sqlite/DBD-SQLite-PERLVER.p5m	Fri Feb 19 22:48:29 2016 +0100
@@ -0,0 +1,67 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
+<transform file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/auto/DBI/.*\.h$ -> default facet.devel all>
+# Perl 5.20 does not produce empty bootstrap files
+<transform file path=usr/perl5/vendor_perl/5.20/.*\.bs$ -> drop>
+set name=pkg.fmri \
+    value=pkg:/library/perl-5/dbd-sqlite-$(PLV)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="Perl SQLite Database Interface"
+set name=pkg.description \
+    value="SQLite driver for the Perl5 Database Interface (DBI)"
+set name=com.oracle.info.description value="DBD::SQLite Perl module"
+set name=com.oracle.info.tpno value=$(TPNO)
+set name=info.classification \
+    value=org.opensolaris.category.2008:Development/Perl
+set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.arc-caseid value=PSARC/2016/071
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+
+#file path=usr/perl5/$(PERLVER)/lib/$(PERL_ARCH)/perllocal.pod
+file path=usr/perl5/$(PERLVER)/man/man3/DBD::SQLite.3
+file path=usr/perl5/$(PERLVER)/man/man3/DBD::SQLite::Cookbook.3
+file path=usr/perl5/$(PERLVER)/man/man3/DBD::SQLite::Fulltext_search.3
+file path=usr/perl5/$(PERLVER)/man/man3/DBD::SQLite::VirtualTable.3
+file path=usr/perl5/$(PERLVER)/man/man3/DBD::SQLite::VirtualTable::FileContent.3
+file path=usr/perl5/$(PERLVER)/man/man3/DBD::SQLite::VirtualTable::PerlData.3
+file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/DBD/SQLite.pm
+file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/DBD/SQLite/Cookbook.pod
+file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/DBD/SQLite/Fulltext_search.pod
+file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/DBD/SQLite/VirtualTable.pm
+file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/DBD/SQLite/VirtualTable/FileContent.pm
+file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/DBD/SQLite/VirtualTable/PerlData.pm
+file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/auto/DBD/SQLite/.packlist
+file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/auto/DBD/SQLite/SQLite.bs
+file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/auto/DBD/SQLite/SQLite.so
+license DBD-SQLite.license license=Artistic
+
+# force a dependency on the Perl runtime
+depend type=require fmri=__TBD pkg.debug.depend.file=perl \
+    pkg.debug.depend.path=usr/perl5/$(PERLVER)/bin
+
+# force a dependency on the DBI package
+depend type=require \
+    fmri=library/perl-5/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/perl_modules/dbd-sqlite/DBD-SQLite.license.template	Fri Feb 19 22:48:29 2016 +0100
@@ -0,0 +1,113 @@
+Portions of this program use DBD-SQLite COMPONENT_VERSION, the open source version is made available by Matt Sergeant under the terms of the below version of the Artistic License.  As such, Oracle is required to provide the following notices.  Note, however, that the Oracle program license that accompanied this program determines your right to use the Oracle program, including DBD-SQLite COMPONENT_VERSION, and the terms contained in the following notices do not change those rights.
+ 	
+Extensions to DBD-SQLite have been made by Oracle to support current versions of Solaris and provide additional tools.  These changes are detailed in the 'patches' subdirectory.
+ 
+The current open source version of DBD-SQLite can be downloaded at: https://github.com/DBD-SQLite/DBD-SQLite
+
+Oracle elects to license this file available under the Artistic License as expressly permitted by the Perl licensing terms.  In addition, since Artistic License 1.0 was superseded by Artistic License 2.0.  The Artistic License 2.0 is provided here.
+
+
+copyright 2002 - 2007 Matt Sergeant
+----------------------------------------------------------------------------------------------------------------------------------------------------------
+The Artistic License
+
+Preamble
+
+The intent of this document is to state the conditions under which a Package
+may be copied, such that the Copyright Holder maintains some semblance of
+artistic control over the development of the package, while giving the users of the
+package the right to use and distribute the Package in a more-or-less customary
+fashion, plus the right to make reasonable modifications.
+
+Definitions:
+
+-    "Package" refers to the collection of files distributed by the Copyright
+     Holder, and derivatives of that collection of files created through textual
+     modification. 
+-    "Standard Version" refers to such a Package if it has not been modified,
+     or has been modified in accordance with the wishes of the Copyright
+     Holder. 
+-    "Copyright Holder" is whoever is named in the copyright or copyrights for
+     the package. 
+-    "You" is you, if you're thinking about copying or distributing this Package.
+-    "Reasonable copying fee" is whatever you can justify on the basis of
+     media cost, duplication charges, time of people involved, and so on. (You
+     will not be required to justify it to the Copyright Holder, but only to the
+     computing community at large as a market that must bear the fee.) 
+-    "Freely Available" means that no fee is charged for the item itself, though
+     there may be fees involved in handling the item. It also means that
+     recipients of the item may redistribute it under the same conditions they
+     received it. 
+
+1. You may make and give away verbatim copies of the source form of the
+Standard Version of this Package without restriction, provided that you duplicate
+all of the original copyright notices and associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications derived from
+the Public Domain or from the Copyright Holder. A Package modified in such a
+way shall still be considered the Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way, provided
+that you insert a prominent notice in each changed file stating how and when
+you changed that file, and provided that you do at least ONE of the following:
+
+     a) place your modifications in the Public Domain or otherwise
+     make them Freely Available, such as by posting said modifications
+     to Usenet or an equivalent medium, or placing the modifications on
+     a major archive site such as ftp.uu.net, or by allowing the
+     Copyright Holder to include your modifications in the Standard
+     Version of the Package.
+
+     b) use the modified Package only within your corporation or
+     organization.
+
+     c) rename any non-standard executables so the names do not
+     conflict with standard executables, which must also be provided,
+     and provide a separate manual page for each non-standard
+     executable that clearly documents how it differs from the Standard
+     Version.
+
+     d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or executable
+form, provided that you do at least ONE of the following:
+
+     a) distribute a Standard Version of the executables and library
+     files, together with instructions (in the manual page or equivalent)
+     on where to get the Standard Version.
+
+     b) accompany the distribution with the machine-readable source of
+     the Package with your modifications.
+
+     c) accompany any non-standard executables with their
+     corresponding Standard Version executables, giving the
+     non-standard executables non-standard names, and clearly
+     documenting the differences in manual pages (or equivalent),
+     together with instructions on where to get the Standard Version.
+
+     d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of this Package.
+You may charge any fee you choose for support of this Package. You may not
+charge a fee for this Package itself. However, you may distribute this Package in
+aggregate with other (possibly commercial) programs as part of a larger
+(possibly commercial) software distribution provided that you do not advertise
+this Package as a product of your own.
+
+6. The scripts and library files supplied as input to or produced as output from
+the programs of this Package do not automatically fall under the copyright of this
+Package, but belong to whomever generated them, and may be sold
+commercially, and may be aggregated with this Package.
+
+7. C or perl subroutines supplied by you and linked into this Package shall not
+be considered part of this Package.
+
+8. The name of the Copyright Holder may not be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.
+
+The End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/perl_modules/dbd-sqlite/Makefile	Fri Feb 19 22:48:29 2016 +0100
@@ -0,0 +1,77 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		DBD-SQLite
+COMPONENT_VERSION=	1.48
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	\
+	sha256:b397230f5d4cdc9923f91c62da9e535234f3055c528ede75afd7d24698030ea6
+COMPONENT_ARCHIVE_URL=	http://backpan.perl.org/authors/id/I/IS/ISHIGAKI/$(COMPONENT_ARCHIVE)
+COMPONENT_PROJECT_URL=	https://github.com/DBD-SQLite/DBD-SQLite
+COMPONENT_BUGDB=	perl-mod/dbd-sqlite
+
+TPNO=			24450
+
+include $(WS_MAKE_RULES)/prep.mk
+include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/makemaker.mk
+
+COMPONENT_TEST_TARGETS = test
+COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
+COMPONENT_TEST_TRANSFORMS += \
+	'-e "/^Running Mkbootstrap/d" ' '-e "s/mY cOmMeNt/this is executed on older perl releases only/" ' \
+	'-e "/^chmod.*\.bs$$/d" '       '-e "s/mY cOmMeNt/this is executed on older perl releases only/" ' \
+	'-e "s/[0-9][0-9]* wallclock secs (.*CPU)$$/<TIMINGS REMOVED>/" ' \
+	'-e "s/^PERL_DL_NONLAZY=1 \$$(PERL).*/<PERL TEST INVOCATION REMOVED>/" ' \
+	'-e "s/^\(\# sqlite_version=\)[0-9][0-9.]*/\1<USED SQLITE VERSION REMOVED>/" ' \
+	'-e "s/^\(\# \$$DBI::VERSION=\)[0-9][0-9.]*/\1<REPORTED DBI VERSION REMOVED>/" '
+
+# This makes the configuration process a bit more chatty
+COMPONENT_CONFIGURE_ENV += AUTOMATED_TESTING=1
+LICENSE=DBD-SQLite.license
+
+ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+
+# I have to list the targets directly instead of using $(BUILD_32_AND_64) in
+# order to avoid building DBD::SQLite for perl 5.12-mt which does not have DBI
+# available
+#
+$(LICENSE): $(LICENSE).template
+	$(PERL) -pe 's/COMPONENT_VERSION/$(COMPONENT_VERSION)/g' "$<" > "[email protected]"
+
+build:		$(BUILD_DIR)/$(MACH32)-5.12/.built $(BUILD_DIR)/$(MACH64)-5.20/.built $(LICENSE)
+
+install:	$(BUILD_DIR)/$(MACH32)-5.12/.installed $(BUILD_DIR)/$(MACH64)-5.20/.installed
+
+test:		$(BUILD_DIR)/$(MACH32)-5.12/.tested-and-compared $(BUILD_DIR)/$(MACH64)-5.20/.tested-and-compared
+
+system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+
+clean::		$(LICENSE)
+
+REQUIRED_PACKAGES += database/sqlite-3
+REQUIRED_PACKAGES += runtime/perl-512
+REQUIRED_PACKAGES += runtime/perl-520
+REQUIRED_PACKAGES += system/library
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/perl_modules/dbd-sqlite/TESTING	Fri Feb 19 22:48:29 2016 +0100
@@ -0,0 +1,47 @@
+Quick and dirty check that the module works (use actual
+perl version instead of XXX)
+
+-------------------------------8<------------------------
+P='/usr/perl5/XXX/bin/perl -MDBD::SQLite'
+DB=/var/tmp/db.sql
+C="\$dbh=DBI->connect('dbi:SQLite:$DB');"
+FILE=/usr/bin/ls
+
+rm -f "$DB"
+$P -e "$C"
+if [ ! -e "$DB" ]; then
+        echo "Fail - database not created"
+        exit 1
+fi
+$P -e "$C"'
+        $dbh->do("CREATE TABLE mytable( Bindata BLOB, date DATE)");
+        $dbh->do("CREATE TRIGGER insert_blob_date AFTER INSERT ON mytable BEGIN UPDATE mytable SET date = DATETIME(\"NOW\"); END ;");
+'
+
+$P -e "$C"'
+      my $blob = `cat '"$FILE"'`;
+      my $sth = $dbh->prepare("INSERT INTO mytable VALUES (?, NULL)");
+      $sth->bind_param(1, $blob, {TYPE => DBD::SQL_BLOB}
+);
+      $sth->execute();
+'
+
+$P -MDigest::MD5 -e "$C"'
+      $sth = $dbh->prepare("SELECT Bindata FROM mytable");
+      $sth->execute();
+      my $row = $sth->fetch;
+      my $blobo = $row->[0];
+      print Digest::MD5::md5_hex($blobo), "\n";
+'
+
+
+md5sum "$FILE"
+echo '.schema' | sqlite3 "$DB"
+echo 'select date from mytable;' | sqlite3 "$DB"
+-------------------------------8<------------------------
+
+
+It should print
+ - two equal MD5 hashes
+ - database description (mytable and trigger insert_blob_date)
+ - current date and time
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/perl_modules/dbd-sqlite/patches/01_enable_shared_build.patch	Fri Feb 19 22:48:29 2016 +0100
@@ -0,0 +1,23 @@
+Not suitable for upstream submission.
+
+This is official way of linking against system sqlite.so instead of statically
+linking with SQLite sources included in DBD-SQLite archive. See the comments
+just above the change.
+
+--- DBD-SQLite-1.48/Makefile.PL	2016-02-10 06:40:01.627805164 -0800
++++ DBD-SQLite-1.48/Makefile.PL	2016-02-10 06:40:04.583883621 -0800
[email protected]@ -126,13 +126,13 @@
+ # Note to Downstream Packagers:
+ # This block is if ( 0 ) to discourage casual users building against
+ # the system SQLite. We expect that anyone sophisticated enough to use
+ # a system sqlite is also sophisticated enough to have a patching system
+ # that can change the if ( 0 ) to if ( 1 )
+ my ($sqlite_local, $sqlite_base, $sqlite_lib, $sqlite_inc);
+-if ( 0 ) {
++if ( 1 ) {
+ 	require File::Spec;
+ 	if ( $sqlite_base = (grep(/SQLITE_LOCATION=.*/, @ARGV))[0] ) {
+ 		$sqlite_base =~ /=(.*)/;
+ 		$sqlite_base = $1;
+ 		$sqlite_lib = File::Spec->catdir( $sqlite_base, 'lib'     );
+ 		$sqlite_inc = File::Spec->catdir( $sqlite_base, 'include' );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/perl_modules/dbd-sqlite/patches/02_no_column_metadata.patch	Fri Feb 19 22:48:29 2016 +0100
@@ -0,0 +1,15 @@
+Will not be fixed in upstream, we have to keep it locally until our SQLite has
+column metadata support
+
+https://rt.cpan.org/Public/Bug/Display.html?id=111942
+
+--- DBD-SQLite-1.48/Makefile.PL	2016-02-12 10:09:44.833772992 +0100
++++ DBD-SQLite-1.48/Makefile.PL	2016-02-12 10:09:38.619446084 +0100
[email protected]@ -223,7 +223,6 @@ my @CC_DEFINE = (
+ 	'-DSQLITE_ENABLE_FTS4',             # for sqlite >= 3.7.4
+ 	'-DSQLITE_ENABLE_FTS3_PARENTHESIS', # for sqlite >= 3.6.10
+ 	'-DSQLITE_ENABLE_RTREE',            # for sqlite >= 3.6.10
+-	'-DSQLITE_ENABLE_COLUMN_METADATA',
+ 	'-DSQLITE_ENABLE_STAT3',            # for sqlite >= 3.7.9
+ 	'-DSQLITE_ENABLE_STAT4',            # for sqlite >= 3.8.3.1
+ 	'-DNDEBUG=1',
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/perl_modules/dbd-sqlite/patches/03_fix_test.patch	Fri Feb 19 22:48:29 2016 +0100
@@ -0,0 +1,62 @@
+This contains fixes for two issues
+
+a)
+https://rt.cpan.org/Public/Bug/Display.html?id=111558
+https://github.com/DBD-SQLite/DBD-SQLite/commit/008e1291d5b3a8d1787433e33e6ebd13ed63af05
+
+and partially
+
+b)
+https://rt.cpan.org/Public/Bug/Display.html?id=111942
+https://github.com/DBD-SQLite/DBD-SQLite/commit/3eb1a184200be3868a58d1586cf49b8f81a22648
+https://github.com/DBD-SQLite/DBD-SQLite/commit/f679a6caf73c5cbc3a189acd754b660e55662e45
+
+Both fixed in 1.50
+
+diff --git a/t/virtual_table/11_filecontent_fulltext.t b/t/virtual_table/11_filecontent_fulltext.t
+index f1c5f64..804fafc 100644
+--- a/t/virtual_table/11_filecontent_fulltext.t
++++ b/t/virtual_table/11_filecontent_fulltext.t
[email protected]@ -31,13 +31,21 @@ my @tests = (
+                           lib/DBD/SQLite/VirtualTable/FileContent.pm
+                           lib/DBD/SQLite/VirtualTable/PerlData.pm
+                           t/lib/Test.pm]],
++);
++
++# The last set of tests tries to use enhanced query syntax. But when
++# SQLite is compiled without it's support, the word 'AND' is taken
++# literally.
++if (grep /ENABLE_FTS3_PARENTHESIS/, DBD::SQLite::compile_options()) {
++  push @tests, (
+   ['"use strict" AND "use warnings"' => qw[inc/Test/NoWarnings.pm
+                                            lib/DBD/SQLite/Constants.pm
+                                            lib/DBD/SQLite/VirtualTable.pm
+                                            lib/DBD/SQLite/VirtualTable/FileContent.pm
+                                            lib/DBD/SQLite/VirtualTable/PerlData.pm
+                                            ]],
+-);
++  );
++}
+ 
+ plan tests => 3 + 3 * @tests;
+ 
+--- DBD-SQLite-1.48/t/51_table_column_metadata.t	2016-02-12 10:12:28.334212852 +0100
++++ DBD-SQLite-1.48/t/51_table_column_metadata.t	2016-02-12 10:11:48.355066773 +0100
[email protected]@ -6,8 +6,16 @@ BEGIN {
+ 	$^W = 1;
+ }
+ 
+-use t::lib::Test qw/connect_ok @CALL_FUNCS/;
++use DBD::SQLite;
+ use Test::More;
++
++BEGIN {
++	if (!grep /^ENABLE_COLUMN_METADATA/, DBD::SQLite::compile_options()) {
++		plan skip_all => "Column metadata is disabled for this DBD::SQLite";
++	}
++}
++
++use t::lib::Test qw/connect_ok @CALL_FUNCS/;
+ use Test::NoWarnings;
+ 
+ plan tests => 16 * @CALL_FUNCS + 1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/perl_modules/dbd-sqlite/test/results-all.master	Fri Feb 19 22:48:29 2016 +0100
@@ -0,0 +1,115 @@
+make[1]: Entering directory '$(@D)'
+<PERL TEST INVOCATION REMOVED>
+# $DBI::VERSION=<REPORTED DBI VERSION REMOVED>
+# Compile Options:
+#   ENABLE_FTS3
+#   ENABLE_RTREE
+#   ENABLE_UNLOCK_NOTIFY
+#   MAX_SCHEMA_RETRY=25
+#   SECURE_DELETE
+#   SYSTEM_MALLOC
+#   THREADSAFE=1
+t/01_compile.t ........................................ ok
+# sqlite_version=<USED SQLITE VERSION REMOVED>
+t/02_logon.t .......................................... ok
+t/03_create_table.t ................................... ok
+t/04_insert.t ......................................... ok
+t/05_select.t ......................................... ok
+t/06_tran.t ........................................... ok
+t/07_error.t .......................................... ok
+t/08_busy.t ........................................... ok
+t/09_create_function.t ................................ ok
+t/10_create_aggregate.t ............................... ok
+t/12_unicode.t ........................................ ok
+t/13_create_collation.t ............................... ok
+t/14_progress_handler.t ............................... ok
+t/15_ak_dbd.t ......................................... ok
+t/16_column_info.t .................................... ok
+t/17_createdrop.t ..................................... ok
+t/18_insertfetch.t .................................... ok
+t/19_bindparam.t ...................................... ok
+t/20_blobs.t .......................................... ok
+t/21_blobtext.t ....................................... ok
+t/22_listfields.t ..................................... ok
+t/23_nulls.t .......................................... ok
+t/24_numrows.t ........................................ ok
+t/25_chopblanks.t ..................................... ok
+t/26_commit.t ......................................... ok
+t/27_metadata.t ....................................... ok
+t/28_schemachange.t ................................... ok
+t/30_auto_rollback.t .................................. ok
+t/31_bind_weird_number_param.t ........................ ok
+t/32_inactive_error.t ................................. ok
+t/33_non_latin_path.t ................................. ok
+t/34_online_backup.t .................................. ok
+t/35_table_info.t ..................................... ok
+t/36_hooks.t .......................................... ok
+t/37_regexp.t ......................................... ok
+t/38_empty_statement.t ................................ ok
+t/39_foreign_keys.t ................................... ok
+t/40_multiple_statements.t ............................ ok
+t/41_placeholders.t ................................... ok
+t/42_primary_key_info.t ............................... ok
+t/43_fts3.t ........................................... ok
+t/44_rtree.t .......................................... ok
+t/45_savepoints.t ..................................... ok
+t/46_mod_perl.t ....................................... skipped: requires APR::Table
+t/47_execute.t ........................................ ok
+t/48_bind_param_is_sticky.t ........................... ok
+t/49_trace_and_profile.t .............................. ok
+t/50_foreign_key_info.t ............................... ok
+t/51_table_column_metadata.t .......................... skipped: Column metadata is disabled for this DBD::SQLite
+t/52_db_filename.t .................................... ok
+t/53_status.t ......................................... ok
+t/54_literal_txn.t .................................... ok
+t/55_statistics_info.t ................................ ok
+t/56_open_flags.t ..................................... ok
+t/57_uri_filename.t ................................... ok
+t/58_see_if_its_a_number_and_explicit_binding.t ....... ok
+t/59_extended_result_codes.t .......................... skipped: this test is for Win32 only
+t/cookbook_variance.t ................................. ok
+t/rt_15186_prepcached.t ............................... ok
+t/rt_21406_auto_finish.t .............................. ok
+t/rt_25371_asymmetric_unicode.t ....................... ok
+t/rt_25460_numeric_aggregate.t ........................ ok
+t/rt_25924_user_defined_func_unicode.t ................ ok
+t/rt_26775_distinct.t ................................. ok
+t/rt_27553_prepared_cache_and_analyze.t ............... ok
+t/rt_29058_group_by.t ................................. ok
+t/rt_29629_sqlite_where_length.t ...................... ok
+t/rt_31324_full_names.t ............................... ok
+t/rt_32889_prepare_cached_reexecute.t ................. ok
+t/rt_36836_duplicate_key.t ............................ ok
+t/rt_36838_unique_and_bus_error.t ..................... ok
+t/rt_40594_nullable.t ................................. skipped: Column metadata is disabled for this DBD::SQLite
+t/rt_48393_debug_panic_with_commit.t .................. skipped: set $ENV{TEST_DBD_SQLITE_WITH_DEBUGGER} to enable this test
+t/rt_50503_fts3.t ..................................... ok
+t/rt_52573_manual_exclusive_lock.t .................... ok
+t/rt_53235_icu_compatibility.t ........................ skipped: requires SQLite ICU plugin to be enabled
+t/rt_62370_diconnected_handles_operation.t ............ ok
+t/rt_64177_ping_wipes_out_the_errstr.t ................ ok
+t/rt_67581_bind_params_mismatch.t ..................... ok
+t/rt_71311_bind_col_and_unicode.t ..................... ok
+t/rt_73159_fts_tokenizer_segfault.t ................... ok
+t/rt_73787_exponential_buffer_overflow.t .............. ok
+t/rt_76395_int_overflow.t ............................. ok
+t/rt_77724_primary_key_with_a_whitespace.t ............ ok
+t/rt_78833_utf8_flag_for_column_names.t ............... ok
+t/rt_81536_multi_column_primary_key_info.t ............ ok
+t/rt_88228_sqlite_3_8_0_crash.t ....................... ok
+t/rt_96050_db_filename_for_a_closed_database.t ........ ok
+t/rt_96877_unicode_statements.t ....................... ok
+t/rt_96878_fts_contentless_table.t .................... ok
+t/rt_97598_crash_on_disconnect_with_virtual_tables.t .. ok
+t/virtual_table/00_base.t ............................. ok
+t/virtual_table/01_destroy.t .......................... ok
+t/virtual_table/02_find_function.t .................... ok
+t/virtual_table/10_filecontent.t ...................... ok
+t/virtual_table/11_filecontent_fulltext.t ............. ok
+t/virtual_table/20_perldata.t ......................... ok
+t/virtual_table/21_perldata_charinfo.t ................ ok
+t/virtual_table/rt_99748.t ............................ ok
+All tests successful.
+Files=99, Tests=3476, <TIMINGS REMOVED>
+Result: PASS
+make[1]: Leaving directory '$(@D)'