Revision history for Perl extension DBIx::Simple.

Incompatible changes are marked with "!!". Incompatibility with and changes in
"undocumented features" are not always specifically mentioned here.

1.37  2017-12-08 23:49
        - POD syntax fix

1.36  2017-12-08 21:23
        - $result->object and $result->objects now load any module on demand.
          (Suggested by Krasimir Berov.)
        - New: $result->group, $result->group_hashes, $result->group_arrays.
          (Suggested by Mark Overmeer.)
        - Fixed typo in 1.35 release date below. (Reported by Sjors Gielen.)
        - Changed changelog date format from insane to ISO 8601-ish.

1.35  2011-01-04 23:48
     !! - RaiseError is now enabled by default, as announced three years ago.
          Set PERL_DBIX_SIMPLE_NO_RAISEERROR=1 to get the old behavior.

1.34  2010-12-12 16:28
        - Added missing documentation. (Reported by Krasimir Berov.)
        - Fixed off-by-20 mistake in unit tests.

1.33  2010-12-04 00:30
        - New license: any(OSI).
        - Documentation overhaul.
        - New: $result->kv_list, $result->kv_array, $result->kv_flat,
          $result->kv_arrays. Handy if the unordered nature of hashes gets in
          the way.
        - New: $result->object, $result->objects.
        - Fixed bug #26924. Cache lookup missed statements at index 0.
          (Reported by Stanis Trendelenburg via RT.)
        - Please note that very probably RaiseError will be enabled by
          default in the next version.

1.32  2007-07-17 14:58
        - Test updated to conform to fixed bug in Test::More. See

1.31  2007-07-15 00:29
        - New: $db->iquery. This method loads SQL::Interp on demand. The
          feature was requested by several people. Thanks go out to David
          Manura for writing SQL::Interpolate, and to Mark Stosberg for
          improving it and releasing that as SQL::Interp.

1.30  2007-04-08 02:29
        - Fixed bug #18629. Apparently Want does not consider a method call in
          rvalue context. The premature optimization that used Want has simply
          been removed. (Reported by Tomi via RT.)
        - Fixed bug #22829. With connect($dbh) or new($dbh), DBIx::Simple no
          longer disconnects implicitly. (Reported by BORISZ via RT.)

1.29  2007-04-04 02:22
        - Fixed documentation typo.

1.28  2007-04-04 02:16
        - New: $db->result_class. This allows using a custom subclass.
        - $result->flat now returns an array reference in scalar context.
        - Optimized: map (up to 15% faster).
        - The "map" method now really requires exactly two columns.
        - Minor documentation improvements.

1.27  2007-0318 21:14
     !! - Bugfix: (??) was replaced when quoted
     !! - Bugfix: \' escaping was assumed, but actually only MySQL uses that
        - New: support \' escaping only for DBD::mysql
        - New: test suite!
        - Removed dependency on Data::Swap
     !! - Removed compatibility package DBIx::Simple::SQE

1.26  2004-11-30 14:25
        - Removed documentation of emulate_subqueries.
        - Minor documentation fixes.

1.25  2004-06-21 09:39
        - New: $result->text.
        - This new method can use Anno Siegel's Text::Table (loaded on demand).

1.24  2004-06-20 21:32
        - New: $result->xto.
        - New: $result->html.
        - These new methods use Jeffrey Hayes Anderson's DBIx::XHTML_Table
          (loaded on demand).
        - New: $result->text.
        - Documentation =~ s/ESQ/SQE/g. (Reported by Larry Kos)

1.23  2004-06-10 00:00
        - New: DBIx::Simple::SQE.
        - New: $db->abstract.
        - New: $db->select.
        - New: $db->insert.
        - New: $db->update.
        - New: $db->delete.
        - These new methods use Nathan Wiger's SQL::Abstract (loaded on demand)
          and are based on a suggestion by simonm (
        - Yes, I lied. I said that this module would never get SQL abstraction,
          but this was too easy to add and doesn't hurt anyone who doesn't use
        - New: $db->begin, an alias for $db->begin_work.
     !! - Removed: $db->emulate_subqueries, $db->esq. (But see
     !! - Removed: $db->omniholder. (Now a constant: always "(??)".)

1.22  2004-05-06 17:30
        - Changed the declaration of a variable so that it doesn't blow up
          under 5.8.4's better strict. This should also fix a still
          undiscovered bug in the deprecated subquery emulation.
          (Reported and patched by Jos Boumans <irc>)

1.21  2004-04-29 14:40
        - Removed two nonsense entries from the changelog. $db->array and
          $db->hash do NOT reuse.

1.20  2004-04-27 11:15
        - Almost a complete rewrite :)
        - $db->emulate_subqueries is now deprecated. Use a better database
          engine instead.
        - $db->omniholder is now deprecated. The omniholder will be constant.
        - $db->{success} is now deprecated. Use the return value of $db->query
        - $db->{reason} is now deprecated. Use $db->error instead.
     !! - $db->{dbi} has been renamed. Use $db->dbh instead (not $db->{dbh}).
        - DBIx::Simple->error can now be used as a class method.
        - New: $db->last_insert_id.
        - New: $db->keep_statements and statement caching.
        - New: $db->dbh.
     !! - New: $db->lc_columns, enabled by default. Affects $result->columns,
          $result->hash, $result->hashes, and $result->map_hashes.
        - New: $result->columns.
        - New: $result->bind, $result->fetch, $result->into.
        - New: $result->func. (Suggested by Sean McMurray <>)
        - New: $result->attr. (Suggested by Sean McMurray <>)
        - $result->array now returns a copy instead of the same arrayref over
          and over. If you need maximum efficiency, use $result->fetch instead.
        - Removed dependency on Attribute::Property to fix bugs with
          $db->emulate_subqueries and $db->omniholder in Perl 5.8.x.
     !! - As a result, archaic property assignment style no longer works.
          Instead of "$foo->bar($new_value)", use "$foo->bar = $new_value".
        - Improved error reporting.
        - As a result, DBIx::Simple now depends on Data::Swap.
        - Moved examples to a separate document: DBIx::Simple::Examples.
        - More conditions in DESTROY methods, to handle random destruction
          order during global destruction better.
        - Rebuilt distribution with h2xs to get lib/ and t/.

1.11  2003-03-26 19:05
        - Documentation updates.
     !! - list() now returns the *last* element in scalar context (was: first).
        - hashes() and arrays() now return array references in scalar context.
        - Migrated two properties to Attribute::Properties. (new dependency)
        - $VERSION++.

0.10  2003-01-09 10:03
        - Documentation rewrite!
        - New: $db->error(). In an upcoming release, $db->{reason} will be
        - New: $db->func().
        - Removed some unused variables.
        - prepare() and execute() are now wrapped in eval { } to rewrite
          filename and line number if you use RaiseError
        - $result->map_hashes(), $result->map_arrays() and $result->map() now
          return a list in list context. In scalar context, they still return
          a hash reference
        - Dummy objects in boolean context now evaluate to false, so you can
          write "$db->query(...) or die $db->error;" but still be able to write
        - Dummy object's methods now return an empty list in list context
          instead of undef.
        - PrintError now defaults to 0

0.09  2002-12-08 05:59
        - $dbh->disconnect() only if the object's still there. This works
          around perl bug #18951. Something is killing objects during (or just
          before) global destruction. This bug was first found by Gerard Oskamp

0.08  2002-12-02 21:16
        - Added $result->finish() method
        - The documentation was wrong: "undef $result" did nothing useful, as
          DBIx::Simple kept a copy internally, for garbage cleaning purposes.
          An in-between class DBIx::Simple::Statement was added to work around
        - $db->disconnect() now destroys active statements
        - When finish() or disconnect() is used, attempts to use the database
          connection or statement handle now result in a verbose error message.

0.07  2002-09-30 07:48
        - Removed TraceLevel thing that caused DBI to output debugging info
        - Very minor documentation update (removed 2 characters)

0.06  2002-09-20 10:55
        - Oops: forgot to update the README file; nothing serious

0.05  2002-09-19 14:32
        - Added $db->begin_work
        - No longer expanding the (??) omniholder inside quoted SQL
        - Subquery emulation! Have subqueries in MySQL! YAY!
          (Not enabled by default. Use $db->esq(1) to enable)
        - This module now requires Perl >= 5.6

0.04  2002-09-17 15:46
        - Documentation updates only

0.03  2002-06-13 09:50
        - New: "(??)" and $db->omniholder() (like EZDBI's ??L placeholder)
        - Documentation updates
        - Code updates (now uses $_[0] directly for speed in many methods)
        - $result->list() in scalar context returns first value only

0.02  2002-03-30 14:00
        - New: $db->commit() and rollback().
          Suggested by tradez (
        - New: $result->map_hashes(), map_arrays(), map().
          Suggested by mattr (
        - New: $result->flat(), a plural form of list()

0.01  2002-03-28 18:04
        - Initial CPAN release