Changes for Perl extension DBD-SQLite 1.29 Fri 8 Jan 2010 - Updated to SQLite 3.6.22 (DUNCAND) 1.28_02 Sun 3 Jan 2010 - Now empty (or comment only) statements won't cause segv or "not an error" errors. Spotted by TOKUHIROM. (ISHIGAKI) - Resolved #52573: previous fix always turned on the AutoCommit flag; it goes along with the behavior of the internal library but broke compat. (ISHIGAKI) - Removed the SQLITE_CORE and SQLITE_PRT_SZ flags at the recommendation of the SQLite mailing list. (ADAMK) 1.28_01 Tue 22 Dec 2009 - Updated to SQLite 3.6.21 (ISHIGAKI) - silence warnings on HP-UX (HMBRAND) - Resolved #52573: Manual Transaction handling seems to be broken (hopefully) (ISHIGAKI) 1.27 Mon 23 Nov 2009 - Switching to a production version 1.26_07 Sun 15 Nov 2009 *** CHANGES THAT MAY POSSIBLY BREAK YOUR OLD APPLICATIONS *** - Foreign keys support is once again disabled by default. It seems to have a greater impact than we expected and it actually broke things. This feature probably will be enabled by default by the sqlite team in the future, and eventually you'll need to cope with it, but right now we agreed with some discussion to give you more time to be prepared. If you use referential stuff in your schema (which sqlite ignores now) should do extensive testing to ensure that they will work when you issue "PRAGMA foreign_keys = ON". (ISHIGAKI) - Updated to SQLite 3.6.20 (DUNCAND) - Resolved #50935: there remained old "unicode" attribute usage in the pod, spotted by ASHLEY. (ISHIGAKI) 1.26_06 Wed 28 Oct 2009 *** CHANGES THAT MAY POSSIBLY BREAK YOUR OLD APPLICATIONS *** - Removed undocumented (and most probably unused) reset method from a statement handle (which was only accessible via func().) Simply use "$sth->finish" instead. (ISHIGAKI) - Now DBD::SQLite supports foreign key constraints by default. Long-ignored foreign keys (typically written for other DB engines) will start working. If you don't want this feature, issue a pragma to disable foreign keys. (ISHIGAKI) - Renamed "unicode" attribute to "sqlite_unicode" for integrity. Old "unicode" attribute is still accessible but will be deprecated in the near future. (ISHIGAKI) - You can see file/line info while tracing even if you compile with a non-gcc compiler. (ISHIGAKI) - Major code refactoring. (ISHIGAKI) - Pod reorganized, and some of the missing bits (including pragma) are added. (ISHIGAKI) 1.26_05 Thu 15 Oct 2009 - Updated to SQLite 3.6.19 (ISHIGAKI) 1.26_04 Tue 6 Oct 2009 *** CHANGES THAT MAY POSSIBLY BREAK YOUR OLD APPLICATIONS *** - Resolved #49716: Fixed $dbh->column_info to work according to the spec in DBI and added support for attached databases. (VLYON) - Fixed $sth->primary_key_info to work according to the spec in DBI and changed the tests in t/27_metadata.t to reflect this. (VLYON) - Tweaked not to hide a real error by a "not an error" issued by another sqlite3 function between the failed sqlite3 function and the sqlite_error to report. Note that this change makes some failures issue two relevant errors at a time. (ISHIGAKI) - Updated to SQLite 3.6.18 (DUNCAND) - Resolved #48393: previous effort was not enough; BegunWork should also be handled properly (ISHIGAKI) - Replaced last DBILOGFP with DBIc_LOGPIO(imp_xxh) (ISHIGAKI) - Tweaked t/08_busy.t not to fail just because it is tested under a very, very slow (virtual) machine. (ISHIGAKI) - Added a code to look for a compiler from Module::Install::Can. (ISHIGAKI) - Added documentation and an 'Escape' attribute for $sth->table_info. (VLYON) 1.26_03 Wed 12 Aug 2009 - Updated to SQLite 3.6.17 (ISHIGAKI) - Switched to use :memory: for most of the tests (ISHIGAKI) - Fixed a memory leak when prepare should fail (ISHIGAKI) - Added support for commit/rollback/update hooks (DAMI) - Added support for set_authorizer (DAMI) - Added support for collation_needed(), and reorganised driver API for user-defined collations (DAMI) - Exported constants from sqlite3.h into DBD::SQLite namespace (DAMI) - Added support in t/lib/Test.pm for checking both versions of driver-private methods ("func" / "sqlite_*") (DAMI) - Removed unused and obsolete "list_tables" from SQLite.xs (DAMI) - Added a default implementation for the REGEXP infix operator (DAMI) - Renamed several internal sqlite3_ functions to sqlite_ for clarity (ISHIGAKI) - Accept empty filename at connect (sqlite will open a tempfile) (DAMI) - Documented the connect() method (DAMI) - Replaced imp_dbh->in_tran with sqlite3_get_autocommit(), hoping this would fix the annoying rollback issues, including #48393 (ISHIGAKI) - META.yml requires is now generated instead of being derived from the (incorrect) PREREQ_PM values by ExtUtils::MakeMaker (ADAMK) 1.26_02 Fri 19 Jun 2009 *** CHANGES THAT MAY POSSIBLY BREAK YOUR OLD APPLICATIONS *** - Resolved #46831: table_info schema is incorrect and doesn't work with attached databases (VLYON/ISHIGAKI) - Updated to SQLite 3.6.15 (DUNCAND) - Resolved #44882: Use of $h->func() should be deprecated and replaced with calls to driver-private 'installed methods' (ISHIGAKI) - Added access to Online Backup functionality. (TJC) - Added enable_load_extension pod (ISHIGAKI) - Now private methods/functions return true after successful calls (#44871) (ISHIGAKI) - Removed all of the "croak"s (#44871) (ISHIGAKI) 1.26_01 Tue 5 May 2009 - Added ORDINAL_POSITION support for $dbh->column_info (ADAMK) - Applied several fixes from GFUJI to clean up code (#45578) (ISHIGAKI) - Skipped some of the unicode path tests under cygwin (#45166) (JDHEDDEN) - Added some explanation and workarounds for a SQL that compares a return value of a function with a numeric bind value (ISHIGAKI) 1.25 Thu 23 Apr 2009 - Amalgamation conversion turned out to be quicker than expected. - Changing to a production release. (ADAMK) 1.24_02 Wed 22 Apr 2009 - Merging various externally-contributed annotations from annocpan.org (ADAMK) - Created the beginnings of a DBD::SQLite::Cookbook (ADAMK) 1.24_01 Wed 22 Apr 2009 - Moved getsqlite.pl into util (ADAMK) - Switching to the RT queue instead of the RT report page that does nothing and just refers you to email (ADAMK) - Now DBD::SQLite also uses amalgamated source recommended at sqlite.org (ISHIGAKI) - Resolved #45166: better unicode path handling under cygwin (ISHIGAKI) - Resolved #45171: test failure on CentOS 4.6 (ISHIGAKI) 1.23 Sun 19 Apr 2009 - No changes from 1.22_08, just switched to production release (ADAMK) 1.22_08 Fri 17 Apr 2009 - Completed the migration of all tests and deleted lib.pl (ADAMK) - Prevented a double "commit is innefective" warning (ADAMK) - Adding a version for the Win32.pm dependency (ADAMK) 1.22_07 Thu 16 Apr 2009 - Improved non-latin unicode filename support/test on Windows (SZABGAB/ISHIGAKI) - Removed the table name generator from t/lib.pl, getting us closer to removing t/lib.pl entirely (ADAMK) - Increased use of Test::NoWarnings (ADAMK) - Converted half the remaining lib.pl tests to t::lib::Test (ADAMK) - Require Win32.pm on Windows (CHORNY) 1.22_06 Wed 15 Apr 2009 - Simplifying various miscellaneous code (ADAMK) - Adding support for non-latin unicode filenames on Windows (ADAMK) 1.22_05 Wed 15 Apr 2009 - Hopefully the last dev release before the next production release. - Updated to SQLite 3.6.13 (DUNCAND) - Setting svn:eol-style to native to prevent EOL issues (ADAMK) - Resolved #44861: tweaked Makefile.PL to support older HP-UX (ISHIGAKI) 1.22_04 Sat 11 Apr 2009 - Adding support parsing attributes out of the DSN (ADAMK) - Inserted pTHX_/aTHX_ for better efficiency (suggested in #44884 by TIMB) (ISHIGAKI) - Dropping support for uncode before 5.8.5 to simplify support and to prevent people hurting themselves on platforms that don't properly support Unicode anyway (ADAMK) - Stopped guessing if a bind param looks like a number or not (suggested by GUIDO). This reopens #29058 and #29629, but there are two workarounds for them. 1) Use "bind_param" explicitly (rather than plain "execute", as you do for BLOB). 2) Add "+0" to the appropriate part(s) of your SQL to let sqlite convert them into a number. (ISHIGAKI) 1.22_03 Thu 10 Apr 2009 - Resolved #44876: Patch to fix includes in the SQLITE_LOCATION case by janus (ISHIGAKI) - Added PERL_NO_GET_CONTEXT for efficiency (suggested in #44884 by TIMB) (ISHIGAKI) - Refactored error handling (suggested in #44884, #44871 by TIMB) (ISHIGAKI) 1.22_02 Wed 9 Apr 2009 - Added missing documentation bits for 'create_collation' and 'progress_handler' (DAMI) - Resolved RT#25924 (Arguments to user-defined functions do not respect unicode setting) (DAMI) - Added comments on the return values on error, and fixed another wrong return value in execute (ISHIGAKI) - Added SQL_NULLABLE_UNKNOWN; still wonders if the error above should be ignored or not (ISHIGAKI) 1.22_01 Wed 9 Apr 2009 - Resolved #25371: Calls sv_utf8_upgrade on strings going into the database to make sure latin-1 strings are not saved as Malformed UTF-8 character in the SQLite TEXT column (MIYAGAWA) 1.21 Wed 9 Apr 2009 - Fixed the issue that execute on inactive handles returned 0 instead of undef, which made a DBIC test broken (ISHIGAKI) 1.20 Mon 7 Apr 2009 - Moving to the first production release of the new era. - Check DBI version in Makefile.PL (CHORNY) - Bundling Test::NoWarings into /inc to remove a dependency (ADAMK) - Correcting use 5.00503 to 5.006 in SQLite.pm (ADAMK) 1.19_10 Mon 6 Apr 2009 - A few more tests moved to Test::More (ADAMK) - We need DBIXS_REVISION, which appeared in DBI 1.57. Bumping up our dependency to match it and confirmed myself that DBD::SQLite actually builds against 1.57 (ADAMK) - Resolved #40594: $sth->{NULLABLE} implementation (ISHIGAKI) - Resolved #29629: sqlite where length issue (actually this has been fixed before) (ISHIGAKI) - Applied an enable_load_extension patch from RT #32998 (ISHIGAKI) - Resolved #42940: DBD-SQLite make test faild (ADAMK) - Resolved #26460: Sorting numeric values in aggregate functions (ADAMK) - Resolved #32889: prepare_cached does not work correctly (ADAMK) - Resolved #34828: Please add support for user-defined collations (ADAMK) - Made Test::NoWarnings an optional module (CORION) 1.19_09 Sun 5 Apr 2009 - Require perl 5.6 because dependencies require it - Updated ppport.h to the most recent release 3.17 (ADAMK) - Adding $DBI::VERSION diag to help diagnose FAIL reports (ADAMK) - #29519 was only resolved on Win32. Applied a more comprehensive patch (JHEDDEN) - Rewrote 28_schemachange.t in Test::More style (ADAMK) - Bug fix in 28_schemachange.t rewrite re fork/connect (DUNCAND) - Resolved #44779: [t/03insert.t] last_insert_id returns undef where 4 is expected (DUNCAND, CHORNY; that is, DUNCAND debugged and solved the ticket based on _08, which was a flaw in the Makefile.PL involving an always-applied -Dno_last_insert_id, but it turns out CHORNY had inadvertantly applied the fix in the name of DBI cleaning) - Starting to use Test::NoWarnings in the test scripts (ADAMK) - Added link to MailingList resource (ADAMK) - Squelch warnings inless PrintWarn is set in line with guidance from the DBI documentation (ADAMK) - Resolved #29058: don't quote a bind param (as a text) if it looks like a number (ISHIGAKI) - Resolved #27553: prepare_cached and analyze issue (actually this has been fixed before) (ISHIGAKI) 1.19_08 Sat 4 Apr 2009 - Bumped minimum DBI dependency to 1.43 so last_insert_id is supported in DBI (ADAMK) - Resolved #30558: INSERT After PK Failure Also Fails Using Prepared (ADAMK) - Resolved #42567: Core dump in t/07busy.t after test 4 (mutex and/or memory corruption) (ADAMK) - Resolved #32100: t/06error.t fails using SQLite 3.5.4 (ADAMK) - Resolved #35904: Test failure: Bus error t/08create_function test (ADAMK) - Resolved #9792: Crashes upon re-executing a statement (ADAMK) - Resolved #21472: Spurious "not an error" and "bind or column index out of range" errors (MSERGEANT) - Resolved #32723: last_insert_rowid should handle sqlite_int64, not int (ADAMK) - Resolved #37215: memory leaks in sqlite_db_disconnect (ADAMK) - Resolved #33441: unlimited memory accumulation (ADAMK) - Resolved #31324: Incorrect Implementation of column names within sqlite_st_FETCH_attrib (ADAMK) - Resolved #32570: segmentation fault during tests 07 & 08 (ADAMK) - Resolved #41631: Dot doesn't work in quoted column aliases (ADAMK) - Resolved #403: test failure on "Testing select speed (large table) (ADAMK) - Resolved #35769: dbimp.c uses uninitialized variables. (ADAMK) - Resolved #27701 and #27702: (unnamed) (ADAMK) - Resolved #31239: prepare_cached...statement handle DBIx::ContextualFetch::st=HASH still Active (ADAMK) - Resolved #41047: Re: Bug#506157: libdbd-sqlite3-perl: unsufficient error message while opening database for writing (ADAMK) - Resolved #25196 (bug in prepare?) (ADAMK)\ - Resolved #36651: Bug involving "closing dbh with active statement handles" (ADAMK) - Resolved #34408: Primary key name wrong with newline in CREATE TABLE (ADAMK) - Resolved #34600: t/06_error.t stalling (ADAMK) - Resolved #22688: DBD::SQLITE Error Report (ADAMK) 1.19_07 Sat 4 Apr 2009 - Starting to work the RT queue now the basics are settled. Many of the items marked as resolved by my just indicate that I have confirmed someone else applied the fix. (ADAMK) - Re-enable and fix t/70schemachange.t, as per RT #43448 (CORION) - Added a canary test to probe for RT #36863 (segfault on OSX 10.5.2) (CORION) - Added resources links to META.yml (ADAMK) - Resolved #30502: t\70schemachange.t fails on Windows (ADAMK) - Resolved #30167: Specify configuration depenencies with "configure_requires" (ADAMK) - Resolved #17623: make test fails when DBI_DSN is not DBD::SQLite (ADAMK) - Resolved #13631: wish: column_info support() (CORION) - Resolved #39938: Read-access to development repository (ADAMK) - Resolved #18617: Build error under win32 (ADAMK) - Resolved #35838: support for DBI::column_info call (CORION) - Resolved #29497: POD content bug (ADAMK) - Resolved #29520: 1.14 fails in test 6 (ADAMK) - Resolved #44647: Makefile.PL syntax error (ADAMK) - Resolved #29519: t/70schemachange.t failure (ADAMK) - Resolved #20286: DBD::SQLite leaks file descriptors (ADAMK) - Resolved #21406: DBD-SQLite 1.13 broke Class-DBI (ADAMK) - Resolved #4591: Test suite (t/t50*.t) is order dependent / bug in t/lib.pl? (ADAMK) - Resolved #36467: Name "DBD::SQLite::sqlite_version" used only once (ADAMK) - Resolved #7753: DBD::SQLite error shouldn't include extraneous info (ADAMK) 1.19_06 Sat 4 Apr 2009 - Fixed a segv with an error function under x86 linux (and hopefully Mac OSX). (TOKUHIROM) - Fixed yet another segv while testing DBIC reconnection (DMAKI) - Switched from Test.pm to Test::More (though there're still some tests that don't use Test::More) (ISHIGAKI) - Added "use strict" to some. (ISHIGAKI) - Added a cleanup block to each test to allow it run clean and separately. (ISHIGAKI) - Adding an explicit minimum Perl version to the Makefile.PL (ADAMK) - Setting configure_requires dependencies for File::Spec - Splitting the LICENSE key into it's own MakeMaker version-dependency conditional (ADAMK) - All tests run under the same Perl environment (autoflush on, and warnings enabled via $^W = 1) (ADAMK) - Refactored away a ton of needless complexity from the older-style tests inherited from the CSV driver (ADAMK) 1.19_05 Thu 2 Apr 2009 - DBD::SQLite::Amalgamation 3.6.1.2 and DBD::SQLite 1.19 should be feature identical now. - Added collations from DBD::SQLite::Amalgamation (CORION) - Removed statement handle activation after "execute" if there's no row to fetch. I hope this silences the Class::DBI's warnings. (ISHIGAKI) 1.19_04 Tue 31 Mar 2009 - Updated to SQLite 3.6.12 (ISHIGAKI) 1.19_03 Tue 31 Mar 2009 - Added ->column_info() (CORION) 1.19_02 Sun 29 Mar 2009 - Updated to SQLite 3.6.11 (ISHIGAKI) - Added/updated several prototypes (ISHIGAKI) - Moved TODO into the POD (ADAMK) 1.19_01 Fri 27 Mar 2009 - Updated to SQLite 3.6.10, and bumped up the version requirement for installed sqlite3 to 3.6.0 as 3.6.x has backward incompatiblity (ISHIGAKI) - Fixed "closing dbh with active statement handles" issue with a patch by TOKUHIROM. (ISHIGAKI) - Skip 70schemachange test for Windows users. (ISHIGAKI) - Applied RT patches including #29497, #32723, #30558, #34408, #36467, #37215, #41047. (ISHIGAKI) - Added TODO to show which issues are to be fixed. (ISHIGAKI) - License and configure_requires in Makefile.PL and META.yml (Alexandr Ciornii) - Spelling check for SQLite.pm (Alexandr Ciornii) - Adding arbitrary Perl 5.00503 minimum 1.16 abandoned 1.15 abandoned 1.14 - Updated to SQLite 3.4.2 - Switch to sqlite3_prepare_v2 which fixes a number of bugs with re-using statements - Fix bug with overflowing integers in user defined functions - Fix bug when building under no-threads perl 1.13 - A number of bug fixes from RT. - Support named bind parameters 1.12 - Brought up to date with SQLite 3.3.5 1.11 - Make blobs work transparently (without SQLBLOB binding) 1.10 - Fix Unicode support (DOMQ) - Support usleep on all Linux (inc. debian) (DOMQ) - Upgrade to sqlite 3.2.7 - Document how to use BLOBS 1.09 - Support external SQLite library (rjray) - Don't convert things that look like numbers to numbers unless specifically requested. - Upgrade to sqlite 3.2.2 1.08 - Support 64 bit integers (uses floating point numbers when perl is not compiled with 64 bit int support). This also fixes issues with using sqlite timestamps. - Upgrade to sqlite 3.1.3 - Fix issues of not finding rows when providing a number that perl sees as a string. - Fixes for most current bugs in RT (see http://rt.cpan.org/ to check if your favourite bug got fixed). 1.07 - Fix for a memory leak (spotted by Joel Noble) - Update to sqlite 3.0.8 (fixes bug on Solaris-sparc) 1.06 - Resolve symbol conflicts on mac os x. - Fix define in WriteMakefile lacking space. - Fix DBI prereq in Makefile.PL - Update to sqlite 3.0.7 1.05 - Enabled HAVE_USLEEP where available which should massively improve concurrent usage of DBD::SQLite - Update to sqlite 3.0.6 1.04 - Patched to make it compile on Windows (Steve Hay) - Fetch next row at end of DBI's fetch() so that one-row selects don't need to call ->finish(). This restores DBD::SQLite 0.31's behaviour (and should make popfile work again) - last_insert_id will only work on DBI 1.43, so enforce that - Use snprintf from sqlite library to improve portability 1.03 - Update to sqlite 3.0.4 - More bug fixes - Don't hang forever when db is BUSY - Make trace macro work where vararg macros don't 1.02 - Cleanup docs - More bug fixes 1.01 - Bug fixes - Implement get_info 1.00 - Port to sqlite3 API - Support bind types SQL_BLOB, SQL_NUMBER, SQL_TEXT etc - Support $dbh->last_insert_id() - Added timeout API 0.31 - Fixed a free() bug on Win32 - Silence warnings in test suite - Updated to sqlite 2.8.12 0.30 - Updated to sqlite 2.8.11 - A few minor bugs fixed 0.29 - Updated to sqlite 2.8.7 - A number of bugs fixed 0.28 - Perl 5.8.0 removed long deprecated SvOK_off() - Aliases for perl_call_* - Updated to sqlite 2.8.6 - use sqlite_freemem everywhere 0.27 - Changed API to use sqlite streaming API. This makes things slightly slower for large result sets, at the benefit of being more "sane" internally. 0.26 - Update to sqlite 2.8.5 - Automatic binary encoding added (via a flag) - Better getsqlite.pl - now deals with new files - Extension functions and aggregates can be created in perl space now. 0.25 - Fixed Makefile.PL to no longer try creating a .c file to determine the OS ptrsize - use Config.pm directly in the DEFINE - Major updates from Tim Bunce to bring DBD::SQLite in line with the DBI spec and other drivers, including: - Support for table_info_all() and primary_key_info() - $sth->{NAME} updates - execute() returns number of rows updated - $dbh->{sqlite_version} returns the SQLite version in use - $dbh->{sqlite_encoding} returns the SQLite encoding in use - Improved trace debugging - Improved error handling (many MANY thanks to Tim for all these patches!) - Updated to sqlite 2.8.0 0.24 - Fixed major crash bug affecting Mac OS X - Removed test.pl from distribution - Upgraded to sqlite 2.7.6 0.23 - Fixed unicode tests 0.22 - Merge with sqlite 2.7.4 0.21 - Ooops - forgot new opcodes files from MANIFEST 0.20 - Port to SQLite 2.7.2 - Fixed bug in not freeing memory if you re-execute a $sth 0.19 - Upgrade to SQLite 2.6.3 - this now allows databases to work across different endian architectures. 0.18 - Upgraded to SQLite 2.5.6 - All users are advised to upgrade due to a corruption bug in SQLite 2.4.0 - 2.5.6 0.17 - Upgraded to SQLite 2.5.3 - Fixed getsqlite.pl 0.16 - Upgraded to SQLite 2.5.0 0.15 - Upgraded to SQLite 2.4.5 0.14 - Added NoUTF8Flag option, so that returned strings don't get flagged with SvUTF8_on() - needed when you're storing non-unicode in the database 0.13 - Upgraded to SQLite 2.4.3 - Added script to download sqlite core library when it's upgraded 0.12 - Upgraded to SQLite 2.4.2 0.11 - Upgraded to SQLite 2.4.0, which adds views, subqueries, new builtin functions, performance, and even sheds some weight - Changed transaction support to only BEGIN TRAN when you execute some SQL, which should improve locking problems. 0.10 - Fixed missing SQLiteXS.h from 0.09 0.09 - Updated to SQLite 2.3.3, and some file cleanups to make that easier next time. 0.08 - Last of the mem leaks fixed - Doc fix on last_insert_rowid 0.07 - Memory leak fixes (though still leaks some, beware) - Some API cleanups and test cleanups - Added last_insert_rowid() method and docs 0.06 - Win32 and 5.00404 build fixes - Added some more performance tests to test.pl - Make sure to set $sth->{Active} only on selects 0.05 - Added all DBD::CSV tests (ported, of course) - Fixed bugs that the above revealed. 0.04 - Fix multiple placeholders bug 0.03 - Fixed multiple execute on single $sth 0.02 - Fixed transactions 0.01 Sat Feb 16 16:10:42 2002 - original version; created by h2xs 1.20 with options -A -X -n DBD::SQLite