Revision history for Perl extension DBIx::Tree

1.97  Thu Dec 18 10:11:00 2014
	- Rename CHANGES back to Changes.
	- Put methods into alphabetical order.
	- Reformat the code slightly.
	- Restructure the docs.
	- Add use string and warnings to Build.PL and Makefile.PL.
	- Add github repo stuff to docs, Build.PL and Makefile.PL.
	- Use Test::More in t/test.t.
	- Change usage of new() from 'new DBI::Tree()' to DBIx::Tree -> new()'.
	- Add scripts/

1.96  Thu Nov  8 12:38:00 2012
	- No code changes.
	- For pre-reqs such as strict, warnings, etc, which ship with Perl, set the version # to 0.
		Reported as RT#80663 by Father Chrysostomos for Tree::DAG_Node.

1.95  Web Feb 16 11:52:00 2011
	- Replace /usr/bin/perl with /usr/bin/env perl in examples/*.pl.
	- Replace common::sense with use strict and use warnings, to get uninit var warnings.
	- Remove reference to AutoLoader when setting @ISA, to stop warnings on recent Perls.
	- Update pre-reqs: DBI to V 1.622 and DBD::SQLite to 1.37.
	- Fix error in docs where it said calling new($sth => ...) meant you did not also need
		new(connection => $dbh), but you do, to stop a prepare_cached error.

1.94  Mon Sep 20  9:06:00 2010
	- Apparently DBD::SQLite does not ship with Perl 5.13.4, according to cpantesters
	  so I've added it explicitly to Build.PL and Makefile.PL.

1.93  Sat Sep 18 14:53:00 2010
	- Use File::Temp to get a temp dir name, rather than using /tmp.
	- Use File::Spec to combine that temp dir and the file name test.sqlite.
	- Delete the file examples/, since it just duplicates the
	  functionality of t/test.t.
	- Add 'use warnings' to t/test.t and examples/*.pl, which means vars are
	  now all declared.

1.92  Fri Sep 17 12:46:00 2010
	- DBIx::Tree didn't 'use' DBI, but it did use $DBI::errstr.
	  So I've added a 'use DBI' to
	- Add Carp and DBI to list of dependencies, in Build.PL and Makefile.PL.
	- Specify recent version numbers for Carp, DBI, Test::More and Test::Pod.
	- As always, thanx to CPAN testers.

1.91  Wed Sep 15 14:08:00 2010
	- Maintenance taken over by Ron Savage.
	- Version numbering changed to x.xx format.
	- Add Build.PL.
	- Rename Changes to CHANGES.
	- Move ./ into ./lib/DBIx/
	- Move ./ into ./t/test.t.
	- Move ./INSTALL.SQL into ./t/.
	- Add ./t/pod.t.
	- Remove execute bit from doc files.
	- Rewrite Makefile.PL.
	- Used (from Module::Metadata::Changes) to generate
		machine-readable Changelog.ini.
	- Patched as per RT#32461 (kindly reported (in 2008) by
		huhlig [...]
	- Eliminate usage of file ./PWD.
	- Fix t/*.t and examples/*.pl to use DBI_DSN, DBI_USER and DBI_PASS
		from the environment, if defined, or to default to SQLite.
		MySQL is no longer hard-coded anywhere.
	- Fix bug where when the constructor call includes both match_data and
		start_id, and the id of the match_data is not start_id, then the _do_query()
		method would fail to find a record, which meant both the callbacks passed in
		to the constructor (method and post_method), if defined, would be called with
		an undefined value for $param{item}. This meant the callbacks would be called
		one more time that they should have been. This faulty call took place before
		any valid call took place.

1.9   Sun Feb 14 12:00:00 2003

0.91  Thu Aug 24 20:36:00 2000
    - added performance improvements, sorting, and bug fixes from
      Jan Mach <>
    - added limit and matching support from Ilia Lobsanov <>

0.90  Sun Aug 30 17:08:09 1998
    - original version; created by h2xs 1.18

    - active development begun by Aaron Mackey <>
    - DBIx::Tree project now hosted at
    - $DBIx::Tree::VERSION now defined by CVS Revision tag; i.e. version
      numbers will change very quickly now - don't be alarmed.
    - added 'sth' and 'sql' alternatives to 'table' specification in
      new() constructor.
    - add 'post_method' callback option; now DBIx::Tree can make
      summary reports, as well as "worm" it's way around a tree
    - added various missing documentation.
    - deprecated tree() in favor of traverse()
    - added optional arguments start_id and threshold to new(),
      so that the traversal can be initiated at alternative subtree
      roots (by specifying different start_id's), and/or completely
      ignore levels higher than the threshold level.
    - removed the requirement for the user to run the do_query()
      method before we traverse the tree (Cleaner interface?)
    - allow traverse() to take a subset of the parameter hash that
      new() accepts, in order to provide locally modified traversal
      parameters (start_id, match_name, threshold, etc).
    - added tests for most of this new stuff.
    - added 'recursive' true/false flag argument to new/traverse;
      default is false, which provides the usual "get all the data,
      build the tree in memory and walk it" non-recursive traversal
      method.  A true value makes the traversal occur with minimal
      memory usage, but multiple database queries (to obtain the
      children of each node separately).  This is useful in cases
      where the tree is in fact very, very large, or when the user
      only wants to traverse certain smaller subtrees of the data (via
      the start_id argument to new/traverse).
    - added tests for 'limit' and 'recursive' arguments.

1.90 (bjepson)
    - added check for prerequisites in Makefile.PL.
    - changed default test to use DBD::mysql, since MySQL has become
      much more widespread than mSQL.
    - added message when ignores a DROP error.