=head1 NAME

DBIx::SQLEngine::Docs::Changes - Revision history for DBIx::SQLEngine.


=head1 HISTORY


=head2 Version 0.93

2004-11-?? Released as DBIx-SQLEngine-0.93.

2004-11-29 Rearranged some documentation in top-level module's POD.

2004-11-29 Removed test config logic from Makefile to top of test.pl, and related updates of test.pl and test_cfg.pl.

2004-11-29 Fixed case-insensitive matching of "from" in sql_limit of several drivers; thanks to Michael Kroll for pointing out the issue.


=head2 Version 0.92

2004-11-28 Released as DBIx-SQLEngine-0.92.

2004-11-21 Added incomplete implementation of RecordSet::NextPrev class.

2004-11-21 Moved table-specific Record code into new Record::Table class.

2004-11-21 Sketched out interface for a new Record::PKey object.

2004-11-16 Modified Record class factory to use new Class::MixinFactory distribution.

2004-11-16 Eliminated unnecessary extra level in Record namespace for mixins.

2004-11-16 Moved Record::Set to a new RecordSet namespace to allow new mixins.

2004-11-16 Fixed SQLite definition for sequential fields, thanks to Ron Savage.

2004-11-13 Adjusted Related.pod docs for Rosetta based on email from Darren Duncan.

2004-11-13 Fixed test.config.pl to not die when run for the first time.


=head2 Version 0.91

2004-11-12 Released as DBIx-SQLEngine-0.91.

2004-11-12 Replaced compile-time @MIXINS in Record hierarchy with run-time NEXT method.

2004-11-12 Ran coverage tests and added test cases and documentation for missing items. We're now at over 90% for POD coverage, but still under 60% overall.

2004-11-12 Changed test_core/examplep.t to case-insensitive regex to compensate for case mangling on VMS file system, thanks to pitch from Peter (Stig) Edwards.

2004-11-09 Additional work on driver tests. 

2004-11-09 Bumped up version number in preparation for a 1.0 release soon.

2004-11-08 Moved common behaviors of CSV and AnyData drivers to new shared trait named PerlDBLib. Added driver class for XBase.

2004-11-08 Additional work on test scripts.

2004-11-06 Added test.pl and reorganized test scripts for better driver testing.

2004-11-06 Reorganized ReadMe.pod and clipped credits from end of SQLEngine.pod. Other minor documentation cleanups.

2004-10-08 Fixed problem with define_named_connections and array reference reported via CPAN RT ticket 7464.

2004-06-06 Applied Driver::Oracle patch from Michael Kroll that should improve optimization of queries with rownum limits.


=head2 Version 0.028

2004-04-19 Released as DBIx-SQLEngine-0.028.

2004-04-19 Fixed file missing from manifest which made 027 totally broken.


=head2 Version 0.027

2004-04-19 Released as DBIx-SQLEngine-0.027.

2004-04-19 Moved Driver docs and Default code to a separate Driver module.

2004-04-18 Documentation tweaks, including labeling methods public or internal.


=head2 Version 0.026

2004-04-16 Released as DBIx-SQLEngine-0.026.

2004-04-15 Added subclasses to Driver::Mysql for various versions.

2004-04-15 Added Driver::Sybase and Driver::Sybase::MSSQL.

2004-04-15 Added Driver::Trait::DatabaseFlavors, Driver::Trait::NoPlaceholders.

2004-04-15 Minor bits of documentation cleanup.

2004-04-14 Fixed missing import of clone_with_parameters for interpret_named_connection(); thanks to Ron Savage for the bug report.

2004-04-14 Documentation fixes in Record::Trait::Cache POD.

2004-04-14 Added new makefile targets for development convenience; the 
following are now all supported:

  make everything    - clean build with testsuite 
  make again         - rebuilds Makefile and blib
  
  make cleandist     - clean build with manifest, docs, and dist 
  make cleanmanifest - rebuilds MANIFEST
  make docs          - runs pod2text on SQLEngine/Docs/*.pod files
  
  make compile       - makes sure that all of the modules compile
  make testsuite     - runs tests against multiple data sources
  make t/*.t         - runs whichever test scripts you name
  make cover         - runs testsuite under Devel::Cover with report


=head2 Version 0.025

2004-04-14 Released as DBIx-SQLEngine-0.025.

2004-04-14 Fixed undocumented (and un-necessary) dependency on String::Escape in Record::Trait::Cache which was causing a test failure. Thanks to the folks running automated cpan smokers, which caught this a few hours after I posted it.


=head2 Version 0.024

2004-04-14 Released as DBIx-SQLEngine-0.024.

2004-04-13 Fixed support for literal SQL in Schema::Table, Record::Trait::Cache.

2004-04-13 Added a few more methods to Record::Trait::Extras for compatibility with older DBO classes.

2004-04-11 Fixed a few problems in Record::Trait::Cache and Cache::TrivialCache. Added initial test script for record caching.


=head2 Version 0.023

2004-04-10 Released as DBIx-SQLEngine-0.023.

2004-04-10 Added feature matrix to Docs::Related. Added Docs::Comparison.

2004-04-10 Fixed test crasher in visit_select for Driver::Trait::NoUnions.


=head2 Version 0.022

2004-04-09 Released as DBIx-SQLEngine-0.022.

2004-04-09 Merged many methods from DBIx::DBO2::RecordSet into Record::Set.

2004-04-09 Added Record::Trait::Accessors and increased the minimum version of Class::MakeMethods to 1.006 to get the Autoload interface it uses.

2004-04-09 Added Record::Trait::Cached based on DBIx::DBO2::Record::Cached. Added cache packages DBIx::SQLEngine::Cache::TrivialCache and DBIx::SQLEngine::Cache::BasicCache.

2004-04-09 Added Record::Trait::Hooks based on DBIx::DBO2::Record and built a few tests. 

2004-04-09 Initial working support for multiply-combinable Record class traits. Moved traits into nested namespaces Driver::Trait and Record::Trait.

2004-04-09 Revised synopsis and description to include more recent features. 

2004-04-09 Added support for sql_select( columns => \%colnames_as_aliases ) and sql_select( tables => { "table1.column1" => "table2.column2" } ), both inspired by the interface described in the Sql::Simple documentation.

2004-04-08 Fixed tight loop detection (self-reference) in CloneWithParameters.

2004-04-06 Beginning support for multiply-combinable Record class traits.


=head2 Version 0.021

2004-04-05 Released as DBIx-SQLEngine-0.021.

2004-04-05 Doc adjustments. Additional work on Record classes.


=head2 Version 0.020

2004-04-05 Released as DBIx-SQLEngine-0.020.

2004-04-05 Added initial Row classes. 

2004-04-04 Added named_connection interface.

2004-04-04 Migrated clone function to new Utility::CloneWithParams package. Generalized string substitution. Added more tests and documentation.

2004-04-04 Renamed Mixin::* packages to DriverTrait::*.

2004-04-04 Added "where" as a synonym for "criteria" in sql_* methods and changed documentation to use it instead. Added "distinct" support to sql_select. 


=head2 Version 0.019

2004-04-04 Released as DBIx-SQLEngine-0.019.

2004-04-03 Added initial support for constructing complex joins and 
Mixin::NoComplexJoins to provide emulation for the simplest inside joins.

2004-04-03 Added Mixin::NoUnions to provide emulation of unions where needed.

2004-04-02 Added initial support for selects with unions.


=head2 Version 0.018

2004-03-30 Released as DBIx-SQLEngine-0.018.

2004-03-30 Fixed sequential type in Driver::SQLite to say "integer" not "int".

2004-03-30 Removed driver for DBD::File, which isn't intended to be used directly.

2004-03-30 Changed Criteria::HashGroup to asciibetically sort the hash keys, so
that criteria are predictable for testing and better statement handle caching.

2004-03-26 Fixed Mixin::SeqTable's seq_fetch_current, which returned 
undef due to scope confusion with return inside an eval block.

2004-03-26 Minor cleanup to Schema::Table to improve documentation.

2004-03-26 Fixed Schema::Column's new_from_hash() and type() methods. 


=head2 Version 0.017

2004-03-26 Released as DBIx-SQLEngine-0.017.

2004-03-26 Fixed parens in Oracle's sql_limit, with apologies to Michael Kroll.

2004-03-25 Brough Schema::Table up to workable condition and added basic tests.

2004-03-25 Added simple last_query method to NullP for faster testing.

2004-03-23 Added fetch_select_rows() and visit_select_rows().

2004-03-23 Re-ordered a few chunks of code so that the POD pages are clearer.


=head2 Version 0.016

2004-03-23 Released as DBIx-SQLEngine-0.016.

2004-03-23 Fixed files missing from manifest.


=head2 Version 0.015

2004-03-22 Released as DBIx-SQLEngine-0.015.

2004-03-22 Added some database capability methods inspired by DBIx::Compat.

2004-03-22 Added create_ and drop_index methods inspired by DBIx::Renderer.

2004-03-22 Added create_ and drop_database methods inspired by
DBIx::DataSource.

2004-03-22 Removed do_ prefix from create_ and drop_table methods, with
aliases for backwards compatibility.

2004-03-22 Added initial interface for DBMS stored procedures.

2004-03-22 Added NullP subclass and null.t test with basic SQL generation
and named query tests.

2004-03-22 Added named_query interface to support libraries of named queries.

2004-03-22 Added visit_sql_rows.

2004-03-22 Applied patch to Driver::Oracle's sql_limit() from Michael Kroll.

2004-03-22 Incorporated support for mixing explicit SQL and additional
criteria by having sql_where() splice them together, based on a patch from
Michael Kroll.


=head2 Version 0.014

2004-03-14 Released as DBIx-SQLEngine-0.014.

2004-03-13 Fixed spacing problem for long column names in
sql_create_columns, curtesy of a patch from Ron Savage.

2004-03-13 Ported schema classes from DBO2 to DBIx::SQLEngine::Schema
namespace. These are not yet in use, but will be supported through
additions to the SQLEngine interface in upcoming versions in a way
that should not break any existing code.



=head2 Version 0.013

2004-03-12 Released as DBIx-SQLEngine-0.013.

2004-03-12 Fixed another minor POD error.


=head2 Version 0.012

2004-03-11 Released as DBIx-SQLEngine-0.012.

2004-03-11 Fixed several minor POD errors. Adjusted checking of
wantarray to preserve its value across eval{} boudaries.


=head2 Version 0.011

2004-03-10 Released as DBIx-SQLEngine-0.011.

2004-03-10 Moved driver-specific subclasses to a new Driver::
namespace and added documentation to each of them. The external
public interface is identical, but this may break naughty code that
checked ref() or isa(); however the fix is straightforward and this
keeps our namespaces clearer. If your code was negatively impacted
by this, let me know for future reference!

2004-02-24 Integrated some patches from Michael Kroll, including
new Oracle subclass, and created a new Criteria::StringComparison
class as an alternate way of addressing an issue raised in email. 


=head2 Version 0.010

2003-09-07 Released as DBIx-SQLEngine-0.010.


=head2 Version 0.009

2003-02-02 Released as DBIx-SQLEngine-0.009.

2003-02-02 Merged the "Default" class used by AnyDBD into base
class via stash aliasing, simplifying documentation.


=head2 Version 0.008

2002-11-02 Released as DBIx-SQLEngine-0.008.

2002-11-02 Added basic subclass for MSSQL.

2002-11-02 Added "is null" support based on patches from Michael
Kroll at University of Innsbruck.

2002-11-02 Added some introductory documentation to Criteria::Comparison.

2002-11-02 For compatibility with the CPAN installer and automated
testing tools, the Makefile.PL now suggests that you set your
environment's DBI_DSN, rather than prompting you to enter it
interactively in test.pl.

2002-11-02 Refactored test script into several separate files.

2002-11-02 Added initial basic transaction support.



=head2 Version 0.007

2002-05-24 Minor error-handling improvements.

2002-05-24 Collect and return the results from visit_* methods.

2002-05-24 Added DBIx::SQLEngine::Criteria::Not, contributed by
Christian Glahn at University of Innsbruck.

2002-04-10 Added "fetch without execute" to the catch_query_exception
handler for MySQL and Pg.


=head2 Version 0.006

2002-03-23 Released as DBIx-SQLEngine-0.006.

2002-03-23 Added basic support for passing SQL functions and
expressions to SQLEngine::Default and SQLEngine::Critera::Comparison
in a way that allows them to be used directly, rather than being
treated as literals and bound to placeholders.

2002-03-01 Fixed syntax errors in MySQL subclass. Fixed suspected
Perl-version dependency (return from inside eval) in Default
detect_any.


=head2 Version 0.005

2002-03-01 Released as DBIx-SQLEngine-0.005.

2002-02-19 Simon: Added Pg catch_query_exception REDO for "out of
range 0..-1". I don't know what this error means but it always
seems to succeed when we retry.

2002-02-10 Simon: Modified format of error messages in Default.pm

2002-02-02 Eliminated complaint about empty subclauses in
Criteria::Compound

2002-01-31 Extracted Default sql_* criteria handling into
DBIx::SQLEngine::Criteria->auto* methods.

2002-01-31 Added catch_query_exception to Pg subclass for automatic
reconnection.

2002-01-31 Created new Criteria::LiteralSQL package. Remove redundant
parentheses around single-item list in Criteria::Compound. 


=head2 Version 0.004

2002-01-30 Released as DBIx-SQLEngine-0.004.

2002-01-30 Expanded Pg subclass. Fixed Default's type_info handling
to not fall over when a type has multiple info hashes (needed for
Pg). Adjusted error handling to call $sth->finish() if there's an
exception after we prepare but before we complete retrieving the
results.

2002-01-27 Filled out documentation, especially of the public
interface in SQLEngine.pm. Added skeletal Pg subclass.


=head2 Version 0.003

2002-01-25 Released as DBIx-SQLEngine-0.003

2002-01-21 Fixed AnyData sql_create_column_text_long_type.

2002-01-20 Fixed typo in sql_drop_table. Added detect_any and
detect_table methods.

2002-01-15 Improvements to sql_create_table to support primary key
declarations. Completed DBIx::SQLEngine::Mixin::SeqTable. Added
DBIx::SQLEngine::CSV.

2002-01-14 Added initial version of DBIx::SQLEngine::Mixin::SeqTable.

2002-01-14 Fixed bug in test script; user and password were not
used! (Bug report from Terrence Brannon.)


=head2 Version 0.002

2002-01-14 Released as DBIx-SQLEngine-0.002

2002-01-13 Fixed logging scope errors. Filled in several mising
chunks of documentation. Makefile.PL touchups for distribution.

2001-12-01 Separated from object-relational mapping functionality.
Moved to DBIx::SQLEngine namespace.

2001-11-30 Began adjusting namespace for CPAN distribution. Fixed
use of AnyDBD to not require non-standard patch.


=head2 Version 0.001

2001-06-28 Use DBIx::AnyDBD for platform-specific issues. Moved
SQL-generation code from Table to SQLEngine. 

2001-06-28 Ported some Criteria classes from earlier code into the
new SQLEngine class hierarchy.

2001-06-27 New version moved into separate DBIx::DBO2 namespace.
Renamed Adaptor to SQLEngine. Flattened class hierarchy; we're only
going to support DBI. Expunged old code.  Switched to new
Class::MakeMethods distribution.


=head1 PRIOR VERSIONS

=head2 DBO

2001-02-14 Reversed boolean sense of 'nullable' to 'required'.

2001-01-29 Fixed code to detect length and nullable column information.

2001-01-29 Added boolean required to store whether column is nullable.

2001-01-13 Added retry on "Lost connection to MySQL" errors

2000-12-22 Added new_with_contents constructor to Criteria::Compound.

2000-12-13 Substantial revisions to record set functionality

2000-11-29 Switched to use of Class::MethodMaker 2.0 features.

2000-03-31 Added SQL-string to execution failure.

2000-03-03 Adjusted clear_connection.

1999-08-18 Added MySQL tinyint column code

1999-07-27 Added use of DBO::Column package.

1999-04-21 Added explicit disconnect if existing connection's ping
fails.

1999-04-05 Added reconnect if can't ping server behaviour; add'l
type codes

1998-12-08 Cleanup of logging.

1998-12-08 Added parameter handling and on-demand class loading.

1998-11-01 Changed importing style for Class::MethodMaker.

1998-10-05 Revised. Rewrote POD.

1998-05-09 Moved connection behaviour from SQL Table into Adaptor
classes.

1998-03-16 DBAdaptor package (and subpackages) renamed to DBO::Table.

1997-11-18 Simon: Updated to current practice.


=head2 DBAdaptor

1997-09-24 IntraNetics97 Version 1.00.000

1997-08-20 Eric: Extracted DBAdaptor class from prior code.


=head1 SEE ALSO

L<DBIx::SQLEngine::Docs::ReadMe>

=cut
